module Utusemi::Core::ActiveRecord::Base
Public Class Methods
new(*args, &block)
click to toggle source
用途
utusemiメソッドを利用後にレコードを作成した場合は Utusemi::Core#utusemiを個別呼び出さなくても済むようになる
使用例
product = Product.utusemi(:product).new(name: 'test') product.name #=> 'test' (= products.title)
Calls superclass method
# 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
Public Instance Methods
association(name)
click to toggle source
用途
association_cacheの影響でAssociation#ownerでclone前のインスタンスしか取得できないため 別経路から実際の呼び出し元インスタンスを参照できるようにし、utusemi_valuesを取り出せるようにする
Calls superclass method
# 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_copy(original_obj)
click to toggle source
用途
cloneでは浅いコピーしか行われず@utusemi_valuesの内容が 書き変わってしまうので、これを解決するために@utusemi_valuesもdupする
Calls superclass method
# File lib/utusemi/core.rb, line 305 def initialize_copy(original_obj) @utusemi_values = original_obj.utusemi_values.dup super end