Module: TinySupport::Configable::ClassMethods
- Defined in:
- app/ables/tiny_support/configable.rb
Instance Method Summary collapse
-
#tiny_support_config(field_name, configs = []) ⇒ Object
field_name: 字段名称 configs: 请传入一个数组.
Instance Method Details
#tiny_support_config(field_name, configs = []) ⇒ Object
field_name: 字段名称 configs: 请传入一个数组
会生成方法:
- 实例方法: # 以 field_name = status 为例
* status_key
* status_key=
* status_key?(a_key)
类方法:
* status_config
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'app/ables/tiny_support/configable.rb', line 25 def tiny_support_config field_name, configs=[] _class_config_name = :"#{field_name}_config".to_sym cattr_accessor _class_config_name, :instance_reader => false _configs = ::TinyUtil::Config.new(configs) self.class_variable_set("@@#{_class_config_name}", _configs) scope :status_of, ->(key) do where(:status => _configs.find_by_key(_key).value) end define_method :"#{field_name}" do _configs.find_by_value(send(:"#{field_name}_value")) end define_method :"#{field_name}_key" do _configs.find_by_value(send(:"#{field_name}_value")).key end define_method :"#{field_name}_key=" do |_key| send(:"#{field_name}_value=", _configs.find_by_key(_key).value) end define_method :"#{field_name}_key?" do |_key| send(:"#{field_name}_value") == _configs.find_by_key(_key).value end end |