Class: Linkage::Expectations::Filter

Inherits:
Simple show all
Defined in:
lib/linkage/expectations/simple.rb

Constant Summary

Constants inherited from Simple

Simple::VALID_OPERATORS

Instance Attribute Summary

Attributes inherited from Simple

#meta_object_1, #meta_object_2, #operator, #side

Instance Method Summary collapse

Methods inherited from Simple

create, #display_warnings, #exactly!, #initialize, #same_except_side?

Constructor Details

This class inherits a constructor from Linkage::Expectations::Simple

Instance Method Details

#apply_to(dataset, side) ⇒ Object



102
103
104
105
106
107
108
# File 'lib/linkage/expectations/simple.rb', line 102

def apply_to(dataset, side)
  if side != @side
    return dataset
  end

  dataset.filter(self.to_expr)
end

#decollation_needed?Boolean

Returns:

  • (Boolean)


110
111
112
# File 'lib/linkage/expectations/simple.rb', line 110

def decollation_needed?
  false
end

#kindObject



89
# File 'lib/linkage/expectations/simple.rb', line 89

def kind; :filter; end

#to_exprObject



91
92
93
94
95
96
97
98
99
100
# File 'lib/linkage/expectations/simple.rb', line 91

def to_expr
  case @operator
  when :==, :'!='
    expr = { @meta_object_1.to_expr => @meta_object_2.to_expr }
    @operator == :== ? expr : ~expr
  else
    Sequel::SQL::BooleanExpression.new(@operator,
      @meta_object_1.to_identifier, @meta_object_2.to_identifier)
  end
end