Module: SwitchPoint::Model::ClassMethods
- Defined in:
- lib/switch_point/model.rb
Instance Method Summary collapse
- #cache_with_switch_point(&block) ⇒ Object
- #connection_with_switch_point ⇒ Object
- #switch_point_proxy ⇒ Object
- #transaction_with(*models, &block) ⇒ Object
- #uncached_with_switch_point(&block) ⇒ Object
- #use_switch_point(name) ⇒ Object
- #with_readonly(&block) ⇒ Object
- #with_writable(&block) ⇒ Object
Instance Method Details
#cache_with_switch_point(&block) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/switch_point/model.rb', line 24 def cache_with_switch_point(&block) if switch_point_proxy switch_point_proxy.cache(&block) else cache_without_switch_point(&block) end end |
#connection_with_switch_point ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/switch_point/model.rb', line 16 def connection_with_switch_point if switch_point_proxy switch_point_proxy.connection else connection_without_switch_point end end |
#switch_point_proxy ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/switch_point/model.rb', line 61 def switch_point_proxy if @switch_point_name ProxyRepository.checkout(@switch_point_name) elsif self == ActiveRecord::Base nil else superclass.switch_point_proxy end end |
#transaction_with(*models, &block) ⇒ Object
71 72 73 74 75 76 77 78 79 |
# File 'lib/switch_point/model.rb', line 71 def transaction_with(*models, &block) unless can_transaction_with?(*models) raise Error.new("switch_point's model names must be consistent") end with_writable do transaction(&block) end end |
#uncached_with_switch_point(&block) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/switch_point/model.rb', line 32 def uncached_with_switch_point(&block) if switch_point_proxy switch_point_proxy.uncached(&block) else uncached_without_switch_point(&block) end end |
#use_switch_point(name) ⇒ Object
56 57 58 59 |
# File 'lib/switch_point/model.rb', line 56 def use_switch_point(name) assert_existing_switch_point!(name) @switch_point_name = name end |
#with_readonly(&block) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/switch_point/model.rb', line 40 def with_readonly(&block) if switch_point_proxy switch_point_proxy.with_readonly(&block) else raise UnconfiguredError.new("#{name} isn't configured to use switch_point") end end |
#with_writable(&block) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/switch_point/model.rb', line 48 def with_writable(&block) if switch_point_proxy switch_point_proxy.with_writable(&block) else raise UnconfiguredError.new("#{name} isn't configured to use switch_point") end end |