Class: Freezer::FrozenRecordProxy
- Inherits:
- BasicObject
- Defined in:
- lib/freezer/frozen_record_proxy.rb
Instance Method Summary collapse
-
#initialize(record, silent = false) ⇒ FrozenRecordProxy
constructor
A new instance of FrozenRecordProxy.
Constructor Details
#initialize(record, silent = false) ⇒ FrozenRecordProxy
Returns a new instance of FrozenRecordProxy.
21 22 23 24 25 26 |
# File 'lib/freezer/frozen_record_proxy.rb', line 21 def initialize(record, silent = false) @silent = silent @record = record @record.readonly! @record.freeze end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object (private)
30 31 32 33 34 35 36 37 38 |
# File 'lib/freezer/frozen_record_proxy.rb', line 30 def method_missing(method, *args, &block) begin @record.__send__(method, *args, &block) rescue ::RuntimeError => e @record.__send__(:raise, e) unless @silent && e. == "can't modify frozen Hash" rescue ::ActiveRecord::ReadOnlyRecord => e @record.__send__(:raise, e) unless @silent end end |