Module: Tamashii::Configurable

Included in:
Tamashii::Config::Shared
Defined in:
lib/tamashii/configurable.rb

Overview

Make class can be configure

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



23
24
25
# File 'lib/tamashii/configurable.rb', line 23

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#[](attr_name) ⇒ Object



27
28
29
30
31
32
# File 'lib/tamashii/configurable.rb', line 27

def [](attr_name)
  return unless self.class.config?(attr_name)
  attr_name = attr_name.to_sym
  container[attr_name]&.value ||
    self.class.configs[attr_name]&.default
end

#[]=(attr_name, value) ⇒ Object



34
35
36
37
38
# File 'lib/tamashii/configurable.rb', line 34

def []=(attr_name, value)
  return unless self.class.config?(attr_name)
  container[attr_name.to_sym] =
    self.class.configs[attr_name.to_sym].build(value)
end