Commit graph

680 commits

Author SHA1 Message Date
Alex Cline
e08734af5a (#20548) Allow an array of resource titles to be passed into the ensure_resource function
This patch allows an array of resource titles to be passed into
the ensure_resource function.  Each item in the array will be
checked for existence and will be created if it doesn't already
exist.
2013-05-03 15:47:27 -04:00
Adrien Thebo
0c68ff6d66 Merge pull request #150 from raphink/dev/dirname_function
Add a dirname function
2013-05-02 15:17:32 -07:00
Raphaël Pinson
2ba9e4721b Add a dirname function 2013-05-02 15:17:35 +02:00
Jeff McCune
0aa7e942f4 Merge branch 'msmithgu-small-typo-fix'
* msmithgu-small-typo-fix:
  (maint) Fix a small typo in hash() description

closes #148
2013-04-29 17:18:09 -07:00
Mark Smith-Guerrero
928036ac53 (maint) Fix a small typo in hash() description 2013-04-29 17:17:46 -07:00
Jeff McCune
bebecd3378 Merge branch 'update_gemspec' for 4.0.2
* update_gemspec:
  Update gemspec, Modulefile, CHANGELOG for 4.0.2

closes #145
[ci skip]
2013-04-12 10:13:16 -07:00
Jeff McCune
5e0b90ed65 Update gemspec, Modulefile, CHANGELOG for 4.0.2
Without this patch the information displayed on rubygems.org does not
clearly convey the intent of the Gem format of stdlib from the official
puppet module format of stdlib.  This is a problem because end users
might get confused and start installing stdlib from rubygems.org

This patch addresses the problem by making it clear that the gem version
of stdlib is not intended for end users, but rather is specifically
intended to make it easier for other module authors to depend on stdlib
and have that dependency automatically resolved using a Gemfile.

[ci skip]
2013-04-12 09:47:14 -07:00
Jeff McCune
85cf0e69bf Merge pull request #144 from ghoneycutt/compat_matrix
adds compatibility matrix
2013-04-12 09:40:24 -07:00
Garrett Honeycutt
5a2d4c4a68 adds compatibility matrix 2013-04-12 13:04:15 +02:00
Jeff McCune
62bcb8fcf0 Merge branch 'philandstuff-master'
* philandstuff-master:
  Add behavior example for anchor refresh propagation
  Make the anchor type propagate refresh events

closes #78
2013-04-11 17:57:27 -07:00
Jeff McCune
d2e692dce3 Add behavior example for anchor refresh propagation
Without this patch we don't have a spec test to make sure the anchor
resource type passes notify events along.  This patch addresses the
problem by using RSpec Puppet to build a catalog, apply the catalog,
then pull a resource out of the transaction and make sure the resource
was triggered.
2013-04-11 17:55:40 -07:00
Philip Potter
ddad4455cc Make the anchor type propagate refresh events
Without this patch the anchor resource does not propogate refresh
events, making it difficult to subscribe to a class which has been
notified by another resource.
2013-04-11 17:55:11 -07:00
Jeff McCune
8bf547991c Merge branch 'cprice-puppet-ticket/master/13695-readme-about-puppetlabs-spec-helper'
* cprice-puppet-ticket/master/13695-readme-about-puppetlabs-spec-helper:
  (#13695) add README about puppetlabs_spec_helper

[ci skip]
closes #63
2013-04-11 16:42:58 -07:00
Chris Price
a5c77921ae (#13695) add README about puppetlabs_spec_helper 2013-04-11 16:42:51 -07:00
Jeff McCune
77b883cae1 Update gemspec, CHANGELOG, Modulefile for 4.0.1 2013-04-11 14:31:29 -07:00
Jeff McCune
ab3e30c025 Fix README function documentation
Without this patch some core puppet functions leaked into the
documentation for the functions contained in stdlib.  This patch removes
them and cleans up some of the formatting.
2013-04-11 14:29:57 -07:00
Jeff McCune
f861e81f83 Merge branch stdlib 4.0.0 release
* v4:
  Update gemspec for 4.0.0
  Update function documentation for 4.0.0
  Update Modulefile, README, CHANGELOG for stdlib-4.0.0
2013-04-11 14:16:57 -07:00
Jeff McCune
475e29f698 Update gemspec for 4.0.0 2013-04-11 14:14:02 -07:00
Jeff McCune
ddfafc4a85 Update function documentation for 4.0.0
Without this patch the function documentation is out of sync with the
functions contained in the standard library.  This commit updates the
functions.  I generated the list using this sequence:

    cd ~/src/puppet
    git checkout 3.1.1
    bundle exec puppet doc -r function > /tmp/puppet_functions.txt
    cd ~/src/stdlib
    bundle exec puppet doc -r function > /tmp/stdlib_functions.txt
    diff -U2 puppet_functions.txt stdlib_functions.txt | grep '^+' | perl -ple 's/^\+//' > functions.txt

I then replaced the README function documentation with the contents of
functions.txt which contains only the functions contained in stdlib.
2013-04-11 14:04:31 -07:00
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