class FuzzyWhere::FuzzyDerivation
Class to take a column and a fuzzy predicate and return the equivalent standard query
Attributes
query[R]
@!attribute [r] query
@return [ActiveRecord_Relation] the current standard query
Public Class Methods
new(query, table, column, fuzzy_predicate)
click to toggle source
New FuzzyDerivation
intance @param query [ActiveRecord_Relation] query to append @param table [String] table name @param column [String] column name @param fuzzy_predicate [Hash] fuzzy predicate
# 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
Public Instance Methods
derivative_condition()
click to toggle source
Take instance attributtes and return a derivated query @return [ActiveRecord_Relation] the current standard query
# 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
Private Instance Methods
decreasing_conditions(max)
click to toggle source
# File lib/fuzzy_where/fuzzy_derivation.rb, line 39 def decreasing_conditions(max) @query = @query.where("#{@table}.#{@column} < ?", max) end
increasing_conditions(min)
click to toggle source
# File lib/fuzzy_where/fuzzy_derivation.rb, line 35 def increasing_conditions(min) @query = @query.where("#{@table}.#{@column} > ?", min) end