Prior to this commit, strings did not properly handle providers
which had multiple related `defaultfor`s. In code, these are written
as comma-separated constraints. This commit updates strings' puppet
provider handler, as well as the template which generates HTML for
`defaultfor` statements.
Note that it was necessary to make a breaking change to the JSON
schema to accomodate multiple AND'ed defaults. Previously, provider
defaults were contained in a single key-value map. Now, they are
contained in an array of key-value lists, which allows multiple
constraints to be associated with each other.
When `newfunction` is separated from the Puppet::Parser::Functions module name by a
newline, YARD ignores the namespace and uses `newfunction` as the source of the
first statement.
Prior to this commit, strings didn't recognize this case, and 3.x functions written
in this way were not parsed as functions. This commit updates the ruby function handler
to identify and properly parse 3.x functions that include a newline between the
Puppet::Parser::Function namespace and the newfunction method call.
The runtime dependency on puppet presents problems when
puppet is not installed on the system as a gem, as is the
case in PE installations. Because the dependency will only be
satisfied by a gem, strings currently cannot be installed in
PE 3.8. This had to be worked around in newer PE versions with
a fake gemspec file.
Another issue is that installing strings with an older
version of puppet will force an upgrade to the newest version of
puppet via the gem.
This commit replaces the runtime dependency on puppet with a
requirement which will be present on the gem homepage on
rubygems.org. Requirements are meant to list external requirements
needed for the gem to work, which is correct for puppet as it can be
present via a different type of package.
Previously the acceptance test was implemented under the `spec` directory and
was moved out to a top level `acceptance` directory.
This broke the expected location for the node configuration files.
This commit puts the acceptance test back where it was previously.
Also fixes a failure in the test now that Markdown is the default markup
language used.
The specs test functions written in the Puppet language in a few places, but
this feature is only supported in Puppet 4.1+. This commit prevents these
specs from running if targeting older versions of Puppet.
This commit implements the `strings:generate` and `strings:gh_pages:update`
rake tasks.
The `strings:generate` task is responsible for generating Puppet Strings
documentation.
The `strings:gh_pages:update` task is responsible for updating the `gh_pages`
branch of a GitHub repository with the latest Puppet Strings documentation.
This commit implements the Puppet language parser that future handlers will use
to generate YARD code objects for classes, defined types, and functions written
in Puppet.
This commit adds the initial YARD configuration. Subsequent commits will
integrate the code objects, handlers, parsers, tags, and templates to support
Puppet code.
This commit deletes the old implementation to assist in cleaner code reviews of
the upcoming reimplementation.
This commit also moves YARD to version 0.9.5 and lays down a bare bones
implementation of Puppet Strings that currently does nothing.
This commit changes the source and documentation to reference this project as
`puppet-strings` rather than `puppetlabs-strings`.
This makes the source and project match the gem name.
This patch catches and reports on issues that have occurred during YARD
processing of the data to be processed.
The issue itself is not resolved but this does provide you with as much
documentation as can be reasonably generated for your materials without
crashing the build.
This was the result of the Baltimore Puppet Users Group Meetup of 22
June 2016.