(PUP-1811) Set regexp match vars on regexp match using in operator
(PUP-1811) Add tests for regexp search in array setting match vars
(PUP-2654) Capitalize each segment of a resource type "label"

When a Resource type is stringified it selects the short notation
(e.g. Fee::Foo) over the longer (e.g. Resource[Fee::Foo]), and
when doing so it should output each segment of the FQN with a
capital letter. The current implementation only capitalizes
the initial letter (e.g. Fee::foo::fum).

This fixes the implementation of
TypeCalculator.string_PResourceExpression to capitalize all segments.
Merge pull request #2789 from hlindberg/PUP-1811_in-set-match-vars

(PUP-1811) Make 'in' set match vars when regexp is used to match
(maint) Extract constant for name separator

The name separator is used a few different times in the file. This
extracts it out and freezes the value, which has the nice benefit of a
small speed boost. Unfortunately this isn't a big win for the system
since this code path is only really used for error conditions.
(doc) Describe ca subcommands in puppet help

PUP-2801 requests ability to remove pending CSRs. The requester confirmed
that the puppet ca destroy command met that need. This patch adds basic
descriptions to puppet help ca for destroy, revoke, generate, sign,
print, fingerprint, and verify. The descriptions are largely sourced from
the puppet help cert descriptions of the same functionality.
Merge branch 'pull-2783'

This closes GH-2783.
Merge branch 'pr/2810'

* pr/2810:
  (maint) Extract constant for name separator
  (PUP-2654) Capitalize each segment of a resource type "label"
(PUP-2104) Fix facter terminus to print out fact files.

Prior to the refactoring of the facter terminus, the terminus loaded
module facts directly.  This is no longer the case and instead facter
always loads the facts itself.

The previous implementation logged an informational message displaying
the path to each fact script it found.  The new behavior only printed
the directory that would be searched for facts.

Given that this information may be useful to module developers and to
maintain existing output behavior, this change restores the previous
output behavior but still relies on facter to load the facts.
(PUP-2104) Update define_settings documentation for default option.

Updating the documentation for define_settings to match the recent
changes that allow a Proc to be passed and lazy-evaluated for the
default value.
Merge pull request #2816 from peterhuene/pup/2104

(PUP-2104) Fix facter terminus to print out fact files.
(PUP-392) FFI ADSI GetComputerName /Add Group SID

 - Some existing tests were using Sys::Admin.get_login to get the
   current username.  Implement this same functionality in
   Puppet::Util::Windows::ADSI::User.current_user_name by making
   Win32 API call directly instead of relying on sys/admin.  Note that
   unlike GetComputerNameW, GetUserNameW returns a length
   including the trailing NULL.
 - Further, replace calls to Sys::Admin::get_user(name).sid and
   Sys::Admin::get_group(name).sid with their respective equivalents in
   the ADSI classes, namely ADSI::User.new(name).sid and
   ADSI::Group.new(name).sid.  Note that Sys::Admin returned a string
   while ADSI returns a SID object which must be converted to a string.
 - To support retrieving the ADSI Group sid, add a new class member
   and method identical to the one on ADSI User.
(PUP-392) Remove sys-admin gem

 - Update inline strings mentioning it as a dependency
(PUP-2737) move regex from ssh_authorized_key provider to the type

Defining the regular expression for the ParsedFile based provider of
the ssh_authorized_key type on the type level rather that directly in
the provider code, it becomes easily possible to reuse it in other types.
(PUP-2737) use the general regex to match ssh_authorized_keys for purging

In order to generate ssh_authorized_key resource for purging, the user
type needs its own parsing logic for ssh_authorized_keys files, as it
cannot directly emply a provider of ssh_authorized_key. This was originally
implemented in a rather half-assed way and worked only for keys without
spaces in the comment string (which Puppet uses as the resource title).

To fix this, unify the parsing logic by using the same regular expression
with which the ssh_authorized_key provider extracts the respective fields
from the keyfiles.
(PUP-2737) fix an error in the user type unit test for ssh key purging

After fixing PUP-2737, it became apparent that there was an error in the
expectations agains the fixture for the user type unit tests. A key
from the fixture did contain spaces in its comment, but the unit test
actually failed to expect the correct value.

Now that the full resource title is retrieved, make a slight adjustment
so that the test keeps working and uses a more appropriate name for the
key.
Merge branch 'pull-2753'

* pull-2753:
  (PUP-2737) fix an error in the user type unit test for ssh key purging
  (PUP-2737) use the general regex to match ssh_authorized_keys for purging
  (PUP-2737) move regex from ssh_authorized_key provider to the type

This closes GH-2753.
Merge pull request #2787 from Iristyle/ticket/master/PUP-392-validate-gems

(PUP-392) Remove sys-admin gem