Class: RJGit::Configuration
- Inherits:
-
Object
- Object
- RJGit::Configuration
- Defined in:
- lib/config.rb
Overview
Wraps ‘org.eclipse.jgit.lib.Config’
Instance Attribute Summary collapse
-
#jconfig ⇒ Object
readonly
Returns the value of attribute jconfig.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #add_setting(name, value, section, subsection = "") ⇒ Object
- #build_settings_hash(section, subsection) ⇒ Object
-
#initialize(path) ⇒ Configuration
constructor
A new instance of Configuration.
- #is_bool?(str) ⇒ Boolean
- #is_num?(str) ⇒ Boolean
- #load ⇒ Object
- #loaded? ⇒ Boolean
- #names(section, subsection) ⇒ Object
- #sections ⇒ Object
- #subsections(section) ⇒ Object
- #to_boolean(str) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(path) ⇒ Configuration
Returns a new instance of Configuration.
11 12 13 14 |
# File 'lib/config.rb', line 11 def initialize(path) @path = path @jconfig = org.eclipse.jgit.lib.Config.new end |
Instance Attribute Details
#jconfig ⇒ Object (readonly)
Returns the value of attribute jconfig.
7 8 9 |
# File 'lib/config.rb', line 7 def jconfig @jconfig end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
7 8 9 |
# File 'lib/config.rb', line 7 def path @path end |
Instance Method Details
#[](key) ⇒ Object
28 29 30 31 |
# File 'lib/config.rb', line 28 def [](key) section, subsection = key.split build_settings_hash(section, subsection) end |
#add_setting(name, value, section, subsection = "") ⇒ Object
81 82 83 84 85 86 87 88 89 |
# 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) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# 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) ⇒ Boolean
56 57 58 59 |
# File 'lib/config.rb', line 56 def is_bool?(str) str = str.strip str == 'true' || str == 'false' end |
#is_num?(str) ⇒ Boolean
48 49 50 51 52 53 54 |
# File 'lib/config.rb', line 48 def is_num?(str) begin !!Integer(str) rescue ArgumentError, TypeError false end end |
#load ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# 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.) end return self end |
#loaded? ⇒ Boolean
65 66 67 |
# File 'lib/config.rb', line 65 def loaded? @loaded end |
#names(section, subsection) ⇒ Object
91 92 93 |
# File 'lib/config.rb', line 91 def names(section, subsection) @jconfig.get_names(section, subsection).to_array end |
#sections ⇒ Object
69 70 71 |
# File 'lib/config.rb', line 69 def sections @jconfig.get_sections.to_array end |
#subsections(section) ⇒ Object
73 74 75 |
# File 'lib/config.rb', line 73 def subsections(section) @jconfig.get_subsections(section).to_array end |
#to_boolean(str) ⇒ Object
61 62 63 |
# File 'lib/config.rb', line 61 def to_boolean(str) str == "true" end |
#to_s ⇒ Object
77 78 79 |
# File 'lib/config.rb', line 77 def to_s @jconfig.to_text end |