Sha256: aaa5c2b97e4887f3355e67190474efb3b116e404604bcdcaec7eae0d6ddc6d96
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
require 'super_model/associations' class SuperModel module Associations module HasOne def has_one(resource_name, options={}) options[:resource_name] ||= SuperModel::Associations.sanitize_resource_name( resource_name, :singularize ) options[:foreign_key] ||= SuperModel::Associations.foreign_key_for( options[:resource_name], :singularize ) SuperModel::Associations.def_foreign_key_methods( self, options[:foreign_key] ) SuperModel::Associations.def_association_methods( class: self, resource_name: options[:resource_name], foreign_key: options[:foreign_key], getter_proc: Proc.new do ObjectSpace._id2ref( instance_variable_get("@#{ options[:foreign_key] }") ) if instance_variable_defined?("@#{ options[:foreign_key] }") end, setter_proc: Proc.new do |value| send( "#{ options[:foreign_key] }=", value.object_id ) end ) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
super_model-0.0.1 | lib/super_model/associations/has_one.rb |