Module: DataMapper::Query::Conditions::RelationshipHandler

Included in:
EqualToComparison, InclusionComparison
Defined in:
lib/dm-core/query/conditions/comparison.rb

Overview

Included into comparisons which are capable of supporting Relationships.

Instance Method Summary collapse

Instance Method Details

#foreign_key_mappingHash

Returns the conditions required to match the subject relationship



461
462
463
464
465
466
# File 'lib/dm-core/query/conditions/comparison.rb', line 461

def foreign_key_mapping
  relationship = subject.inverse
  relationship = relationship.links.first if relationship.respond_to?(:links)

  Query.target_conditions(value, relationship.source_key, relationship.target_key)
end

#matches?(record) ⇒ Boolean

Tests that the record value matches the comparison



448
449
450
451
452
453
454
# File 'lib/dm-core/query/conditions/comparison.rb', line 448

def matches?(record)
  if relationship? && expected.respond_to?(:query)
    match_relationship?(record)
  else
    super
  end
end

#relationship?Boolean

Returns whether this comparison subject is a Relationship



436
437
438
# File 'lib/dm-core/query/conditions/comparison.rb', line 436

def relationship?
  subject.is_a?(Associations::Relationship)
end