Sha256: 2d22134bae7f0bfd4fc4d599e6765ab31615b69da3c195f2afeb271266b3df4d

Contents?: true

Size: 637 Bytes

Versions: 12

Compression:

Stored size: 637 Bytes

Contents

module PassiveRecord
  module Associations
    class BelongsToAssociation < Struct.new(:child_class, :parent_class_name, :target_name_symbol)
      def to_relation(child_model)
        BelongsToRelation.new(self, child_model)
      end

      def parent_class
        Object.const_get(parent_class_name)
      end
    end

    class BelongsToRelation < Struct.new(:association, :child_model)
      def lookup
        association.parent_class.find_by(parent_model_id)
      end

      def parent_model_id
        @parent_model_id ||= nil
      end

      def parent_model_id=(id)
        @parent_model_id = id
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
passive_record-0.2.3 lib/passive_record/associations/belongs_to.rb
passive_record-0.2.2 lib/passive_record/associations/belongs_to.rb
passive_record-0.2.1 lib/passive_record/associations/belongs_to.rb
passive_record-0.2.0 lib/passive_record/associations/belongs_to.rb
passive_record-0.1.8 lib/passive_record/associations/belongs_to.rb
passive_record-0.1.7 lib/passive_record/associations/belongs_to.rb
passive_record-0.1.6 lib/passive_record/associations/belongs_to.rb
passive_record-0.1.5 lib/passive_record/associations/belongs_to.rb
passive_record-0.1.4 lib/passive_record/associations/belongs_to.rb
passive_record-0.1.3 lib/passive_record/associations/belongs_to.rb
passive_record-0.1.1 lib/passive_record/associations/belongs_to.rb
passive_record-0.1.0 lib/passive_record/associations/belongs_to.rb