Module: Utusemi::Core::ActiveRecord::Base
- Defined in:
- lib/utusemi/core.rb,
lib/utusemi/core.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#association(name) ⇒ Object
用途 association_cacheの影響でAssociation#ownerでclone前のインスタンスしか取得できないため 別経路から実際の呼び出し元インスタンスを参照できるようにし、utusemi_valuesを取り出せるようにする.
-
#initialize(*args, &block) ⇒ Object
用途 utusemiメソッドを利用後にレコードを作成した場合は Utusemi::Core#utusemiを個別呼び出さなくても済むようになる.
-
#initialize_copy(original_obj) ⇒ Object
用途 cloneでは浅いコピーしか行われず@utusemi_valuesの内容が 書き変わってしまうので、これを解決するために@utusemi_valuesもdupする.
Instance Method Details
#association(name) ⇒ Object
用途
association_cacheの影響でAssociation#ownerでclone前のインスタンスしか取得できないため
別経路から実際の呼び出し元インスタンスを参照できるようにし、utusemi_valuesを取り出せるようにする
313 314 315 316 317 318 |
# File 'lib/utusemi/core.rb', line 313 def association(name) truthly_owner = self association = super association.singleton_class.send(:define_method, :truthly_owner) { truthly_owner } association end |
#initialize(*args, &block) ⇒ Object
289 290 291 292 293 294 295 296 297 298 299 300 |
# File 'lib/utusemi/core.rb', line 289 def initialize(*args, &block) case Rails::VERSION::MAJOR when 4 current_scope = self.class.current_scope when 3 current_scope = self.class.scoped end utusemi_values = current_scope.try(:utusemi_values) || {} utusemi_values = self.class.utusemi_values unless utusemi_values[:flag] utusemi!(utusemi_values[:type], utusemi_values[:options]) if utusemi_values[:flag] super end |
#initialize_copy(original_obj) ⇒ Object
用途
cloneでは浅いコピーしか行われず@utusemi_valuesの内容が
書き変わってしまうので、これを解決するために@utusemi_valuesもdupする
305 306 307 308 |
# File 'lib/utusemi/core.rb', line 305 def initialize_copy(original_obj) @utusemi_values = original_obj.utusemi_values.dup super end |