module AlwaysHasOne::ClassMethods
Public Instance Methods
always_has_one(*args)
click to toggle source
# File lib/always_has_one.rb, line 7 def always_has_one *args has_one *args lazy_build_has_one_association args.first end
Private Instance Methods
lazy_build_has_one_association(association)
click to toggle source
# File lib/always_has_one.rb, line 14 def lazy_build_has_one_association association association = association.to_sym actual_association = "actual_#{association}".to_sym build_association = "build_#{association}".to_sym alias_method actual_association, association define_method(association) { send(actual_association) || send(build_association) } end