Class: FuzzyWhere::FuzzyDerivation

Inherits:
Object
  • Object
show all
Defined in:
lib/fuzzy_where/fuzzy_derivation.rb

Overview

Class to take a column and a fuzzy predicate and return the equivalent standard query

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query, table, column, fuzzy_predicate) ⇒ FuzzyDerivation

New FuzzyDerivation intance

Parameters:

  • query (ActiveRecord_Relation)

    query to append

  • table (String)

    table name

  • column (String)

    column name

  • fuzzy_predicate (Hash)

    fuzzy predicate



15
16
17
18
19
20
# File 'lib/fuzzy_where/fuzzy_derivation.rb', line 15

def initialize(query, table, column, fuzzy_predicate)
  @table = table
  @query = query
  @column = column
  @fuzzy_predicate = fuzzy_predicate
end

Instance Attribute Details

#queryObject (readonly)

Returns the value of attribute query.



8
9
10
# File 'lib/fuzzy_where/fuzzy_derivation.rb', line 8

def query
  @query
end

Instance Method Details

#derivative_conditionActiveRecord_Relation

Take instance attributtes and return a derivated query

Returns:

  • (ActiveRecord_Relation)

    the current standard query



24
25
26
27
28
29
30
31
# File 'lib/fuzzy_where/fuzzy_derivation.rb', line 24

def derivative_condition
  min = @fuzzy_predicate[:min]
  max = @fuzzy_predicate[:max]

  increasing_conditions(min) if min && min != 'infinite'.freeze
  decreasing_conditions(max) if max && max != 'infinite'.freeze
  @query
end