Class: Fabrik::Database
- Inherits:
-
Object
show all
- Defined in:
- lib/fabrik/database.rb
Instance Method Summary
collapse
Constructor Details
#initialize(&config) ⇒ Database
Returns a new instance of Database.
35
36
37
38
|
# File 'lib/fabrik/database.rb', line 35
def initialize &config
@proxies = {}
instance_eval(&config) unless config.nil?
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, &block) ⇒ Object
27
28
29
|
# File 'lib/fabrik/database.rb', line 27
def method_missing(method_name, *, &block)
@proxies[method_name] || ((klass = class_from(method_name)).nil? ? super : register(klass))
end
|
Instance Method Details
#after_create_for(klass) ⇒ Object
23
|
# File 'lib/fabrik/database.rb', line 23
def after_create_for(klass) = proxy_for(klass).callback
|
9
|
# File 'lib/fabrik/database.rb', line 9
def configure(&configuration) = instance_eval(&configuration)
|
#defaults_for(klass) ⇒ Object
19
|
# File 'lib/fabrik/database.rb', line 19
def defaults_for(klass) = proxy_for(klass).default_attributes
|
#functions_for(klass) ⇒ Object
25
|
# File 'lib/fabrik/database.rb', line 25
def functions_for(klass) = proxy_for(klass).functions
|
#register(klass, as: nil, &configuration) ⇒ Object
Also known as:
with
11
12
13
14
15
16
|
# File 'lib/fabrik/database.rb', line 11
def register(klass, as: nil, &configuration)
blueprint_name = (as.nil? ? blueprint_name_for(klass) : as.to_s.pluralize).to_sym
@proxies[blueprint_name] ||= Proxy.new(self, Blueprint.new(klass))
@proxies[blueprint_name].configure(&configuration)
@proxies[blueprint_name]
end
|
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
31
32
33
|
# File 'lib/fabrik/database.rb', line 31
def respond_to_missing?(method_name, include_private = false)
@proxies.key?(method_name) || !class_from(method_name).nil? || super
end
|
#unique_keys_for(klass) ⇒ Object
21
|
# File 'lib/fabrik/database.rb', line 21
def unique_keys_for(klass) = proxy_for(klass).unique_keys
|