Add the missing shebangs and fix the wrong ones for rpmlint to stop complaining loudly
Merge pull request #248 from averi/master

Add the missing shebangs and fix the wrong ones
Adding more spec coverage
Move the 4 misplaced tests
Add mode +x to spec .rb files
Merge pull request #247 from hunner/more_tests

Adding more spec coverage
Move unit tests to spec/functions

rspec-puppet matchers are defined for tests which exist in
spec/functions, but the function unit tests lived in
spec/unit/puppet/parser/functions. This moves them to the correct place
for using rspec-puppet
Merge pull request #250 from hunner/move_unit

Move unit tests to spec/functions
Fix the stdlib functions that fail tests
Merge pull request #251 from hunner/fix_tests

Fix the stdlib functions that fail tests
Release - 4.2.0

Summary
========
This release adds many new functions and fixes, and continues to be backwards compatible with stdlib 3.x

Features
-------
- New `base64()` function
- New `deep_merge()` function
- New `delete_undef_values()` function
- New `delete_values()` function
- New `difference()` function
- New `intersection()` function
- New `is_bool()` function
- New `pick_default()` function
- New `union()` function
- New `validate_ipv4_address` function
- New `validate_ipv6_address` function
- Update `ensure_packages()` to take an option hash as a second parameter.
- Update `range()` to take an optional third argument for range step
- Update `validate_slength()` to take an optional third argument for minimum length
- Update `file_line` resource to take `after` and `multiple` attributes

Bugfixes
--------
- Correct `is_string`, `is_domain_name`, `is_array`, `is_float`, and `is_function_available` for parsing odd types such as bools and hashes.
- Allow facts.d facts to contain `=` in the value
- Fix `root_home` fact on darwin systems
- Fix `concat()` to work with a second non-array argument
- Fix `floor()` to work with integer strings
- Fix `is_integer()` to return true if passed integer strings
- Fix `is_numeric()` to return true if passed integer strings
- Fix `merge()` to work with empty strings
- Fix `pick()` to raise the correct error type
- Fix `uriescape()` to use the default URI.escape list
- Add/update unit & acceptance tests.
Merge pull request #252 from hunner/release_4.2.0

Release - 4.2.0
Prepare a 4.2.1 release.
Merge pull request #254 from apenney/421

Prepare a 4.2.1 release.
(MODULES-905) Add bool2str() and camelcase() for string manipulation

Python likes to have its constants Capitalized, and the capitalize
function only understands strings... so I shave a yak.

bool2str will convert a boolean to its equivalent string value,
and camelcase extends on uppercase & downcase to convert an underscore
delimited string into a camelcased string.
(maint) Add bool2str & camelcase spec tests
(PUP-2571) add 'before' functionality to file_line

file_line supports adding lines after a match, but there are use cases when
having "before" would be useful. For example, in Debian-based OS's, the last
line of /etc/rc.local is "exit 0" it's an incredible pain to deal with
that scenario today.

This commit adds a 'before' parameter to the file_line type, and implements
it for the ruby provider.
Merge pull request #256 from stbenjam/2571-before

(PUP-2571) add 'before' functionality to file_line
Merge pull request #255 from mckern/enhancement/master/camelcasedembools

(MODULES-905) Add bool2str() and camelcase() for string manipulation
Revert "Merge pull request #256 from stbenjam/2571-before"

This reverts commit 8499ebdb7f892f2623295058649c67a5553d4732, reversing
changes made to 08b00d9229961d7b3c3cba997bfb35c8d47e4c4b.