class RJGit::Configuration

Wraps ‘org.eclipse.jgit.lib.Config’

Attributes

jconfig[R]
path[R]

Public Class Methods

new(path) click to toggle source
# File lib/config.rb, line 11
def initialize(path)
  @path = path
  @jconfig = org.eclipse.jgit.lib.Config.new
end

Public Instance Methods

[](key) click to toggle source
# File lib/config.rb, line 28
def [](key)
  section, subsection = key.split
  build_settings_hash(section, subsection)
end
add_setting(name, value, section, subsection = "") click to toggle source
# File lib/config.rb, line 81
def add_setting(name, value, section, subsection = "")
  case value
    when Integer then @jconfig.set_int(section, subsection, name, value)
    when TrueClass then @jconfig.set_boolean(section, subsection, name, value)
    when FalseClass then @jconfig.set_boolean(section, subsection, name, value)
    when String then @jconfig.set_string(section, subsection, name, value)
    else nil
  end
end
build_settings_hash(section, subsection) click to toggle source
# File lib/config.rb, line 33
def build_settings_hash(section, subsection)
  names = names(section, subsection)
  settings = {}
  names.each do |name|
    value = @jconfig.get_string(section, subsection, name)
    if is_num?(value)
      value = value.to_i 
    elsif is_bool?(value)
      value = to_boolean(value)
    end
    settings[name] = value
  end
  settings.empty? ? nil : settings
end
is_bool?(str) click to toggle source
# File lib/config.rb, line 56
def is_bool?(str)
  str = str.strip
  str == 'true' || str == 'false'
end
is_num?(str) click to toggle source
# File lib/config.rb, line 48
def is_num?(str)
  begin
    !!Integer(str)
  rescue ArgumentError, TypeError
    false
  end
end
load() click to toggle source
# File lib/config.rb, line 16
def load
  return self if @loaded
  begin
    @jconfig.from_text(IO.read(@path))
    @loaded = true
  rescue => exception
    @loaded = false
    raise IOException.new(exception.message)
  end
  return self
end
loaded?() click to toggle source
# File lib/config.rb, line 65
def loaded?
  @loaded
end
names(section, subsection) click to toggle source
# File lib/config.rb, line 91
def names(section, subsection)
  @jconfig.get_names(section, subsection).to_array
end
sections() click to toggle source
# File lib/config.rb, line 69
def sections
  @jconfig.get_sections.to_array
end
subsections(section) click to toggle source
# File lib/config.rb, line 73
def subsections(section)
  @jconfig.get_subsections(section).to_array
end
to_boolean(str) click to toggle source
# File lib/config.rb, line 61
def to_boolean(str)
  str == "true"
end
to_s() click to toggle source
# File lib/config.rb, line 77
def to_s
  @jconfig.to_text
end