Class: SanUltari::Config::Store
- Inherits:
-
Object
- Object
- SanUltari::Config::Store
- Defined in:
- lib/sanultari/config/store.rb
Overview
SanUltari::Config의 설정값들을 실제로 저장하기 위한 객체 method 기반으로 동작하므로, method 이름을 격리하기 위하여 상속받은 동적 타입을 생성하여 사용한다.
Instance Method Summary collapse
-
#[](name) ⇒ Object
기본 인덱서.
-
#[]=(name, value) ⇒ Object
기본 인덱서 세터.
-
#keys ⇒ Object
현재 저장되어 있는 설정의 Key값 컬렉션을 반환한다.
-
#method_missing(method_name, *args, &block) ⇒ Object
설정값에 대해서 Getter와 Setter를 동적으로 생성하기 위한 Handler.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
설정값에 대해서 Getter와 Setter를 동적으로 생성하기 위한 Handler.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/sanultari/config/store.rb', line 37 def method_missing(method_name, *args, &block) name = method_name.to_s name.chomp!('=') self.class.instance_eval do define_method(name.to_sym) do |&blk| blk.call self[name] if blk != nil self[name] end if not public_methods.include? name.to_sym define_method("#{name}=".to_sym) do |value| self[name] = value end end send method_name, *args, &block end |
Instance Method Details
#[](name) ⇒ Object
기본 인덱서
13 14 15 16 17 18 |
# File 'lib/sanultari/config/store.rb', line 13 def [] name @values ||= {} @values[name] = SanUltari::Config.new name if @values[name] == nil @values[name] end |
#[]=(name, value) ⇒ Object
기본 인덱서 세터
24 25 26 27 28 |
# File 'lib/sanultari/config/store.rb', line 24 def []= name, value @values ||= {} @values[name] = value end |
#keys ⇒ Object
현재 저장되어 있는 설정의 Key값 컬렉션을 반환한다.
31 32 33 34 |
# File 'lib/sanultari/config/store.rb', line 31 def keys return [] if @values == nil @values.keys end |