Class: RKit::ActiveRecordUtility::Base
- Inherits:
-
Object
- Object
- RKit::ActiveRecordUtility::Base
show all
- Defined in:
- lib/r_kit/active_record_utility/base.rb
Defined Under Namespace
Classes: Pool, Publisher, Series, Tag
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(base, method_name:) ⇒ Base
5
6
7
8
|
# File 'lib/r_kit/active_record_utility/base.rb', line 5
def initialize base, method_name:;
@base = base
@method_name = method_name
end
|
Instance Attribute Details
Returns the value of attribute base.
3
4
5
|
# File 'lib/r_kit/active_record_utility/base.rb', line 3
def base
@base
end
|
#method_name ⇒ Object
Returns the value of attribute method_name.
3
4
5
|
# File 'lib/r_kit/active_record_utility/base.rb', line 3
def method_name
@method_name
end
|
Class Method Details
.inherited(subclass) ⇒ Object
65
66
67
68
|
# File 'lib/r_kit/active_record_utility/base.rb', line 65
def inherited subclass
subclass.instance_variable_set :@interfered, []
super
end
|
.interfered(base) ⇒ Object
61
62
63
|
# File 'lib/r_kit/active_record_utility/base.rb', line 61
def interfered base
@interfered << base
end
|
.interfered?(base) ⇒ Boolean
57
58
59
|
# File 'lib/r_kit/active_record_utility/base.rb', line 57
def interfered? base
@interfered.include? base
end
|
Instance Method Details
#can_interfere? ⇒ Boolean
TODO: private/protected ?
26
27
28
|
# File 'lib/r_kit/active_record_utility/base.rb', line 26
def can_interfere?
raise NotImplementedError, 'Subclasses must implement this method'
end
|
#interfere(*args) ⇒ Object
15
16
17
18
19
20
21
22
|
# File 'lib/r_kit/active_record_utility/base.rb', line 15
def interfere *args
if can_interfere?
interfere! *args
interfered!
else
raise DatabaseSchemaError.new(base, method_name: method_name) unless running_script? /^rake db:/
end
end
|
#interfere!(**options) ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/r_kit/active_record_utility/base.rb', line 30
def interfere! **options
base.interferences_options_set self, **options
base.instance_eval &instance_interferences
base.class_eval &class_interferences
base.decorator_klass.class_eval &decorator_interferences if base.decorator_klass
end
|
#interfered! ⇒ Object
52
53
54
|
# File 'lib/r_kit/active_record_utility/base.rb', line 52
def interfered!
__class__.interfered base
end
|
10
11
12
|
# File 'lib/r_kit/active_record_utility/base.rb', line 10
def to_s
__class__.demodulize.underscore
end
|