Sha256: 194ed29b520ed0d93467ee8381f61b53d775fcf3e60a158e4cdb2b462da0ef9f
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
module ConfigureMe class Base extend ActiveModel::Callbacks include AttributeMethods include Caching include Identity include Naming include Nesting include Persistence include Persisting include Validations extend Loading include ActiveModel::Conversion def persisted? true end def to_key if persisted? key = parent_config.nil? ? [] : parent_config.to_key key << self.config_name key else nil end end def to_param if persisted? to_key.join('-') else nil end end class << self def inherited(subclass) super configs << subclass end def method_missing(method_sym, *args) if instance.respond_to?(method_sym) instance.send(method_sym, *args) else super end end def respond_to?(method_sym, include_private = false) instance.children.each_pair do |name, instance| if name.to_s.eql?(method_sym.to_s) return true end end if class_settings.key?(method_sym) return true end super end def find_by_id(id) configs.each do |config| if config.config_key.eql?(id) return config.instance end end nil end private def configs @configs ||= [] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
configure_me-0.5.0 | lib/configure_me/base.rb |
configure_me-0.4.1 | lib/configure_me/base.rb |
configure_me-0.4.0 | lib/configure_me/base.rb |