Age | Commit message (Collapse) | Author |
|
This work updates a number of Gems to the latest versions (rspec,
rspec-puppet), and updates and tweaks a bunch of tests to work
with the updated gems.
|
|
|
|
This version of pick() does not error out, instead always returning at least
the last argument, even if that too has no "real" value.
|
|
I expect a function called "is_numeric" or "is_integer" to check if a
variable is an integer or a number even if the variable passed by isn't
a string nor a number at all. Otherwise we should call them
is_string_a_number and is_string_an_integer and we have then to remove
the check for .is_a?(Number) and .is_a?(FixNum)
now checking also if it is a hex or octal number
improved/corrected checking for integer
* checking against Integer instead of Fixnum so that
also Bignum is matching
* now .is_a? Integer is done first so this is quiet fast
Now many types of numerics are recognized.
1. Float/Integer values (signed or unsigned, with exponent or without)
2. octal and hex check
3. except hex numbers and the "0." in a float lower than 1 can be prefixed
with a '0'.
whitespaces shouldn't be allowed as prefix/suffix
string representation of numbers should not contain any type of
whitespace.. the user is responsible to clean a string before checking
it..
fix documentation and added more checks
tried to be 99.9% backward compatible
* for now the decission is post poned if hex and octal numbers
should be allowed or not (is_numeric)
* native Bignum is now also a valid integer class
fix problem with old 1.8 ruby and Hash.to_s/Array.to_s
In ruby < 1.9 array and hashes would be recognized as numeric
if they have a special format:
1.8:
[1,2,3,4].to_s = "1234"
{1=>2}.to_s = "12"
1.9:
[1,2,3,4].to_s = "[1, 2, 3, 4]"
{1=>2}.to_s = "{1=>2}"
|
|
|
|
(#23381) add is_bool() function
|
|
calling rspec directly makes is_function_available.rb not pass ruby -c
|
|
|
|
with the rest.
|
|
|
|
Issue #20200 notes that the merge function does not
support nested hashes.
To prevent unintended side effects with changing merge,
add a deep_merge function instead.
|
|
Update pick error message "at least one non empty value"
|
|
This closes GH-180
|
|
|
|
Right now validation seems to be done against zero byte generated temp
files. We need to close the file before executing validation against it.
|
|
delete_undef_values function fix bug #20681
|
|
The issue #20681 describe the error of delete() function
removing the elements from the origin array/hash/string.
This issue affected other delete functions. Because
ruby delete and delete_if functions make destructive
changes to the origin array/hash.
The delete_undef_values removed elements from the
origin array/hash and this is not the desired behaviour.
To solve this, we should dup or clone the array/hash
before using the delete or delete_if ruby functions.
We should also check if args[0] is not nil before using
dup, since dup on nil raises exception.
This fix the problem and add unit tests, so we could
enforce this behaviour and prevent regressions.
|
|
delete_at added spec to check against bug #20681
|
|
delete_values() fix bug #20681.
|
|
(#16498) Added unit test for loadyaml function.
|
|
As stated on the issue #16498, it would be great to have unit tests
for all the functions.
Function loadyaml was missing a unit test. This commit added the
unit test to loadyaml function.
|
|
bug # 20681 delete() function should not remove elements from original list
|
|
The issue #20681 describe the error of delete() function
removing the elements from the origin array/hash/string.
This issue affected the other delete functions.
The delete_at function is not afected by this bug, but
it did not had the unit test to check against it.
I had added the unit test so we could prevent regressions
on the future and also have better test coverage.
|
|
The issue #20681 describe the error of delete() function
removing the elements from the origin array/hash/string.
This issue affected other delete functions. Because
ruby delete and delete_if functions make destructive
changes to the origin array/hash.
The delete_undef_values removed elements from the
origin hash and this is not the desired behaviour.
To solve this, we should dup or clone the hash
before using the delete or delete_if ruby functions.
This fix the problem and add unit tests, so we could
enforce this behaviour and prevent regressions.
|
|
The setup: list with 3 elements, delete one:
$test_list = [‘a’, ‘b’, ‘c’]
$test_deleted = delete($test_list, ‘a’)
Print out the elements in ‘test_deleted’:
notify { ‘group_output2’: withpath => true, name => “$cfeng::test_deleted”, }
Notice: /Stage[main]/Syslog/Notify[group_output2]/message: bc
Good! Run-on output shows that ‘a’ was deleted
Print out the elements in ‘test_list’:
notify { ‘group_output1’: withpath => true, name => “$cfeng::test_list”, }
Notice: /Stage[main]/Syslog/Notify[group_output1]/message: bc
WHAT!? 'a' was deleted from ‘test_list’ as well! Expected abc as output!
This behaviour is confirmed for string, hash and array.
This is fixed on this commit, I had added two spec tests to cover that cases.
bug #20681 spec test for delete() function.
I had forgot in the last commit the spec test for hash in the
delete function.
bug # 20681 delete() function change aproach.
Instead of rejecting elements from the original list, we use
collection = arguments[0].dup .
then latter we could continue to use delete and gsub! on collection
without impact on original argument.
this is a better solution than the previous one, and works on ruby
1.8.7, 1.9.3 and 2.0.0.
The previous solution does not work on ruby 1.8.7.
delete function remove typo whitespace.
fix typo whitespaces.
|
|
When pick function fail return a better error message like
the other stdlib functions, indicating that the error
is on function pick.
This would help people that see the error to identity it is
related to a incorrect use of stdlib function pick, instead of having
to grep all puppet libraries and manifests source for the old message.
I had also changed the spec test.
pick function change spec as suggested GH-179
Fix the spec test to use expect {}.to instead of lambda {}.should
as explained by Adrienthebo.
"Using expect { }.to is preferred over lambda { }.should.
In addition it's best practice to do a string match against the
error message to ensure that we're catching the right error,
instead of any error of the right type."
Also fixed a typo on the error message, it was missing one space.
pick function stylish fix as suggested on GH179
|
|
small fix to delete_values_spec.rb and README.markdown
|
|
|
|
|
|
extend the validate_slength function to accept a minimum length
|
|
An optional third parameter can be given a min length. The function
then only passes successfully, if all strings are in the range
min_length <= string <= max_length
update and fix function and unit tests
the check for the minlength has to be written differently
because 0 values should be possible. We now check
a) if the input is convertible, and throw a ParseError and
b) if the input .is_a?(Numeric) and ask for a positive number
it's not as clean as for maxlength, but keeps a similar behaviour
refined the error checking for the min length
try to convert to Integer(args[2]) and fail,
if it's not possible
changed the tests accordingly to the new parameter checking
|
|
|
|
Conform to RFC per comments on: https://github.com/puppetlabs/puppetlabs-stdlib/pull/164
Conflicts:
lib/puppet/parser/functions/uriescape.rb
spec/unit/puppet/parser/functions/uriescape_spec.rb
|
|
[#20862] Add functions to validate ipv4 and ipv6 addresses
|
|
|
|
Replace `lambda` with `expect` for making an error expectation
Add an explicit error message in expectation
|
|
|
|
|
|
Conflicts:
lib/puppet/parser/functions/range.rb
spec/unit/puppet/parser/functions/range_spec.rb
|
|
Adding base64 function and spec test. Included a bonus fix to
validate_slength_spec.rb to put the expectation message in the right
place.
|
|
|
|
|
|
|
|
(#20684) Add array comparison functions, difference, intersection and union
|
|
don't fail on undef variable in merge
|
|
Included is code, tests and documentation for the difference, intersection
and union functions for comparing arrays.
|
|
added test that '' is accepted
changed a test that a number is correctly rejected with a type error
|
|
|
|
Without this patch the expected behavior of the count() function when
dealing with an out of bound array index and with a hash key that does
not exist is implicitly encoded in the spec examples. This is a problem
because the expected behavior is not clear for something similar to the
following example:
node default {
$ary = [ 1, 2, 3 ]
$ary_undef = $ary[100]
$hsh = { 'one' => 1 }
$hsh_undef = $hsh['dne']
$count = count(['hi', $ary_undef, $hsh_undef])
notice "Count is ${count}"
}
This patch addresses the problem by making the expected behavior
explicit in the examples.
|
|
Similar to the ruby count method on arrays.
|