class KnifeCookbookDoc::DefinitionsModel

Attributes

name[R]

Public Class Methods

new(name, filename) click to toggle source
# File lib/knife_cookbook_doc/definitions_model.rb, line 6
def initialize(name, filename)
  @name = name
  @filename = filename
  load_descriptions
end

Public Instance Methods

params() click to toggle source
# File lib/knife_cookbook_doc/definitions_model.rb, line 12
def params
  @params ||= {}
end

Private Instance Methods

load_descriptions() click to toggle source
# File lib/knife_cookbook_doc/definitions_model.rb, line 18
def load_descriptions
  description = extract_description
  current_section = 'main'
  description.each_line do |line|
    if /^ *\@param *([^ ]*) (.*)$/ =~ line
      params[$1] = {}
      params[$1]['descr'] = $2.strip
    elsif /^ *\@section (.*)$/ =~ line
      current_section = $1.strip
    else
      lines = (top_level_descriptions[current_section] || [])
      lines << line.gsub("\n", '')
      top_level_descriptions[current_section] = lines
    end
  end
  load_properties
end
load_properties() click to toggle source
# File lib/knife_cookbook_doc/definitions_model.rb, line 36
def load_properties
  code = IO.read(@filename)
  code.gsub(/^ *define (.*?) (?=do)/m) do
    all = $1.split(' ', 2)
    @name = all.shift.gsub(/:|,/, '')
    next if all.empty?
    all = eval("{#{all.last}}") rescue {}
    all.each do |k, v|
      p_name = k.to_s
      params[p_name] ||= {}
      params[p_name]['default'] = v.nil? ? 'nil' : v
    end
  end
end