Class: FuzzyWhere::FuzzyRelationBuilder

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

Overview

Class to build and ActiveRecord_Relation based on fuzzy conditions

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(table, relation, conditions) ⇒ FuzzyRelationBuilder

New FuzzyRelationBuilder intance

Parameters:

  • table (String)

    table name

  • relation (ActiveRecord_Relation)

    query to append

  • conditions (Hash)

    fuzzy conditions



29
30
31
32
33
34
35
# File 'lib/fuzzy_where/fuzzy_relation_builder.rb', line 29

def initialize(table, relation, conditions)
  @table = table
  @conditions = conditions
  @relation = relation
  @calibration = calibration
  @membership_degrees = []
end

Instance Attribute Details

#relationObject (readonly)

Returns the value of attribute relation.



23
24
25
# File 'lib/fuzzy_where/fuzzy_relation_builder.rb', line 23

def relation
  @relation
end

Class Method Details

.sqlite3?Boolean

Is sqlite3 validation

Returns:

  • (Boolean)


10
11
12
# File 'lib/fuzzy_where/fuzzy_relation_builder.rb', line 10

def sqlite3?
  active_record_adapter == 'sqlite3'.freeze
end

Instance Method Details

#buildActiveRecord_Relation

Build an ActiveRecord relation based on fuzzy conditions

Returns:

  • (ActiveRecord_Relation)

    the final standard query



40
41
42
43
44
45
# File 'lib/fuzzy_where/fuzzy_relation_builder.rb', line 40

def build
  process_conditions
  add_membership_column
  add_calibration_column
  order_by_membership_degree
end