Class: AtomicJson::Query

Inherits:
Object
  • Object
show all
Includes:
Validations
Defined in:
lib/atomic_json/query.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Validations

#validate_attributes!, #validate_record!

Constructor Details

#initialize(record) ⇒ Query

Returns a new instance of Query.



16
17
18
19
20
21
# File 'lib/atomic_json/query.rb', line 16

def initialize(record)
  validate_record!(record)
  @record = record
  @connection = ActiveRecord::Base.connection
  @query_builder = QueryBuilder.new(@record, @connection)
end

Instance Attribute Details

#connectionObject (readonly)

Returns the value of attribute connection.



11
12
13
# File 'lib/atomic_json/query.rb', line 11

def connection
  @connection
end

#query_builderObject (readonly)

Returns the value of attribute query_builder.



11
12
13
# File 'lib/atomic_json/query.rb', line 11

def query_builder
  @query_builder
end

#query_stringObject

Returns the value of attribute query_string.



12
13
14
# File 'lib/atomic_json/query.rb', line 12

def query_string
  @query_string
end

#recordObject (readonly)

Returns the value of attribute record.



11
12
13
# File 'lib/atomic_json/query.rb', line 11

def record
  @record
end

Instance Method Details

#build(attributes, touch: false) ⇒ Object



23
24
25
26
27
# File 'lib/atomic_json/query.rb', line 23

def build(attributes, touch: false)
  validate_attributes!(record, attributes)
  self.query_string = query_builder.build(attributes, touch)
  self
end

#execute!Object



29
30
31
32
33
# File 'lib/atomic_json/query.rb', line 29

def execute!
  connection.exec_update(query_string, 'SQL')
rescue ActiveRecord::StatementInvalid => e
  raise Error, e.message
end

#to_sObject



35
36
37
# File 'lib/atomic_json/query.rb', line 35

def to_s
  query_string
end