Class: Literal::Rails::RelationType

Inherits:
Object
  • Object
show all
Defined in:
lib/literal/rails/relation_type.rb

Instance Method Summary collapse

Constructor Details

#initialize(model_class) ⇒ RelationType



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/literal/rails/relation_type.rb', line 5

def initialize(model_class)
  unless Class === model_class && model_class < ActiveRecord::Base
    raise Literal::TypeError.new(
        context: Literal::TypeError::Context.new(
          expected: ActiveRecord::Base, actual: model_class
        )
      )
  end

  @model_class = model_class
end

Instance Method Details

#===(value) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/literal/rails/relation_type.rb', line 19

def ===(value)
  case value
    when ActiveRecord::Relation, ActiveRecord::Associations::CollectionProxy, ActiveRecord::AssociationRelation
      @model_class == value.model || value.model < @model_class
    else
      false
  end
end

#inspectObject



17
# File 'lib/literal/rails/relation_type.rb', line 17

def inspect = "ActiveRecord::Relation(#{@model_class.name})"