(DOCUMENT-22) Clarify matching of crontab entries

This updates the documentation to be consistent with behavior introduced in
commit da9162c.
Fix PUP-1568 - no success variable anymore

In the refactoring within 000b8fef the success variables was
removed. So the error message shouldn't anymore use it.
Fix broken spec & wording of error message.

While working on 658f1237c1596a6f735b7b707130fc0897a1a113 I stumbled
accross another messages that would say 'with error code false', which
doesn't make a lot of sense. Also the plain 'expect raise_error' was
masking another problem with tests. One should always only look for the
exact expected error and not just general for any kind of error.
(PUP-1220) apply proper scoping rules to scope#to_hash

The fix for #1427 added an instance method to the scope class
for exporting all variables from the local scope. This method
apparently re-implemented the dynamic scoping rules.

When those were removed, the #to_hash method was left as was.
As a result, dynamic scoping still worked from within templates,
when using the @variable syntax in the erb code.

Fix this by using the new #enclosing_scope method so that proper
scoping rules are used instead.
(PUP-1220) make the dynamic scoping fix for #22800 flexible

As suggested by Henrik Lindberg, make the parser only behave correctly
when parser=future is configured. If working manifests rely on the
regression, the next point release won't break them. Instead, users can
test for this using the configuration setting.

The next major release should adopt the fix as standard behavior and
the legacy support should be removed. Since the variable lookups in
templates relies on the accessing of local attributes, there is no
way to issue deprecation warnings to users.
(PUP-1220) optimize template scoping fix

Following enhancements as suggested by Erik Dalen, Andy Parker et al.
* prefer Puppet[:parser] over Puppet['parser']
* cache the config value of Puppet[:parser]
* pick the future vs. legacy branch only once per template
(maint) Typo fixes: repeated words (e.g. "the the")
(maint) Revise help for puppet config subcommand

Mostly adding context about the idea of sections, inc. list of available sections.
(maint) Make setting not screw up when interpolating a false value

This was a class nil/false screwup.
(PUP-542) Add structured facts to immutable $facts

When opting in with trusted_node_data or immutable_node_data the facts
are also available via $facts, an immutable hash of data.
(PUP-542) Improve descriptions of trusted & immutable node data settings
(maint) Add test for interpolation of setting having false value
Merge pull request #2324 from duritong/fix/master/PUP-1568_fix_error_reporting

Fix/master/pup 1568 fix error reporting
PUP-1772 Change api for Puppet::Util::Profiler#profile to public

This patch changes the YardDoc annotations so that the class
'Puppet::Util::Profiler' is now public, and its method #profile
is also public.

The remaining methods are still marked as private, as they
aren't really needed by most external consumers.

Signed-off-by: Ken Barber <ken@bob.sh>
(maint) Add Ruby 2.1.0 to Travis CI
Merge branch 'pr/2346'

* pr/2346:
  (maint) Add Ruby 2.1.0 to Travis CI

This closes GH-2346.
(PUP-542) Make tests pass on 1.8.7 ('hash' vs 'Hash' in message)
Merge pull request #2390 from kbarber/ticket/master/PUP-1772-profile-method-public-api

PUP-1772 Change api for Puppet::Util::Profiler#profile to public
(pup-1766) Remove duplicate test
(pup-1766) Add support for multiple defaultfor's

Prior to this change, it was possible to specify a defaultfor to
cover, say, multiple osfamily's e.g. with:
    defaultfor :osfamily => [:os1, :os2]
Or it was possible to specify a more complex hash, e.g. with
    defaultfor :osfamily => :os1, :operatingsystemmajorrelease => "42"

But if more specificity for just one of the operatingsystem values was
needed, defaultfor couldn't support that. This change allows for this, e.g.:
    defaultfor :osfamily => :os1  # all variants of os1
    defaultfor :osfamily => :os2, :operatingsystemmajrelease => "42"  # only release #42 of this os

To support this change Provider defaults is now an array of hashes (formerly,
it was a merge of the hashes provided by all defaultfor invocations), which requires
commensurate updates to the specificity method and the dochook.

There are also some new spec tests for representative defaultfor combinations, and
two spec tests needed to be updated with the expectation that Facter will be invoked
to assess defaultprovider specificity.