Commit graph

661 commits

Author SHA1 Message Date
Jeff McCune
25b670e6f6 Update Modulefile, README, CHANGELOG for stdlib-4.0.0 2013-04-11 13:52:49 -07:00
Jeff McCune
9c5805f26a Add ability to use puppet from git via bundler
Without this patch the Gemfile can only satisfy dependencies using
officially release gem versions.  This is a problem because we want to
test stdlib against the latest HEAD of the puppet git repository.

This patch addresses the problem by copying over the location_for method
from the Puppet Gemfile, which will parse out git://, file:// or Gem
version specifications.

This, in turn, allows jobs to be configured to run with different
dependency integrations.
2013-04-11 10:42:46 -07:00
Jeff McCune
2e2830deda Merge branch 'dalen-count'
* dalen-count:
  (maint) Make stdlib usable as a Ruby GEM
  (maint) Add the behavior for count() with arrays and hashes
  Add a count function

closes #143
2013-04-10 14:40:13 -07:00
Jeff McCune
e81a45ee00 (maint) Make stdlib usable as a Ruby GEM
Without this patch it is inconvenient to use the functions included in
stdlib in a development setting.  The Puppet modulepath must be
explicitly set for the functions to be automatically loaded.

This patch addresses the problem by adding a gem specification and
dependency Gemfile.  This makes it possible to directly use stdlib and
all of the components it depends upon, like so:

    $ bundle install --path .bundle/gems/
    $ bundle exec puppet apply -e 'notice count([1, 2, 3])'

The first command will install all of the dependencies, including Puppet
and Facter, into the local project directory.  The second command will
make stdlib avaialable as a Gem, which will be picked up by Puppet since
(#7788) was merged into Puppet in the 3.0 release.
2013-04-10 14:35:42 -07:00
Jeff McCune
435226abfd (maint) Add the behavior for count() with arrays and hashes
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.
2013-04-10 14:33:10 -07:00
Erik Dalén
f28550e789 Add a count function
Similar to the ruby count method on arrays.
2013-04-10 14:39:25 +02:00
Adrien Thebo
6f9361e383 Merge branch '4.x' 2013-04-08 10:06:17 -07:00
Adrien Thebo
085a056442 Merge branch '3.x' into 4.x 2013-04-08 10:06:08 -07:00
Adrien Thebo
db00ce6605 Merge branch '2.x' into 3.x
This ignores the 2.x .travis.yml when merging up since that version is
only applicable to the 2.x branch.

Conflicts:
	.travis.yml
2013-04-08 10:05:29 -07:00
Adrien Thebo
af7bed2bc8 Merge branch '2.x-backport_gemfile' into 2.x 2013-04-08 10:04:43 -07:00
Adrien Thebo
6647d1c69d (maint) Backport Gemfile and .travis.yml to 2.x
This is a partial backport and update of 03c5c4a434
to add travis-ci support and a Gemfile to 2.x. Right now we're not
testing 2.x in travis-ci and we're experiencing spec failures because we
have to install rspec-puppet from git. The best resolution for this is
to consistently use a Gemfile for running tests.

This commit also rewrites the .travis.yml for 2.x to only test 2.x
versions against ruby 1.8.7 and Puppet < 3.0

Conflicts:
	.travis.yml
2013-04-08 10:04:35 -07:00
Jeff McCune
2dd0870923 Merge branch 'amosshapira-any2array'
* amosshapira-any2array:
  Remove resundant code
  (#19998) fix name of function in a comment
  (#19998) Implement any2array

closes #140
2013-04-03 14:05:52 -07:00
Amos Shapira
e7d394b6e9 Remove resundant code 2013-04-03 14:05:20 -07:00
Amos Shapira
003cde074c (#19998) fix name of function in a comment 2013-04-03 14:05:20 -07:00
Amos Shapira
7a2fb80834 (#19998) Implement any2array
This change is to implement a new function "any2array", which will take any
argument or arguments and create an array which contains it. If the argument
is a single array then it will be returned as-is. If the argument is a single
hash then it will be converted into an array. Otherwise (if there are more than
one argument, or the only argument is not an array or a hash) the function will
return an array containing all the arguments.
2013-04-03 14:05:20 -07:00
Adrien Thebo
f90c54e2df Merge pull request #139 from hakamadare/19864_num2bool_match_fix
(19864) num2bool match fix
2013-04-01 09:37:15 -07:00
Steve Huff
c372f17770 Cleanup per adrianthebo suggestions
* use Float() to process string arguments
* get rid of doubly nested arrays
* removing needless ternary operator
* improving error message handling
2013-04-01 11:44:09 -04:00
Steve Huff
8d217f0012 (19864) num2bool match fix
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.
2013-03-29 15:06:36 -04:00
Steve Huff
4a5218a8af Reworked number-handling logic
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.
2013-03-29 12:54:37 -04:00
Steve Huff
e6916f83fd Enable num2bool to accept numeric input
Also ignore rspec fixtures directory
2013-03-29 12:53:56 -04:00
Adrien Thebo
4078a6ff44 Merge branch '4.x' 2013-03-27 14:04:19 -07:00
Adrien Thebo
0adcf646b8 Merge branch '3.x' into 4.x 2013-03-27 14:04:12 -07:00
Adrien Thebo
87c0f0c454 Merge branch '2.x' into 3.x 2013-03-27 14:04:00 -07:00
Adrien Thebo
755d3d2de5 Merge branch 'pull-136' into 2.x 2013-03-27 14:03:40 -07:00
Erik Dalén
ff5dd5d75a Allow comparisons of Numeric and number as String
Puppet passes numbers as String to functions, but it makes more sense to
compare them as Numeric.
But sometimes Puppet passes them as the wrong type, see:
https://projects.puppetlabs.com/issues/19812
2013-03-27 14:03:31 -07:00
Adrien Thebo
f0db049924 Merge branch 'pull-138'
This closes GH-138.
2013-03-27 13:40:29 -07:00
Adrien Thebo
29402f31e7 (maint) better error reporting for prefix and suffix
When prefix and suffix did error checking with positional arguments,
they would not report the position of the argument that failed to
validate. This commit changes the messages to indicate which argument
failed.
2013-03-27 13:37:25 -07:00
Richard Soderberg
a83318d3ee prefix: fix doc typo Examles -> Examples 2013-03-26 15:49:09 -07:00
Richard Soderberg
88a93ac6cd add suffix function to accompany the prefix function 2013-03-26 15:46:55 -07:00
Adrien Thebo
893e6107ed Merge pull request #135 from willaerk/master
Add floor function implementation and unit tests
2013-03-19 10:58:55 -07:00
Kristof Willaert
05273419e1 Add floor function implementation and unit tests 2013-03-19 10:00:57 +01:00
Adrien Thebo
fc2352f346 Merge branch 'pull-59'
This closes GH-59
2013-03-18 15:46:41 -07:00
Eric Shamow
961dcab15d (#13610) Add is_function_available to stdlib
This function provides a simple wrapper around
Puppet::Parser::Functions.function for access within Puppet manifests.
This will allow users to check whether or not a plugin or functionality
such as hiera is installed on the server.
2013-03-18 15:44:50 -07:00
Adrien Thebo
6dfd7f6b73 Merge branch '4.x' 2013-03-18 15:38:14 -07:00
Adrien Thebo
2c1b2c07c2 Merge branch '3.x' into 4.x 2013-03-18 15:38:07 -07:00
Adrien Thebo
c0a0682706 Merge branch '2.x' into 3.x 2013-03-18 15:37:56 -07:00
Adrien Thebo
4c695ede38 Merge branch 'pull-115' into 2.x 2013-03-18 15:37:46 -07:00
Justin Lambert
5d5a4d466e str2bool should return a boolean if called with a boolean 2013-03-18 15:37:36 -07:00
Uwe Stuehler
5a11279cc5 Fix number of arguments check in flatten()
The function only uses the first argument, so raise an error with
too few arguments *and* with too many arguments.
2013-03-18 15:07:13 -07:00
Adrien Thebo
292490b0ad Merge branch '3.x' into 4.x 2013-03-18 15:06:33 -07:00
Adrien Thebo
c12d3d7d51 Merge branch '2.x' into 3.x 2013-03-18 15:06:07 -07:00
Adrien Thebo
967f9916d1 Merge branch 'pull-98' into 2.x 2013-03-18 15:05:23 -07:00
Uwe Stuehler
e80207bede Fix number of arguments check in flatten()
The function only uses the first argument, so raise an error with
too few arguments *and* with too many arguments.
2013-03-18 15:04:50 -07:00
Jeff McCune
96e19d05f3 Add contributing document
Copied from the same one included in Puppet and Facter.

[ci skip]
2013-03-11 11:06:36 -07:00
Adrien Thebo
d479df612b Merge pull request #132 from raphink/dev/missing_doc
Add missing documentation for validate_augeas and validate_cmd to README.markdown
2013-03-04 15:25:53 -08:00
Raphaël Pinson
a1510a1e71 Add missing documentation for validate_augeas and validate_cmd to README.markdown 2013-03-04 23:37:57 +01:00
Jeff McCune
9a06f11b11 Merge branch '4.x'
* 4.x:
  (maint) Add Ruby 2.0.0 to Travis build matrix

Conflicts:
	.gitignore
	.travis.yml
	Gemfile
2013-02-25 14:19:13 -08:00
Jeff McCune
e0a2dc5b91 Merge branch '3.x' into 4.x
* 3.x:
  (maint) Add Ruby 2.0.0 to Travis build matrix
2013-02-25 14:11:18 -08:00
Jeff McCune
4fdefd0761 Merge branch 'maint/3.x/ruby_two_travis' into 3.x
* maint/3.x/ruby_two_travis:
  (maint) Add Ruby 2.0.0 to Travis build matrix
2013-02-25 14:11:07 -08:00
Jeff McCune
03c5c4a434 (maint) Add Ruby 2.0.0 to Travis build matrix
Without this patch we're not testing against Ruby 2.0.0 which has recently been
released.  This is a problem because we'd like a way to be notified if a change
set breaks compatibility with future supported versions of Ruby.

This patch should not be taken as an indication that we fully support Ruby 2.0,
just as an indication that we plan to in the future.

This patch also tightens up the specifications of the build matrix.  In
addition to testing against the specific Puppet dependency versions, we're also
testing against the latest 2.7.x release and the latest release.
2013-02-25 14:11:03 -08:00