Module: OrderCop
- Defined in:
- lib/order_cop.rb,
lib/order_cop/version.rb
Defined Under Namespace
Modules: OrderCopMixin
Classes: Error, OrderCopConfig, OrderCopRailtie
Constant Summary
collapse
- VERSION =
"0.2.0"
Class Method Summary
collapse
Class Method Details
.apply(app = Rails.application) ⇒ Object
159
160
161
|
# File 'lib/order_cop.rb', line 159
def self.apply(app = Rails.application)
patch_active_record(app) if enabled?
end
|
.config(**options) {|@config| ... } ⇒ Object
25
26
27
28
29
30
31
32
|
# File 'lib/order_cop.rb', line 25
def self.config(**options, &block)
@config ||= OrderCopConfig.new
options.each do |key, value|
@config.send("#{key}=", value)
end
yield @config if block
@config
end
|
.disable(&block) ⇒ Object
34
35
36
37
38
39
40
|
# File 'lib/order_cop.rb', line 34
def self.disable(&block)
old_enabled = @config.enabled
@config.enabled = false
yield
ensure
@config.enabled = old_enabled
end
|
.disabled? ⇒ Boolean
42
43
44
|
# File 'lib/order_cop.rb', line 42
def self.disabled?
!@config.enabled
end
|
.enabled? ⇒ Boolean
46
47
48
|
# File 'lib/order_cop.rb', line 46
def self.enabled?
@config.enabled
end
|
.patch_active_record(app) ⇒ Object
145
146
147
148
149
150
151
152
153
154
155
156
157
|
# File 'lib/order_cop.rb', line 145
def self.patch_active_record(app)
ActiveRecord::Base.descendants.each do |model|
model.const_get(:ActiveRecord_Associations_CollectionProxy).class_eval do
prepend OrderCopMixin
end
model.const_get(:ActiveRecord_Relation).class_eval do
prepend OrderCopMixin
end
model.const_get(:ActiveRecord_AssociationRelation).class_eval do
prepend OrderCopMixin
end
end
end
|