Age | Commit message (Collapse) | Author |
|
* use Float() to process string arguments
* get rid of doubly nested arrays
* removing needless ternary operator
* improving error message handling
|
|
This is a bit more heavy-handed than I might like, but it does appear to
do the right things:
* accepts numeric input appropriately, truncating floats
* matches string input against a regex, then coerces number-looking
strings to int
* makes a best effort to coerce anything else to a string, then subjects
it to the same treatment
* raises an error in the event of incorrect number of arguments or
non-number-looking strings
I've also included some additional unit tests.
|
|
No more coercing to String and regex matching. Instead, we now coerce
to Integer at the beginning or raise an error if we cannot coerce to
Integer.
A consequence of this change is that the function will now accept
blatantly non-numeric strings as input, and return false. This seems a
bit goofy to me, but it's how String#to_i works. If we really don't
like this, then I'm open to suggestions.
|
|
Also ignore rspec fixtures directory
|
|
The module PuppetlabsSpec::PuppetSeams has been renamed in the
puppetlabs_spec_helper gem to PuppetlabsSpec::PuppetInternals.
The method to obtain a scope object has also changed slightly. Without
this patch the spec tests will fail because the stdlib module is not
aligned with the spec helper gem. This patch fixes the problem by
matching up messages with their receivers in the spec helper library.
Paired-with: Andrew Parker <andy@puppetlabs.com>
|
|
Without this patch all of the spec tests for parser functions in stdlib
would instantiate their own scope instances. This is a problem because
the standard library is tightly coupled with the internal behavior of
Puppet. Tight coupling like this creates failures when we change the
internal behavior of Puppet. This is exactly what happened recently
when we changed the method signature for the initializer of
Puppet::Parser::Scope instances.
This patch fixes the problem by creating scope instances using the
puppet labs spec helper. The specific method that provides scope
instances in Puppet-version-independent way is something like this:
let(:scope) { PuppetlabsSpec::PuppetSeams.parser_scope }
This patch simply implements this across the board.
|
|
This time around I actually know why I'm doing this thanks to the
reminder from Nick Lewis.
Ruby will replace itself in memory with the executable listed in the
interpreter line if the string "ruby" is not in there.
Since /usr/bin/env rspec doesn't contain the substring "ruby", you can't
actually run ruby -W1 or whatever on the file.
This patch fixes the problem by making sure "ruby" is present,
preventing ruby from replacing itself in memory.
|
|
* Re-arranged tests in line with puppetlabs-stdlib
|