Class: Termtter::Config
- Inherits:
-
Object
- Object
- Termtter::Config
- Defined in:
- lib/termtter/config.rb
Instance Method Summary collapse
-
#__assign__(name, value) ⇒ Object
- __assign__
-
Symbol -> a -> IO ().
-
#__refer__(name) ⇒ Object
- __refer__
-
Symbol -> IO a.
- #__values__ ⇒ Object
-
#empty? ⇒ Boolean
- empty?
-
Boolean.
-
#initialize ⇒ Config
constructor
A new instance of Config.
- #inspect ⇒ Object
- #method_missing(name, *args) ⇒ Object
-
#set_default(name, value) ⇒ Object
- set_default
-
(Symbol | String) -> a -> IO ().
Constructor Details
#initialize ⇒ Config
Returns a new instance of Config.
5 6 7 |
# File 'lib/termtter/config.rb', line 5 def initialize @store = Hash.new(:undefined) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/termtter/config.rb', line 31 def method_missing(name, *args) case name.to_s when /(.*)=$/ __assign__($1.to_sym, args.first) else __refer__(name.to_sym) end end |
Instance Method Details
#__assign__(name, value) ⇒ Object
- __assign__
-
Symbol -> a -> IO ()
41 42 43 |
# File 'lib/termtter/config.rb', line 41 def __assign__(name, value) @store[name] = value end |
#__refer__(name) ⇒ Object
- __refer__
-
Symbol -> IO a
46 47 48 |
# File 'lib/termtter/config.rb', line 46 def __refer__(name) @store[name] == :undefined ? @store[name] = Termtter::Config.new : @store[name] end |
#__values__ ⇒ Object
50 51 52 |
# File 'lib/termtter/config.rb', line 50 def __values__ @store.dup end |
#empty? ⇒ Boolean
- empty?
-
Boolean
27 28 29 |
# File 'lib/termtter/config.rb', line 27 def empty? @store.empty? end |
#inspect ⇒ Object
9 10 11 |
# File 'lib/termtter/config.rb', line 9 def inspect @store.inspect end |
#set_default(name, value) ⇒ Object
- set_default
-
(Symbol | String) -> a -> IO ()
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/termtter/config.rb', line 14 def set_default(name, value) match_p, init, last = *name.to_s.match(/^(.+)\.([^\.]+)$/) if match_p tmp = eval(init) if tmp.__refer__(last.to_sym).empty? tmp.__assign__(last.to_sym, value) end else __assign__(name.to_sym, value) if __refer__(name.to_sym).empty? end end |