Sha256: be2ec9ef763241fc217cf48fef964faab18539038df870c67fb6c0fa86e9df60

Contents?: true

Size: 575 Bytes

Versions: 5

Compression:

Stored size: 575 Bytes

Contents

module GreyscaleRecord
  module Associations
    class BelongsTo < Base
      def action
        :find
      end

      def key
        "#{name}_id"
      end

      def query( instance )
        instance.send key
      end

      def klass( instance )
        if polymorphic?
          class_name = instance.send "#{name}_class"
          class_name.constantize
        else
          super
        end
      end

      protected

      def additional_options
        [ :polymorphic ]
      end

      def polymorphic?
        opts[:polymorphic]
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
greyscale_record-1.0.3 lib/greyscale_record/associations/belongs_to.rb
greyscale_record-1.0.2 lib/greyscale_record/associations/belongs_to.rb
greyscale_record-1.0.1 lib/greyscale_record/associations/belongs_to.rb
greyscale_record-1.0.0 lib/greyscale_record/associations/belongs_to.rb
greyscale_record-0.0.1 lib/greyscale_record/associations/belongs_to.rb