Class: SanUltari::Config
- Inherits:
-
Object
- Object
- SanUltari::Config
- Defined in:
- lib/sanultari/config.rb,
lib/sanultari/config/store.rb
Overview
Direct Known Subclasses
Defined Under Namespace
Classes: Store
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#path ⇒ Object
Returns the value of attribute path.
-
#store ⇒ Object
Returns the value of attribute store.
Instance Method Summary collapse
-
#from_hash(hash) ⇒ Object
Config 객체를 Ruby Hash로부터 생성한다.
-
#init!(path = nil, default = nil) ⇒ Object
Config 객체 초기화.
-
#initialize(name = nil) ⇒ Config
constructor
생성자.
-
#make_path(path = nil) ⇒ Object
현재 패스로부터 적절한 YAML 파일 경로를 만들어낸다.
-
#method_missing(method_name, *args, &block) ⇒ Object
존재하지 않는 메소드 처리를 위한 핸들러.
-
#save(path = nil) ⇒ Object
Config 객체를 지정된 위치에 YAML 포맷으로 덤프한다.
-
#to_hash ⇒ SanUltari::Config
현재 Config 객체를 Ruby Hash로 변환한다.
Constructor Details
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
존재하지 않는 메소드 처리를 위한 핸들러
104 105 106 |
# File 'lib/sanultari/config.rb', line 104 def method_missing(method_name, *args, &block) @store.public_send method_name, *args, &block end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
9 10 11 |
# File 'lib/sanultari/config.rb', line 9 def name @name end |
#path ⇒ Object
Returns the value of attribute path.
9 10 11 |
# File 'lib/sanultari/config.rb', line 9 def path @path end |
#store ⇒ Object
Returns the value of attribute store.
9 10 11 |
# File 'lib/sanultari/config.rb', line 9 def store @store end |
Instance Method Details
#from_hash(hash) ⇒ Object
Config 객체를 Ruby Hash로부터 생성한다.
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/sanultari/config.rb', line 63 def from_hash hash raise Exception.new unless hash.instance_of?(Hash) hash.each_pair do |key, value| t_value = value if value.instance_of? Hash t_value = Config.new key t_value.from_hash value end @store.send("#{key}=".to_sym, t_value) end end |
#init!(path = nil, default = nil) ⇒ Object
Config 객체 초기화
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/sanultari/config.rb', line 24 def init! path = nil, default = nil @default = default unless default == nil load_defaults if default_available? return nil if path == nil if @name == nil @name = File.basename path, '.yml' @path = File. File.dirname(path), @path end if File.exist? path abs_path = make_path config_hash = YAML.load_file(abs_path) from_hash(config_hash) end ensure self.save path unless path == nil end |
#make_path(path = nil) ⇒ Object
현재 패스로부터 적절한 YAML 파일 경로를 만들어낸다.
94 95 96 97 98 99 100 101 |
# File 'lib/sanultari/config.rb', line 94 def make_path path = nil return File. "#{@name}.yml", @path if path == nil if path.start_with?('/', '\\') return path else return File.(path, @path) end end |
#save(path = nil) ⇒ Object
Config 객체를 지정된 위치에 YAML 포맷으로 덤프한다.
50 51 52 53 54 55 56 57 |
# File 'lib/sanultari/config.rb', line 50 def save path = nil @name = 'config' if @name == nil path = make_path if path == nil File.open(make_path(path), 'w') do |f| YAML.dump(to_hash, f) end end |
#to_hash ⇒ SanUltari::Config
현재 Config 객체를 Ruby Hash로 변환한다.
81 82 83 84 85 86 87 88 89 |
# File 'lib/sanultari/config.rb', line 81 def to_hash hash = {} @store.keys.each do |key| value = @store.send key.to_sym value = value.to_hash if value.instance_of? SanUltari::Config hash[key] = value end hash end |