module IniParse::Lines::Line

A base class from which other line types should inherit.

Public Class Methods

new(opts = {}) click to toggle source

Parameters

opts<Hash>

Extra options for the line.

# File lib/iniparse/lines.rb, line 8
def initialize(opts = {})
  @comment        = opts.fetch(:comment, nil)
  @comment_sep    = opts.fetch(:comment_sep, ';')
  @comment_prefix = opts.fetch(:comment_prefix, ' ')
  @comment_offset = opts.fetch(:comment_offset, 0)
  @indent         = opts.fetch(:indent, '')
  @option_sep     = opts.fetch(:option_sep, nil)
end

Public Instance Methods

blank?() click to toggle source

Returns whether this is a line which has no data.

# File lib/iniparse/lines.rb, line 47
def blank?
  false
end
comment() click to toggle source

Returns the inline comment for this line. Includes the comment separator at the beginning of the string.

# File lib/iniparse/lines.rb, line 42
def comment
  "#{ @comment_sep }#{ @comment_prefix }#{ @comment }"
end
has_comment?() click to toggle source

Returns if this line has an inline comment.

# File lib/iniparse/lines.rb, line 18
def has_comment?
  not @comment.nil?
end
line_contents() click to toggle source

Returns the contents for this line.

# File lib/iniparse/lines.rb, line 36
def line_contents
  ''
end
options() click to toggle source

Returns the options used to create the line

# File lib/iniparse/lines.rb, line 52
def options
  {
    comment: @comment,
    comment_sep: @comment_sep,
    comment_prefix: @comment_prefix,
    comment_offset: @comment_offset,
    indent: @indent,
    option_sep: @option_sep
  }
end
to_ini() click to toggle source

Returns this line as a string as it would be represented in an INI document.

# File lib/iniparse/lines.rb, line 24
def to_ini
  [*line_contents].map { |ini|
      if has_comment?
        ini += ' ' if ini =~ /\S/ # not blank
        ini  = ini.ljust(@comment_offset)
        ini += comment
      end
      @indent + ini
    }.join "\n"
end