Class: ConfigureMe::Base
- Inherits:
-
Object
show all
- Extended by:
- ActiveModel::Callbacks, ActiveModel::Naming, Loading
- Includes:
- ActiveModel::AttributeMethods, ActiveModel::Conversion, ActiveModel::Dirty, ActiveModel::Validations, AttributeMethods, Caching, Identity, Naming, Nesting, Persistence, Persisting, Validations, Singleton
- Defined in:
- lib/configure_me.rb,
lib/configure_me/base.rb,
lib/configure_me/naming.rb,
lib/configure_me/caching.rb,
lib/configure_me/nesting.rb,
lib/configure_me/persisting.rb,
lib/configure_me/persistence.rb,
lib/configure_me/validations.rb,
lib/configure_me/attribute_methods.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Loading
from_hash, load
Methods included from Persisting
#persist_guard, #read_persist, #write_persist
#update_attributes
Methods included from Nesting
#all_configs, #children, #nest, #parent_config, #parent_config=
Methods included from Identity
#config_key, #config_name, #storage_key
Methods included from Caching
#read_cache, #write_cache
#read_attribute, #write_attribute
Class Method Details
.cache_me ⇒ Object
4
5
6
|
# File 'lib/configure_me/caching.rb', line 4
def cache_me
@caching = true
end
|
.caching? ⇒ Boolean
8
9
10
11
|
# File 'lib/configure_me/caching.rb', line 8
def caching?
@caching ||= false
@caching && !ConfigureMe.cache_object.nil?
end
|
.class_settings ⇒ Object
13
14
15
|
# File 'lib/configure_me/attribute_methods.rb', line 13
def class_settings
@class_settings ||= {}
end
|
.define_attribute_methods(force = false) ⇒ Object
17
18
19
20
21
|
# File 'lib/configure_me/attribute_methods.rb', line 17
def define_attribute_methods(force = false)
return if class_settings.empty?
undefine_attribute_methods if force
super(class_settings.keys)
end
|
.find_by_id(id) ⇒ Object
66
67
68
69
70
71
72
73
|
# File 'lib/configure_me/base.rb', line 66
def find_by_id(id)
configs.each do |config|
if config.config_key.eql?(id)
return config.instance
end
end
nil
end
|
.inherited(subclass) ⇒ Object
41
42
43
44
|
# File 'lib/configure_me/base.rb', line 41
def inherited(subclass)
super
configs << subclass
end
|
.method_missing(method_sym, *args) ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/configure_me/base.rb', line 46
def method_missing(method_sym, *args)
if instance.respond_to?(method_sym)
instance.send(method_sym, *args)
else
super
end
end
|
.model_name ⇒ Object
6
7
8
9
10
11
12
|
# File 'lib/configure_me/naming.rb', line 6
def model_name
if persisting?
ConfigureMe.persistence_klass.model_name
else
super
end
end
|
.nest_me(klass, name = nil) ⇒ Object
4
5
6
|
# File 'lib/configure_me/nesting.rb', line 4
def nest_me(klass, name = nil)
klass.instance.nest(self)
end
|
.persist_me ⇒ Object
4
5
6
|
# File 'lib/configure_me/persisting.rb', line 4
def persist_me
@persisting = true
end
|
.persisting? ⇒ Boolean
8
9
10
11
|
# File 'lib/configure_me/persisting.rb', line 8
def persisting?
@persisting ||= false
@persisting && !ConfigureMe.persistence_klass.nil?
end
|
.respond_to?(method_sym, include_private = false) ⇒ Boolean
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/configure_me/base.rb', line 54
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
|
.setting(name, *args) ⇒ Object
8
9
10
11
|
# File 'lib/configure_me/attribute_methods.rb', line 8
def setting(name, *args)
class_settings[name.to_sym] = Setting.new(name.to_sym, *args)
define_attribute_methods(true)
end
|
Instance Method Details
#persisted? ⇒ Boolean
18
19
20
|
# File 'lib/configure_me/base.rb', line 18
def persisted?
true
end
|
#save(options = {}) ⇒ Object
8
9
10
11
12
|
# File 'lib/configure_me/validations.rb', line 8
def save(options={})
run_callbacks :validation do
perform_validations(options) ? super : false
end
end
|
#to_key ⇒ Object
22
23
24
25
26
27
28
29
30
|
# File 'lib/configure_me/base.rb', line 22
def to_key
if persisted?
key = parent_config.nil? ? [] : parent_config.to_key
key << self.config_name
key
else
nil
end
end
|
#to_param ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/configure_me/base.rb', line 32
def to_param
if persisted?
to_key.join('-')
else
nil
end
end
|
#valid?(context = nil) ⇒ Boolean
14
15
16
17
18
|
# File 'lib/configure_me/validations.rb', line 14
def valid?(context = nil)
context ||= (persisted? ? :update : :create)
output = super(context)
errors.empty? && output
end
|