class PuppetClass

Public Class Methods

new(tokens, index) click to toggle source
# File lib/model/puppet_class.rb, line 5
def initialize(tokens, index)
  @tokens, @index = tokens, index
end

Public Instance Methods

documentation_list() click to toggle source
# File lib/model/puppet_class.rb, line 26
def documentation_list
  @documentation_list ||= DocumentationList.new(documentation_tokens, @tokens.index(documentation_tokens.first), @tokens.index(documentation_tokens.last))
end
has_parameter_documentation?() click to toggle source
# File lib/model/puppet_class.rb, line 15
def has_parameter_documentation?
  !parameter_documentation_list.empty?
end
name() click to toggle source
# File lib/model/puppet_class.rb, line 9
def name
  @name ||= @index[:tokens].select do |token|
    token.type == :NAME
  end.first.value
end
parameter_documentation_end_index() click to toggle source
# File lib/model/puppet_class.rb, line 54
def parameter_documentation_end_index
  @tokens.index(parameter_documentation_list.last.tokens.last) + 1
end
parameter_documentation_list() click to toggle source
# File lib/model/puppet_class.rb, line 30
def parameter_documentation_list
  documentation_list.parameter_documentation_list
end
parameter_documentation_start_index() click to toggle source
# File lib/model/puppet_class.rb, line 50
def parameter_documentation_start_index
  @tokens.index(parameter_documentation_list.first.tokens.first)
end
parameter_list() click to toggle source
# File lib/model/puppet_class.rb, line 19
def parameter_list
  param_tokens = @index[:param_tokens]
  return if param_tokens.nil?

  @parameter_list ||= ParameterList.new(param_tokens, @tokens.index(param_tokens.first), @tokens.index(param_tokens.last))
end
sorted_parameter_documentation_list() click to toggle source
# File lib/model/puppet_class.rb, line 34
def sorted_parameter_documentation_list
  sorted_parameter_list.inject([]) do |memo, parameter|
    documentation = parameter_documentation_list.select do |parameter_documentation|
      parameter_documentation.name == parameter.name
    end.first

    memo << documentation if documentation

    memo
  end
end
sorted_parameter_list() click to toggle source
# File lib/model/puppet_class.rb, line 46
def sorted_parameter_list
  parameter_list.sort
end

Private Instance Methods

documentation_tokens() click to toggle source
# File lib/model/puppet_class.rb, line 59
def documentation_tokens
  return @doc_tokens unless @doc_tokens.nil? || @doc_tokens.empty?

  @doc_tokens = []
  prev_token = @index[:tokens].first.prev_token
  while (prev_token && prev_token.type != :RBRACE)
    @doc_tokens << prev_token

    prev_token = prev_token.prev_token
  end

  @doc_tokens.reverse!
  return @doc_tokens
end