Merge pull request #4 from hkenney/PDOC-3_refactor-prototype-code
(PDOC-3) Rename face to strings instead of yardoc
This commit is contained in:
commit
6fb4a39536
|
@ -1,4 +1,4 @@
|
||||||
Puppet YARDoc
|
Puppet Strings
|
||||||
=============
|
=============
|
||||||
|
|
||||||
A Puppet Face and plugin built on the [YARD Documentation Tool](http://yardoc.org/) and Puppet Future Parser.
|
A Puppet Face and plugin built on the [YARD Documentation Tool](http://yardoc.org/) and Puppet Future Parser.
|
||||||
|
@ -23,13 +23,13 @@ Usage
|
||||||
Documenting a module:
|
Documenting a module:
|
||||||
|
|
||||||
cd /path/to/module
|
cd /path/to/module
|
||||||
puppet yardoc
|
puppet strings
|
||||||
|
|
||||||
This processes `README` and everything in `manifests/**/*.pp`.
|
This processes `README` and everything in `manifests/**/*.pp`.
|
||||||
|
|
||||||
Documenting specific manifests:
|
Documenting specific manifests:
|
||||||
|
|
||||||
puppet yardoc some_manifest.pp [another_if_you_feel_like_it.pp]
|
puppet strings some_manifest.pp [another_if_you_feel_like_it.pp]
|
||||||
|
|
||||||
Processing is delegated to the `yardoc` tool so some options listed in `yard help doc` are available.
|
Processing is delegated to the `yardoc` tool so some options listed in `yard help doc` are available.
|
||||||
However, Puppet Faces do not support passing arbitrary options through a face so these options must be specified in a `.yardopts` file.
|
However, Puppet Faces do not support passing arbitrary options through a face so these options must be specified in a `.yardopts` file.
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
require 'puppet/application/face_base'
|
||||||
|
|
||||||
|
class Puppet::Application::Strings < Puppet::Application::FaceBase
|
||||||
|
end
|
|
@ -1,4 +0,0 @@
|
||||||
require 'puppet/application/face_base'
|
|
||||||
|
|
||||||
class Puppet::Application::Yardoc < Puppet::Application::FaceBase
|
|
||||||
end
|
|
|
@ -1,6 +1,6 @@
|
||||||
require 'puppet/face'
|
require 'puppet/face'
|
||||||
|
|
||||||
Puppet::Face.define(:yardoc, '0.0.1') do
|
Puppet::Face.define(:strings, '0.0.1') do
|
||||||
summary "Generate Puppet documentation with YARD."
|
summary "Generate Puppet documentation with YARD."
|
||||||
|
|
||||||
def check_required_features
|
def check_required_features
|
||||||
|
@ -54,7 +54,7 @@ Puppet::Face.define(:yardoc, '0.0.1') do
|
||||||
yard_args = (args.empty? ? MODULE_SOURCEFILES : args)
|
yard_args = (args.empty? ? MODULE_SOURCEFILES : args)
|
||||||
merge_puppet_args!(yard_args)
|
merge_puppet_args!(yard_args)
|
||||||
|
|
||||||
require 'puppetx/yardoc/yard/plugin'
|
require 'puppetx/puppetlabs/strings/yard/plugin'
|
||||||
|
|
||||||
# Hand off to YARD for further processing.
|
# Hand off to YARD for further processing.
|
||||||
YARD::CLI::Yardoc.run(*yard_args)
|
YARD::CLI::Yardoc.run(*yard_args)
|
||||||
|
@ -71,7 +71,7 @@ Puppet::Face.define(:yardoc, '0.0.1') do
|
||||||
|
|
||||||
when_invoked do |*args|
|
when_invoked do |*args|
|
||||||
check_required_features
|
check_required_features
|
||||||
require 'puppetx/yardoc/yard/plugin'
|
require 'puppetx/puppetlabs/strings/yard/plugin'
|
||||||
opts = args.pop
|
opts = args.pop
|
||||||
|
|
||||||
# NOTE: The retrun value of the `module` Face seems to have changed in
|
# NOTE: The retrun value of the `module` Face seems to have changed in
|
||||||
|
@ -105,13 +105,13 @@ Puppet::Face.define(:yardoc, '0.0.1') do
|
||||||
|
|
||||||
when_invoked do |*args|
|
when_invoked do |*args|
|
||||||
check_required_features
|
check_required_features
|
||||||
require 'puppetx/yardoc/yard/plugin'
|
require 'puppetx/puppetlabs/strings/yard/plugin'
|
||||||
opts = args.pop
|
opts = args.pop
|
||||||
|
|
||||||
# FIXME: This is pretty inefficient as it forcibly re-generates the YARD
|
# FIXME: This is pretty inefficient as it forcibly re-generates the YARD
|
||||||
# indicies each time the server is started. However, it ensures things are
|
# indicies each time the server is started. However, it ensures things are
|
||||||
# generated properly.
|
# generated properly.
|
||||||
module_list = Puppet::Face[:yardoc, :current].modules
|
module_list = Puppet::Face[:strings, :current].modules
|
||||||
|
|
||||||
module_tuples = module_list.map do |mod|
|
module_tuples = module_list.map do |mod|
|
||||||
name = (mod.forge_name || mod.name).gsub('/', '-')
|
name = (mod.forge_name || mod.name).gsub('/', '-')
|
|
@ -0,0 +1,16 @@
|
||||||
|
require 'puppetx'
|
||||||
|
|
||||||
|
# Nothing to see here except forward declarations.
|
||||||
|
module Puppetx::PuppetLabs
|
||||||
|
module Strings
|
||||||
|
|
||||||
|
# This submodule contains bits that interface with the YARD plugin system.
|
||||||
|
module YARD
|
||||||
|
end
|
||||||
|
|
||||||
|
# This submodule contains bits that operate on the Pops module produced by
|
||||||
|
# the Future parser.
|
||||||
|
module Pops
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,9 +1,9 @@
|
||||||
require 'ostruct'
|
require 'ostruct'
|
||||||
require 'puppet/pops'
|
require 'puppet/pops'
|
||||||
|
|
||||||
require_relative '../../yardoc'
|
require_relative '../../strings'
|
||||||
|
|
||||||
module Puppetx::Yardoc::Pops
|
module Puppetx::PuppetLabs::Strings::Pops
|
||||||
# An adapter class that conforms a Pops model instance + adapters to the
|
# An adapter class that conforms a Pops model instance + adapters to the
|
||||||
# interface expected by YARD handlers.
|
# interface expected by YARD handlers.
|
||||||
#
|
#
|
|
@ -1,9 +1,9 @@
|
||||||
require 'puppet/pops'
|
require 'puppet/pops'
|
||||||
|
|
||||||
require_relative '../../yardoc'
|
require_relative '../../strings'
|
||||||
require_relative 'yard_statement'
|
require_relative 'yard_statement'
|
||||||
|
|
||||||
module Puppetx::Yardoc::Pops
|
module Puppetx::PuppetLabs::Strings::Pops
|
||||||
# Loosely based on the TreeDumper classes in Pops::Model. The responsibility of
|
# Loosely based on the TreeDumper classes in Pops::Model. The responsibility of
|
||||||
# this class is to walk a Pops::Model and output objects that can be consumed
|
# this class is to walk a Pops::Model and output objects that can be consumed
|
||||||
# by YARD handlers.
|
# by YARD handlers.
|
|
@ -2,7 +2,7 @@ require 'puppet/pops'
|
||||||
|
|
||||||
require_relative 'puppet_namespace_object'
|
require_relative 'puppet_namespace_object'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD::CodeObjects
|
module Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||||
class DefinedTypeObject < PuppetNamespaceObject
|
class DefinedTypeObject < PuppetNamespaceObject
|
||||||
# A list of parameters attached to this class.
|
# A list of parameters attached to this class.
|
||||||
# @return [Array<Array(String, String)>]
|
# @return [Array<Array(String, String)>]
|
|
@ -1,6 +1,6 @@
|
||||||
require_relative 'defined_type_object'
|
require_relative 'defined_type_object'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD::CodeObjects
|
module Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||||
class HostClassObject < DefinedTypeObject
|
class HostClassObject < DefinedTypeObject
|
||||||
# The {HostClassObject} that this class inherits from, if any.
|
# The {HostClassObject} that this class inherits from, if any.
|
||||||
# @return [HostClassObject, Proxy, nil]
|
# @return [HostClassObject, Proxy, nil]
|
|
@ -1,8 +1,8 @@
|
||||||
require 'yard'
|
require 'yard'
|
||||||
|
|
||||||
require_relative '../../../yardoc'
|
require_relative '../../../strings'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD::CodeObjects
|
module Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||||
class PuppetNamespaceObject < YARD::CodeObjects::NamespaceObject
|
class PuppetNamespaceObject < YARD::CodeObjects::NamespaceObject
|
||||||
# NOTE: `YARD::Registry#resolve` requires a method with this signature to
|
# NOTE: `YARD::Registry#resolve` requires a method with this signature to
|
||||||
# be present on all subclasses of `NamespaceObject`.
|
# be present on all subclasses of `NamespaceObject`.
|
|
@ -2,5 +2,5 @@ require_relative 'handlers/base'
|
||||||
require_relative 'handlers/defined_type_handler'
|
require_relative 'handlers/defined_type_handler'
|
||||||
require_relative 'handlers/host_class_handler'
|
require_relative 'handlers/host_class_handler'
|
||||||
|
|
||||||
require_relative 'handlers/parser_function_handler'
|
require_relative 'handlers/puppet_3x_function_handler'
|
||||||
require_relative 'handlers/future_parser_function_handler'
|
require_relative 'handlers/puppet_4x_function_handler'
|
|
@ -1,15 +1,15 @@
|
||||||
require 'yard'
|
require 'yard'
|
||||||
require 'puppet/pops'
|
require 'puppet/pops'
|
||||||
|
|
||||||
require_relative '../../../yardoc'
|
require_relative '../../../strings'
|
||||||
require_relative '../code_objects'
|
require_relative '../code_objects'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD::Handlers
|
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||||
class Base < YARD::Handlers::Base
|
class Base < YARD::Handlers::Base
|
||||||
# Easy access to Pops model objects for handler matching.
|
# Easy access to Pops model objects for handler matching.
|
||||||
include Puppet::Pops::Model
|
include Puppet::Pops::Model
|
||||||
# Easy access to custom code objects from which documentation is generated.
|
# Easy access to custom code objects from which documentation is generated.
|
||||||
include Puppetx::Yardoc::YARD::CodeObjects
|
include Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||||
|
|
||||||
def self.handles?(statement)
|
def self.handles?(statement)
|
||||||
handlers.any? {|h| h == statement.type}
|
handlers.any? {|h| h == statement.type}
|
|
@ -1,6 +1,6 @@
|
||||||
require_relative 'base'
|
require_relative 'base'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD::Handlers
|
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||||
class DefinedTypeHandler < Base
|
class DefinedTypeHandler < Base
|
||||||
handles ResourceTypeDefinition
|
handles ResourceTypeDefinition
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require_relative 'base'
|
require_relative 'base'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD::Handlers
|
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||||
class HostClassHandler < Base
|
class HostClassHandler < Base
|
||||||
handles HostClassDefinition
|
handles HostClassDefinition
|
||||||
|
|
|
@ -3,9 +3,9 @@ require 'puppet/util/docs'
|
||||||
|
|
||||||
require_relative '../code_objects'
|
require_relative '../code_objects'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD::Handlers
|
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||||
class ParserFunctionHandler < YARD::Handlers::Ruby::Base
|
class Puppet3xFunctionHandler < YARD::Handlers::Ruby::Base
|
||||||
include Puppetx::Yardoc::YARD::CodeObjects
|
include Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||||
|
|
||||||
handles method_call(:newfunction)
|
handles method_call(:newfunction)
|
||||||
|
|
||||||
|
@ -40,11 +40,11 @@ module Puppetx::Yardoc::YARD::Handlers
|
||||||
# @return [PuppetNamespaceObject]
|
# @return [PuppetNamespaceObject]
|
||||||
def function_namespace
|
def function_namespace
|
||||||
# NOTE: This tricky. If there is ever a Ruby class or module with the
|
# NOTE: This tricky. If there is ever a Ruby class or module with the
|
||||||
# name ::ParserFunctions, then there will be a clash. Hopefully the name
|
# name ::Puppet3xFunctions, then there will be a clash. Hopefully the name
|
||||||
# is sufficiently uncommon.
|
# is sufficiently uncommon.
|
||||||
obj = P(:root, 'ParserFunctions')
|
obj = P(:root, 'Puppet3xFunctions')
|
||||||
if obj.is_a? Proxy
|
if obj.is_a? Proxy
|
||||||
namespace_obj = PuppetNamespaceObject.new(:root, 'ParserFunctions')
|
namespace_obj = PuppetNamespaceObject.new(:root, 'Puppet3xFunctions')
|
||||||
namespace_obj.add_tag YARD::Tags::Tag.new(:api, 'public')
|
namespace_obj.add_tag YARD::Tags::Tag.new(:api, 'public')
|
||||||
|
|
||||||
register namespace_obj
|
register namespace_obj
|
|
@ -1,16 +1,16 @@
|
||||||
require_relative '../code_objects'
|
require_relative '../code_objects'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD::Handlers
|
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||||
# Handles `dispatch` calls within a future parser function declaration. For
|
# Handles `dispatch` calls within a future parser function declaration. For
|
||||||
# now, it just treats any docstring as an `@overlaod` tag and attaches the
|
# now, it just treats any docstring as an `@overlaod` tag and attaches the
|
||||||
# overload to the parent function.
|
# overload to the parent function.
|
||||||
class FutureParserDispatchHandler < YARD::Handlers::Ruby::Base
|
class Puppet4xFunctionHandler < YARD::Handlers::Ruby::Base
|
||||||
include Puppetx::Yardoc::YARD::CodeObjects
|
include Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||||
|
|
||||||
handles method_call(:dispatch)
|
handles method_call(:dispatch)
|
||||||
|
|
||||||
process do
|
process do
|
||||||
return unless owner.is_a?(MethodObject) && owner['future_parser_function']
|
return unless owner.is_a?(MethodObject) && owner['puppet_4x_function']
|
||||||
return unless statement.docstring
|
return unless statement.docstring
|
||||||
|
|
||||||
docstring = ::YARD::Docstring.new(statement.docstring, nil)
|
docstring = ::YARD::Docstring.new(statement.docstring, nil)
|
||||||
|
@ -21,8 +21,8 @@ module Puppetx::Yardoc::YARD::Handlers
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class FutureParserFunctionHandler < YARD::Handlers::Ruby::Base
|
class Puppet4xFunctionHandler < YARD::Handlers::Ruby::Base
|
||||||
include Puppetx::Yardoc::YARD::CodeObjects
|
include Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||||
|
|
||||||
handles method_call(:create_function)
|
handles method_call(:create_function)
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ module Puppetx::Yardoc::YARD::Handlers
|
||||||
name = process_parameters
|
name = process_parameters
|
||||||
|
|
||||||
obj = MethodObject.new(function_namespace, name)
|
obj = MethodObject.new(function_namespace, name)
|
||||||
obj['future_parser_function'] = true
|
obj['puppet_4x_function'] = true
|
||||||
|
|
||||||
register obj
|
register obj
|
||||||
|
|
||||||
|
@ -48,11 +48,11 @@ module Puppetx::Yardoc::YARD::Handlers
|
||||||
# @return [PuppetNamespaceObject]
|
# @return [PuppetNamespaceObject]
|
||||||
def function_namespace
|
def function_namespace
|
||||||
# NOTE: This tricky. If there is ever a Ruby class or module with the
|
# NOTE: This tricky. If there is ever a Ruby class or module with the
|
||||||
# name ::ParserFunctions, then there will be a clash. Hopefully the name
|
# name ::Puppet4xFunctions, then there will be a clash. Hopefully the name
|
||||||
# is sufficiently uncommon.
|
# is sufficiently uncommon.
|
||||||
obj = P(:root, 'FutureParserFunctions')
|
obj = P(:root, 'Puppet4xFunctions')
|
||||||
if obj.is_a? Proxy
|
if obj.is_a? Proxy
|
||||||
namespace_obj = PuppetNamespaceObject.new(:root, 'FutureParserFunctions')
|
namespace_obj = PuppetNamespaceObject.new(:root, 'Puppet4xFunctions')
|
||||||
|
|
||||||
register namespace_obj
|
register namespace_obj
|
||||||
# FIXME: The docstring has to be cleared. Otherwise, the namespace
|
# FIXME: The docstring has to be cleared. Otherwise, the namespace
|
|
@ -1,10 +1,10 @@
|
||||||
require 'yard'
|
require 'yard'
|
||||||
require 'puppet/pops'
|
require 'puppet/pops'
|
||||||
|
|
||||||
require_relative '../../yardoc'
|
require_relative '../../strings'
|
||||||
require_relative '../pops/yard_transformer'
|
require_relative '../pops/yard_transformer'
|
||||||
|
|
||||||
module Puppetx::Yardoc::YARD
|
module Puppetx::PuppetLabs::Strings::YARD
|
||||||
class PuppetParser < YARD::Parser::Base
|
class PuppetParser < YARD::Parser::Base
|
||||||
attr_reader :file, :source
|
attr_reader :file, :source
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ module Puppetx::Yardoc::YARD
|
||||||
@file = filename
|
@file = filename
|
||||||
|
|
||||||
@parser = Puppet::Pops::Parser::Parser.new()
|
@parser = Puppet::Pops::Parser::Parser.new()
|
||||||
@transformer = Puppetx::Yardoc::Pops::YARDTransformer.new()
|
@transformer = Puppetx::PuppetLabs::Strings::Pops::YARDTransformer.new()
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse
|
def parse
|
|
@ -10,10 +10,10 @@ require_relative 'parser'
|
||||||
require_relative 'handlers'
|
require_relative 'handlers'
|
||||||
|
|
||||||
YARD::Parser::SourceParser.register_parser_type(:puppet,
|
YARD::Parser::SourceParser.register_parser_type(:puppet,
|
||||||
Puppetx::Yardoc::YARD::PuppetParser,
|
Puppetx::PuppetLabs::Strings::YARD::PuppetParser,
|
||||||
['pp'])
|
['pp'])
|
||||||
YARD::Handlers::Processor.register_handler_namespace(:puppet,
|
YARD::Handlers::Processor.register_handler_namespace(:puppet,
|
||||||
Puppetx::Yardoc::YARD::Handlers)
|
Puppetx::PuppetLabs::Strings::YARD::Handlers)
|
||||||
|
|
||||||
# FIXME: Might not be the best idea to have the template code on the Ruby
|
# FIXME: Might not be the best idea to have the template code on the Ruby
|
||||||
# LOAD_PATH as the contents of this directory really aren't library code.
|
# LOAD_PATH as the contents of this directory really aren't library code.
|
|
@ -0,0 +1,21 @@
|
||||||
|
<% unless P(:root, 'Puppet3xFunctions').is_a?(CodeObjects::Proxy) %>
|
||||||
|
<li>
|
||||||
|
<a class='toggle'></a>
|
||||||
|
<%= link_object(P(:root, 'Puppet3xFunctions'), 'Puppet 3x Functions', nil, false) %>
|
||||||
|
<small class='search_info'>Puppet3xFunctions</small>
|
||||||
|
</li>
|
||||||
|
<ul>
|
||||||
|
<%= namespace_list(:root => P(:root,'Puppet3xFunctions'), :namespace_types => [:puppetnamespace, :method]) %>
|
||||||
|
</ul>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% unless P(:root, 'Puppet4xFunctions').is_a?(CodeObjects::Proxy) %>
|
||||||
|
<li>
|
||||||
|
<a class='toggle'></a>
|
||||||
|
<%= link_object(P(:root, 'Puppet4xFunctions'), 'Puppet 4x Functions', nil, false) %>
|
||||||
|
<small class='search_info'>Puppet4xFunctions</small>
|
||||||
|
</li>
|
||||||
|
<ul>
|
||||||
|
<%= namespace_list(:root => P(:root,'Puppet4xFunctions'), :namespace_types => [:puppetnamespace, :method]) %>
|
||||||
|
</ul>
|
||||||
|
<% end %>
|
|
@ -1,13 +0,0 @@
|
||||||
require 'puppetx'
|
|
||||||
|
|
||||||
# Nothing to see here except forward declarations.
|
|
||||||
module Puppetx::Yardoc
|
|
||||||
# This submodule contains bits that interface with the YARD plugin system.
|
|
||||||
module YARD
|
|
||||||
end
|
|
||||||
|
|
||||||
# This submodule contains bits that operate on the Pops module produced by
|
|
||||||
# the Future parser.
|
|
||||||
module Pops
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,21 +0,0 @@
|
||||||
<% unless P(:root, 'ParserFunctions').is_a?(CodeObjects::Proxy) %>
|
|
||||||
<li>
|
|
||||||
<a class='toggle'></a>
|
|
||||||
<%= link_object(P(:root, 'ParserFunctions'), 'Parser Functions', nil, false) %>
|
|
||||||
<small class='search_info'>ParserFunctions</small>
|
|
||||||
</li>
|
|
||||||
<ul>
|
|
||||||
<%= namespace_list(:root => P(:root,'ParserFunctions'), :namespace_types => [:puppetnamespace, :method]) %>
|
|
||||||
</ul>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% unless P(:root, 'FutureParserFunctions').is_a?(CodeObjects::Proxy) %>
|
|
||||||
<li>
|
|
||||||
<a class='toggle'></a>
|
|
||||||
<%= link_object(P(:root, 'FutureParserFunctions'), 'Future Parser Functions', nil, false) %>
|
|
||||||
<small class='search_info'>FutureParserFunctions</small>
|
|
||||||
</li>
|
|
||||||
<ul>
|
|
||||||
<%= namespace_list(:root => P(:root,'FutureParserFunctions'), :namespace_types => [:puppetnamespace, :method]) %>
|
|
||||||
</ul>
|
|
||||||
<% end %>
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"name": "sharpie-puppet_yardoc",
|
"name": "puppetlabs-strings",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"author": "Charlie Sharpsteen",
|
"author": "Puppet Labs",
|
||||||
"summary": "Puppet documentation via YARD",
|
"summary": "Puppet documentation via YARD",
|
||||||
"license": "Apache 2.0",
|
"license": "Apache 2.0",
|
||||||
"source": "",
|
"source": "https://github.com/puppetlabs/puppetlabs-strings",
|
||||||
"project_page": null,
|
"project_page": null,
|
||||||
"issues_url": null,
|
"issues_url": null,
|
||||||
"requirements": [
|
"requirements": [
|
||||||
|
|
|
@ -6,7 +6,7 @@ require 'puppet'
|
||||||
require 'rspec'
|
require 'rspec'
|
||||||
|
|
||||||
# This is neeeded so we can access a Registry if YARD creates one
|
# This is neeeded so we can access a Registry if YARD creates one
|
||||||
require 'puppetx/yardoc/yard/plugin'
|
require 'puppetx/puppetlabs/strings/yard/plugin'
|
||||||
include YARD
|
include YARD
|
||||||
|
|
||||||
RSpec.configure do |config|
|
RSpec.configure do |config|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'puppet/face/yardoc'
|
require 'puppet/face/strings'
|
||||||
require 'rspec-html-matchers'
|
require 'rspec-html-matchers'
|
||||||
require 'tmpdir'
|
require 'tmpdir'
|
||||||
require 'stringio'
|
require 'stringio'
|
||||||
|
@ -9,26 +9,26 @@ describe Puppet::Face do
|
||||||
describe "YARDoc action" do
|
describe "YARDoc action" do
|
||||||
it "should raise an error if yard is absent" do
|
it "should raise an error if yard is absent" do
|
||||||
Puppet.features.stubs(:yard?).returns(false)
|
Puppet.features.stubs(:yard?).returns(false)
|
||||||
expect{Puppet::Face[:yardoc, :current].yardoc}.to raise_error(RuntimeError, "The 'yard' gem must be installed in order to use this face.")
|
expect{Puppet::Face[:strings, :current].yardoc}.to raise_error(RuntimeError, "The 'yard' gem must be installed in order to use this face.")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should raise an error if rgen is absent" do
|
it "should raise an error if rgen is absent" do
|
||||||
Puppet.features.stubs(:rgen?).returns(false)
|
Puppet.features.stubs(:rgen?).returns(false)
|
||||||
expect{Puppet::Face[:yardoc, :current].yardoc}.to raise_error(RuntimeError, "The 'rgen' gem must be installed in order to use this face.")
|
expect{Puppet::Face[:strings, :current].yardoc}.to raise_error(RuntimeError, "The 'rgen' gem must be installed in order to use this face.")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should raise an error if the Ruby verion is less than 1.9", :if => RUBY_VERSION.match(/^1\.8/) do
|
it "should raise an error if the Ruby verion is less than 1.9", :if => RUBY_VERSION.match(/^1\.8/) do
|
||||||
expect{Puppet::Face[:yardoc, :current].yardoc}.to raise_error(RuntimeError, "This face requires Ruby 1.9 or greater.")
|
expect{Puppet::Face[:strings, :current].yardoc}.to raise_error(RuntimeError, "This face requires Ruby 1.9 or greater.")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should invoke Yardoc with MODULE_SOURCEFILES if no arguments are provided" do
|
it "should invoke Yardoc with MODULE_SOURCEFILES if no arguments are provided" do
|
||||||
YARD::CLI::Yardoc.expects(:run).with('manifests/**/*.pp', 'lib/**/*.rb')
|
YARD::CLI::Yardoc.expects(:run).with('manifests/**/*.pp', 'lib/**/*.rb')
|
||||||
Puppet::Face[:yardoc, :current].yardoc
|
Puppet::Face[:strings, :current].yardoc
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should invoke Yardoc with provided arguments" do
|
it "should invoke Yardoc with provided arguments" do
|
||||||
YARD::CLI::Yardoc.expects(:run).with('--debug', 'some_file.rb')
|
YARD::CLI::Yardoc.expects(:run).with('--debug', 'some_file.rb')
|
||||||
Puppet::Face[:yardoc, :current].yardoc('--debug', 'some_file.rb')
|
Puppet::Face[:strings, :current].yardoc('--debug', 'some_file.rb')
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "when generating HTML for documentation" do
|
describe "when generating HTML for documentation" do
|
||||||
|
@ -39,7 +39,7 @@ describe Puppet::Face do
|
||||||
using_module('test') do |tmp|
|
using_module('test') do |tmp|
|
||||||
Dir.chdir('test')
|
Dir.chdir('test')
|
||||||
|
|
||||||
Puppet::Face[:yardoc, :current].yardoc
|
Puppet::Face[:strings, :current].yardoc
|
||||||
|
|
||||||
expect(read_html(tmp, 'test', 'test.html')).to have_tag('.docstring .discussion', :text => /This class/)
|
expect(read_html(tmp, 'test', 'test.html')).to have_tag('.docstring .discussion', :text => /This class/)
|
||||||
end
|
end
|
||||||
|
@ -49,9 +49,9 @@ describe Puppet::Face do
|
||||||
using_module('test') do |tmp|
|
using_module('test') do |tmp|
|
||||||
Dir.chdir('test')
|
Dir.chdir('test')
|
||||||
|
|
||||||
Puppet::Face[:yardoc, :current].yardoc
|
Puppet::Face[:strings, :current].yardoc
|
||||||
|
|
||||||
expect(read_html(tmp, 'test', 'ParserFunctions.html')).to have_tag('.docstring .discussion', :text => /documentation for `function3x`/)
|
expect(read_html(tmp, 'test', 'Puppet3xFunctions.html')).to have_tag('.docstring .discussion', :text => /documentation for `function3x`/)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ describe Puppet::Face do
|
||||||
using_module('test') do |tmp|
|
using_module('test') do |tmp|
|
||||||
Dir.chdir('test')
|
Dir.chdir('test')
|
||||||
|
|
||||||
Puppet::Face[:yardoc, :current].yardoc
|
Puppet::Face[:strings, :current].yardoc
|
||||||
|
|
||||||
expect(read_html(tmp, 'test', 'test.html')).to have_tag('.docstring .discussion', :text => /This class/)
|
expect(read_html(tmp, 'test', 'test.html')).to have_tag('.docstring .discussion', :text => /This class/)
|
||||||
end
|
end
|
||||||
|
@ -70,32 +70,32 @@ describe Puppet::Face do
|
||||||
describe "modules action" do
|
describe "modules action" do
|
||||||
it "should raise an error if yard is absent" do
|
it "should raise an error if yard is absent" do
|
||||||
Puppet.features.stubs(:yard?).returns(false)
|
Puppet.features.stubs(:yard?).returns(false)
|
||||||
expect{Puppet::Face[:yardoc, :current].modules}.to raise_error(RuntimeError, "The 'yard' gem must be installed in order to use this face.")
|
expect{Puppet::Face[:strings, :current].modules}.to raise_error(RuntimeError, "The 'yard' gem must be installed in order to use this face.")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should raise an error if rgen is absent" do
|
it "should raise an error if rgen is absent" do
|
||||||
Puppet.features.stubs(:rgen?).returns(false)
|
Puppet.features.stubs(:rgen?).returns(false)
|
||||||
expect{Puppet::Face[:yardoc, :current].modules}.to raise_error(RuntimeError, "The 'rgen' gem must be installed in order to use this face.")
|
expect{Puppet::Face[:strings, :current].modules}.to raise_error(RuntimeError, "The 'rgen' gem must be installed in order to use this face.")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should raise an error if the Ruby version is less than 1.9", :if => RUBY_VERSION.match(/^1\.8/) do
|
it "should raise an error if the Ruby version is less than 1.9", :if => RUBY_VERSION.match(/^1\.8/) do
|
||||||
expect{Puppet::Face[:yardoc, :current].modules}.to raise_error(RuntimeError, "This face requires Ruby 1.9 or greater.")
|
expect{Puppet::Face[:strings, :current].modules}.to raise_error(RuntimeError, "This face requires Ruby 1.9 or greater.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "server action" do
|
describe "server action" do
|
||||||
it "should raise an error if yard is absent" do
|
it "should raise an error if yard is absent" do
|
||||||
Puppet.features.stubs(:yard?).returns(false)
|
Puppet.features.stubs(:yard?).returns(false)
|
||||||
expect{Puppet::Face[:yardoc, :current].server}.to raise_error(RuntimeError, "The 'yard' gem must be installed in order to use this face.")
|
expect{Puppet::Face[:strings, :current].server}.to raise_error(RuntimeError, "The 'yard' gem must be installed in order to use this face.")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should raise an error if rgen is absent" do
|
it "should raise an error if rgen is absent" do
|
||||||
Puppet.features.stubs(:rgen?).returns(false)
|
Puppet.features.stubs(:rgen?).returns(false)
|
||||||
expect{Puppet::Face[:yardoc, :current].server}.to raise_error(RuntimeError, "The 'rgen' gem must be installed in order to use this face.")
|
expect{Puppet::Face[:strings, :current].server}.to raise_error(RuntimeError, "The 'rgen' gem must be installed in order to use this face.")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should raise an error if the Ruby version is less than 1.9", :if => RUBY_VERSION.match(/^1\.8/) do
|
it "should raise an error if the Ruby version is less than 1.9", :if => RUBY_VERSION.match(/^1\.8/) do
|
||||||
expect{Puppet::Face[:yardoc, :current].server}.to raise_error(RuntimeError, "This face requires Ruby 1.9 or greater.")
|
expect{Puppet::Face[:strings, :current].server}.to raise_error(RuntimeError, "This face requires Ruby 1.9 or greater.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'puppetx/yardoc/pops/yard_statement'
|
require 'puppetx/puppetlabs/strings/pops/yard_statement'
|
||||||
|
|
||||||
describe Puppetx::Yardoc::Pops do
|
describe Puppetx::PuppetLabs::Strings::Pops do
|
||||||
let(:parser) {Puppet::Pops::Parser::Parser.new()}
|
let(:parser) {Puppet::Pops::Parser::Parser.new()}
|
||||||
|
|
||||||
describe "YARDstatement class" do
|
describe "YARDstatement class" do
|
||||||
let(:manifest) {"#hello world\nclass foo { }"}
|
let(:manifest) {"#hello world\nclass foo { }"}
|
||||||
let(:model) {parser.parse_string(manifest).current.definitions.first}
|
let(:model) {parser.parse_string(manifest).current.definitions.first}
|
||||||
let(:test_statement) {Puppetx::Yardoc::Pops::YARDStatement.new(model)}
|
let(:test_statement) {Puppetx::PuppetLabs::Strings::Pops::YARDStatement.new(model)}
|
||||||
|
|
||||||
describe "when creating a new instance of YARDStatement" do
|
describe "when creating a new instance of YARDStatement" do
|
||||||
it "should extract comments from the source code" do
|
it "should extract comments from the source code" do
|
||||||
|
@ -19,13 +19,13 @@ describe Puppetx::Yardoc::Pops do
|
||||||
describe "YARDTransfomer class" do
|
describe "YARDTransfomer class" do
|
||||||
let(:manifest) {"#hello world\nclass foo($bar) { }"}
|
let(:manifest) {"#hello world\nclass foo($bar) { }"}
|
||||||
let(:manifest_default) {"#hello world\nclass foo($bar = 3) { }"}
|
let(:manifest_default) {"#hello world\nclass foo($bar = 3) { }"}
|
||||||
let(:transformer) {Puppetx::Yardoc::Pops::YARDTransformer.new}
|
let(:transformer) {Puppetx::PuppetLabs::Strings::Pops::YARDTransformer.new}
|
||||||
|
|
||||||
describe "transform method" do
|
describe "transform method" do
|
||||||
it "should perform the correct transformation with parameter defaults" do
|
it "should perform the correct transformation with parameter defaults" do
|
||||||
model = parser.parse_string(manifest_default).current.definitions.first
|
model = parser.parse_string(manifest_default).current.definitions.first
|
||||||
statements = transformer.transform(model)
|
statements = transformer.transform(model)
|
||||||
expect(statements.parameters[0][0].class).to be(Puppetx::Yardoc::Pops::YARDStatement)
|
expect(statements.parameters[0][0].class).to be(Puppetx::PuppetLabs::Strings::Pops::YARDStatement)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should perform the correct transofmration without parameter defaults" do
|
it "should perform the correct transofmration without parameter defaults" do
|
|
@ -1,5 +1,5 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'puppetx/yardoc/yard/handlers/defined_type_handler'
|
require 'puppetx/puppetlabs/strings/yard/handlers/defined_type_handler'
|
||||||
require 'strings_spec/parsing'
|
require 'strings_spec/parsing'
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'puppetx/yardoc/yard/handlers/future_parser_function_handler'
|
require 'puppetx/puppetlabs/strings/yard/handlers/puppet_4x_function_handler'
|
||||||
require 'strings_spec/parsing'
|
require 'strings_spec/parsing'
|
||||||
|
|
||||||
describe "FutureParserDispatchHandler" do
|
describe "Pupet4xFunctionHandler" do
|
||||||
include StringsSpec::Parsing
|
include StringsSpec::Parsing
|
||||||
|
|
||||||
def the_method()
|
def the_method()
|
||||||
Registry.at("FutureParserFunctions#the_function")
|
Registry.at("Puppet4xFunctions#the_function")
|
||||||
end
|
end
|
||||||
|
|
||||||
def the_namespace()
|
def the_namespace()
|
||||||
Registry.at("FutureParserFunctions")
|
Registry.at("Puppet4xFunctions")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should parse single-line documentation strings before a given function" do
|
it "should parse single-line documentation strings before a given function" do
|
|
@ -1,5 +1,5 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'puppetx/yardoc/yard/handlers/host_class_handler'
|
require 'puppetx/puppetlabs/strings/yard/handlers/host_class_handler'
|
||||||
require 'strings_spec/parsing'
|
require 'strings_spec/parsing'
|
||||||
|
|
||||||
describe "HostClassDefintion" do
|
describe "HostClassDefintion" do
|
|
@ -1,16 +1,16 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
require 'puppetx/yardoc/yard/handlers/parser_function_handler'
|
require 'puppetx/puppetlabs/strings/yard/handlers/puppet_3x_function_handler'
|
||||||
require 'strings_spec/parsing'
|
require 'strings_spec/parsing'
|
||||||
|
|
||||||
describe "ParserFunctionHanlder" do
|
describe "Puppet3xFunctionHanlder" do
|
||||||
include StringsSpec::Parsing
|
include StringsSpec::Parsing
|
||||||
|
|
||||||
def the_method()
|
def the_method()
|
||||||
Registry.at("ParserFunctions#the_function")
|
Registry.at("Puppet3xFunctions#the_function")
|
||||||
end
|
end
|
||||||
|
|
||||||
def the_namespace()
|
def the_namespace()
|
||||||
Registry.at("ParserFunctions")
|
Registry.at("Puppet3xFunctions")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should parse single-line documentation strings before a given function" do
|
it "should parse single-line documentation strings before a given function" do
|
Loading…
Reference in New Issue