Class: SimpleConfig

Inherits:
Object
  • Object
show all
Includes:
Inspec::Utils::CommentParser
Defined in:
lib/inspec/utils/simpleconfig.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Inspec::Utils::CommentParser

#parse_comment_line

Constructor Details

#initialize(raw_data, opts = {}) ⇒ SimpleConfig

Returns a new instance of SimpleConfig.



10
11
12
# File 'lib/inspec/utils/simpleconfig.rb', line 10

def initialize(raw_data, opts = {})
  parse(raw_data, opts)
end

Instance Attribute Details

#groupsObject (readonly)

Returns the value of attribute groups.



9
10
11
# File 'lib/inspec/utils/simpleconfig.rb', line 9

def groups
  @groups
end

#paramsObject (readonly)

Returns the value of attribute params.



9
10
11
# File 'lib/inspec/utils/simpleconfig.rb', line 9

def params
  @params
end

Instance Method Details

#parse(raw_data, opts = nil) ⇒ Object

Parse some data quotes: quoting characters, which are parsed, so everything inside it will be part of a string multiline: allow quoted text to span multiple lines comment_char: char which identifies comments standalone_comments: comments must appear alone in a line; if set to true, no comments can be added to the end of an assignment/statement line



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/inspec/utils/simpleconfig.rb', line 21

def parse(raw_data, opts = nil)
  @params = {}
  @groups = []
  @vals = @params
  options = default_options.merge(opts || {})
  return if raw_data.nil?

  # prepare raw data if required
  unless options[:line_separator].nil?
    raw_data = raw_data.tr(options[:line_separator], "\n")
  end
  rest = raw_data
  rest = parse_rest(rest, options) until rest.empty?
end