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.
|
||||
|
@ -23,13 +23,13 @@ Usage
|
|||
Documenting a module:
|
||||
|
||||
cd /path/to/module
|
||||
puppet yardoc
|
||||
puppet strings
|
||||
|
||||
This processes `README` and everything in `manifests/**/*.pp`.
|
||||
|
||||
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.
|
||||
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'
|
||||
|
||||
Puppet::Face.define(:yardoc, '0.0.1') do
|
||||
Puppet::Face.define(:strings, '0.0.1') do
|
||||
summary "Generate Puppet documentation with YARD."
|
||||
|
||||
def check_required_features
|
||||
|
@ -54,7 +54,7 @@ Puppet::Face.define(:yardoc, '0.0.1') do
|
|||
yard_args = (args.empty? ? MODULE_SOURCEFILES : args)
|
||||
merge_puppet_args!(yard_args)
|
||||
|
||||
require 'puppetx/yardoc/yard/plugin'
|
||||
require 'puppetx/puppetlabs/strings/yard/plugin'
|
||||
|
||||
# Hand off to YARD for further processing.
|
||||
YARD::CLI::Yardoc.run(*yard_args)
|
||||
|
@ -71,7 +71,7 @@ Puppet::Face.define(:yardoc, '0.0.1') do
|
|||
|
||||
when_invoked do |*args|
|
||||
check_required_features
|
||||
require 'puppetx/yardoc/yard/plugin'
|
||||
require 'puppetx/puppetlabs/strings/yard/plugin'
|
||||
opts = args.pop
|
||||
|
||||
# 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|
|
||||
check_required_features
|
||||
require 'puppetx/yardoc/yard/plugin'
|
||||
require 'puppetx/puppetlabs/strings/yard/plugin'
|
||||
opts = args.pop
|
||||
|
||||
# FIXME: This is pretty inefficient as it forcibly re-generates the YARD
|
||||
# indicies each time the server is started. However, it ensures things are
|
||||
# generated properly.
|
||||
module_list = Puppet::Face[:yardoc, :current].modules
|
||||
module_list = Puppet::Face[:strings, :current].modules
|
||||
|
||||
module_tuples = module_list.map do |mod|
|
||||
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 '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
|
||||
# interface expected by YARD handlers.
|
||||
#
|
|
@ -1,9 +1,9 @@
|
|||
require 'puppet/pops'
|
||||
|
||||
require_relative '../../yardoc'
|
||||
require_relative '../../strings'
|
||||
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
|
||||
# this class is to walk a Pops::Model and output objects that can be consumed
|
||||
# by YARD handlers.
|
|
@ -2,7 +2,7 @@ require 'puppet/pops'
|
|||
|
||||
require_relative 'puppet_namespace_object'
|
||||
|
||||
module Puppetx::Yardoc::YARD::CodeObjects
|
||||
module Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||
class DefinedTypeObject < PuppetNamespaceObject
|
||||
# A list of parameters attached to this class.
|
||||
# @return [Array<Array(String, String)>]
|
|
@ -1,6 +1,6 @@
|
|||
require_relative 'defined_type_object'
|
||||
|
||||
module Puppetx::Yardoc::YARD::CodeObjects
|
||||
module Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||
class HostClassObject < DefinedTypeObject
|
||||
# The {HostClassObject} that this class inherits from, if any.
|
||||
# @return [HostClassObject, Proxy, nil]
|
|
@ -1,8 +1,8 @@
|
|||
require 'yard'
|
||||
|
||||
require_relative '../../../yardoc'
|
||||
require_relative '../../../strings'
|
||||
|
||||
module Puppetx::Yardoc::YARD::CodeObjects
|
||||
module Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||
class PuppetNamespaceObject < YARD::CodeObjects::NamespaceObject
|
||||
# NOTE: `YARD::Registry#resolve` requires a method with this signature to
|
||||
# be present on all subclasses of `NamespaceObject`.
|
|
@ -2,5 +2,5 @@ require_relative 'handlers/base'
|
|||
require_relative 'handlers/defined_type_handler'
|
||||
require_relative 'handlers/host_class_handler'
|
||||
|
||||
require_relative 'handlers/parser_function_handler'
|
||||
require_relative 'handlers/future_parser_function_handler'
|
||||
require_relative 'handlers/puppet_3x_function_handler'
|
||||
require_relative 'handlers/puppet_4x_function_handler'
|
|
@ -1,15 +1,15 @@
|
|||
require 'yard'
|
||||
require 'puppet/pops'
|
||||
|
||||
require_relative '../../../yardoc'
|
||||
require_relative '../../../strings'
|
||||
require_relative '../code_objects'
|
||||
|
||||
module Puppetx::Yardoc::YARD::Handlers
|
||||
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||
class Base < YARD::Handlers::Base
|
||||
# Easy access to Pops model objects for handler matching.
|
||||
include Puppet::Pops::Model
|
||||
# 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)
|
||||
handlers.any? {|h| h == statement.type}
|
|
@ -1,6 +1,6 @@
|
|||
require_relative 'base'
|
||||
|
||||
module Puppetx::Yardoc::YARD::Handlers
|
||||
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||
class DefinedTypeHandler < Base
|
||||
handles ResourceTypeDefinition
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
require_relative 'base'
|
||||
|
||||
module Puppetx::Yardoc::YARD::Handlers
|
||||
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||
class HostClassHandler < Base
|
||||
handles HostClassDefinition
|
||||
|
|
@ -3,9 +3,9 @@ require 'puppet/util/docs'
|
|||
|
||||
require_relative '../code_objects'
|
||||
|
||||
module Puppetx::Yardoc::YARD::Handlers
|
||||
class ParserFunctionHandler < YARD::Handlers::Ruby::Base
|
||||
include Puppetx::Yardoc::YARD::CodeObjects
|
||||
module Puppetx::PuppetLabs::Strings::YARD::Handlers
|
||||
class Puppet3xFunctionHandler < YARD::Handlers::Ruby::Base
|
||||
include Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||
|
||||
handles method_call(:newfunction)
|
||||
|
||||
|
@ -40,11 +40,11 @@ module Puppetx::Yardoc::YARD::Handlers
|
|||
# @return [PuppetNamespaceObject]
|
||||
def function_namespace
|
||||
# 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.
|
||||
obj = P(:root, 'ParserFunctions')
|
||||
obj = P(:root, 'Puppet3xFunctions')
|
||||
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')
|
||||
|
||||
register namespace_obj
|
|
@ -1,16 +1,16 @@
|
|||
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
|
||||
# now, it just treats any docstring as an `@overlaod` tag and attaches the
|
||||
# overload to the parent function.
|
||||
class FutureParserDispatchHandler < YARD::Handlers::Ruby::Base
|
||||
include Puppetx::Yardoc::YARD::CodeObjects
|
||||
class Puppet4xFunctionHandler < YARD::Handlers::Ruby::Base
|
||||
include Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||
|
||||
handles method_call(:dispatch)
|
||||
|
||||
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
|
||||
|
||||
docstring = ::YARD::Docstring.new(statement.docstring, nil)
|
||||
|
@ -21,8 +21,8 @@ module Puppetx::Yardoc::YARD::Handlers
|
|||
end
|
||||
end
|
||||
|
||||
class FutureParserFunctionHandler < YARD::Handlers::Ruby::Base
|
||||
include Puppetx::Yardoc::YARD::CodeObjects
|
||||
class Puppet4xFunctionHandler < YARD::Handlers::Ruby::Base
|
||||
include Puppetx::PuppetLabs::Strings::YARD::CodeObjects
|
||||
|
||||
handles method_call(:create_function)
|
||||
|
||||
|
@ -30,7 +30,7 @@ module Puppetx::Yardoc::YARD::Handlers
|
|||
name = process_parameters
|
||||
|
||||
obj = MethodObject.new(function_namespace, name)
|
||||
obj['future_parser_function'] = true
|
||||
obj['puppet_4x_function'] = true
|
||||
|
||||
register obj
|
||||
|
||||
|
@ -48,11 +48,11 @@ module Puppetx::Yardoc::YARD::Handlers
|
|||
# @return [PuppetNamespaceObject]
|
||||
def function_namespace
|
||||
# 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.
|
||||
obj = P(:root, 'FutureParserFunctions')
|
||||
obj = P(:root, 'Puppet4xFunctions')
|
||||
if obj.is_a? Proxy
|
||||
namespace_obj = PuppetNamespaceObject.new(:root, 'FutureParserFunctions')
|
||||
namespace_obj = PuppetNamespaceObject.new(:root, 'Puppet4xFunctions')
|
||||
|
||||
register namespace_obj
|
||||
# FIXME: The docstring has to be cleared. Otherwise, the namespace
|
|
@ -1,10 +1,10 @@
|
|||
require 'yard'
|
||||
require 'puppet/pops'
|
||||
|
||||
require_relative '../../yardoc'
|
||||
require_relative '../../strings'
|
||||
require_relative '../pops/yard_transformer'
|
||||
|
||||
module Puppetx::Yardoc::YARD
|
||||
module Puppetx::PuppetLabs::Strings::YARD
|
||||
class PuppetParser < YARD::Parser::Base
|
||||
attr_reader :file, :source
|
||||
|
||||
|
@ -13,7 +13,7 @@ module Puppetx::Yardoc::YARD
|
|||
@file = filename
|
||||
|
||||
@parser = Puppet::Pops::Parser::Parser.new()
|
||||
@transformer = Puppetx::Yardoc::Pops::YARDTransformer.new()
|
||||
@transformer = Puppetx::PuppetLabs::Strings::Pops::YARDTransformer.new()
|
||||
end
|
||||
|
||||
def parse
|
|
@ -10,10 +10,10 @@ require_relative 'parser'
|
|||
require_relative 'handlers'
|
||||
|
||||
YARD::Parser::SourceParser.register_parser_type(:puppet,
|
||||
Puppetx::Yardoc::YARD::PuppetParser,
|
||||
Puppetx::PuppetLabs::Strings::YARD::PuppetParser,
|
||||
['pp'])
|
||||
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
|
||||
# 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",
|
||||
"author": "Charlie Sharpsteen",
|
||||
"author": "Puppet Labs",
|
||||
"summary": "Puppet documentation via YARD",
|
||||
"license": "Apache 2.0",
|
||||
"source": "",
|
||||
"source": "https://github.com/puppetlabs/puppetlabs-strings",
|
||||
"project_page": null,
|
||||
"issues_url": null,
|
||||
"requirements": [
|
||||
|
|
|
@ -6,7 +6,7 @@ require 'puppet'
|
|||
require 'rspec'
|
||||
|
||||
# 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
|
||||
|
||||
RSpec.configure do |config|
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
require 'spec_helper'
|
||||
require 'puppet/face/yardoc'
|
||||
require 'puppet/face/strings'
|
||||
require 'rspec-html-matchers'
|
||||
require 'tmpdir'
|
||||
require 'stringio'
|
||||
|
@ -9,26 +9,26 @@ describe Puppet::Face do
|
|||
describe "YARDoc action" do
|
||||
it "should raise an error if yard is absent" do
|
||||
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
|
||||
|
||||
it "should raise an error if rgen is absent" do
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
it "should invoke Yardoc with MODULE_SOURCEFILES if no arguments are provided" do
|
||||
YARD::CLI::Yardoc.expects(:run).with('manifests/**/*.pp', 'lib/**/*.rb')
|
||||
Puppet::Face[:yardoc, :current].yardoc
|
||||
Puppet::Face[:strings, :current].yardoc
|
||||
end
|
||||
|
||||
it "should invoke Yardoc with provided arguments" do
|
||||
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
|
||||
|
||||
describe "when generating HTML for documentation" do
|
||||
|
@ -39,7 +39,7 @@ describe Puppet::Face do
|
|||
using_module('test') do |tmp|
|
||||
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/)
|
||||
end
|
||||
|
@ -49,9 +49,9 @@ describe Puppet::Face do
|
|||
using_module('test') do |tmp|
|
||||
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
|
||||
|
||||
|
@ -59,7 +59,7 @@ describe Puppet::Face do
|
|||
using_module('test') do |tmp|
|
||||
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/)
|
||||
end
|
||||
|
@ -70,32 +70,32 @@ describe Puppet::Face do
|
|||
describe "modules action" do
|
||||
it "should raise an error if yard is absent" do
|
||||
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
|
||||
|
||||
it "should raise an error if rgen is absent" do
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
describe "server action" do
|
||||
it "should raise an error if yard is absent" do
|
||||
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
|
||||
|
||||
it "should raise an error if rgen is absent" do
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
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()}
|
||||
|
||||
describe "YARDstatement class" do
|
||||
let(:manifest) {"#hello world\nclass foo { }"}
|
||||
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
|
||||
it "should extract comments from the source code" do
|
||||
|
@ -19,13 +19,13 @@ describe Puppetx::Yardoc::Pops do
|
|||
describe "YARDTransfomer class" do
|
||||
let(:manifest) {"#hello world\nclass foo($bar) { }"}
|
||||
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
|
||||
it "should perform the correct transformation with parameter defaults" do
|
||||
model = parser.parse_string(manifest_default).current.definitions.first
|
||||
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
|
||||
|
||||
it "should perform the correct transofmration without parameter defaults" do
|
|
@ -1,5 +1,5 @@
|
|||
require 'spec_helper'
|
||||
require 'puppetx/yardoc/yard/handlers/defined_type_handler'
|
||||
require 'puppetx/puppetlabs/strings/yard/handlers/defined_type_handler'
|
||||
require 'strings_spec/parsing'
|
||||
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
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'
|
||||
|
||||
describe "FutureParserDispatchHandler" do
|
||||
describe "Pupet4xFunctionHandler" do
|
||||
include StringsSpec::Parsing
|
||||
|
||||
def the_method()
|
||||
Registry.at("FutureParserFunctions#the_function")
|
||||
Registry.at("Puppet4xFunctions#the_function")
|
||||
end
|
||||
|
||||
def the_namespace()
|
||||
Registry.at("FutureParserFunctions")
|
||||
Registry.at("Puppet4xFunctions")
|
||||
end
|
||||
|
||||
it "should parse single-line documentation strings before a given function" do
|
|
@ -1,5 +1,5 @@
|
|||
require 'spec_helper'
|
||||
require 'puppetx/yardoc/yard/handlers/host_class_handler'
|
||||
require 'puppetx/puppetlabs/strings/yard/handlers/host_class_handler'
|
||||
require 'strings_spec/parsing'
|
||||
|
||||
describe "HostClassDefintion" do
|
|
@ -1,16 +1,16 @@
|
|||
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'
|
||||
|
||||
describe "ParserFunctionHanlder" do
|
||||
describe "Puppet3xFunctionHanlder" do
|
||||
include StringsSpec::Parsing
|
||||
|
||||
def the_method()
|
||||
Registry.at("ParserFunctions#the_function")
|
||||
Registry.at("Puppet3xFunctions#the_function")
|
||||
end
|
||||
|
||||
def the_namespace()
|
||||
Registry.at("ParserFunctions")
|
||||
Registry.at("Puppet3xFunctions")
|
||||
end
|
||||
|
||||
it "should parse single-line documentation strings before a given function" do
|
Loading…
Reference in New Issue