Class: AtomicJson::Query
- Inherits:
-
Object
- Object
- AtomicJson::Query
- Includes:
- Validations
- Defined in:
- lib/atomic_json/query.rb
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#query_builder ⇒ Object
readonly
Returns the value of attribute query_builder.
-
#query_string ⇒ Object
Returns the value of attribute query_string.
-
#record ⇒ Object
readonly
Returns the value of attribute record.
Instance Method Summary collapse
- #build(attributes, touch: false) ⇒ Object
- #execute! ⇒ Object
-
#initialize(record) ⇒ Query
constructor
A new instance of Query.
- #to_s ⇒ Object
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
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
11 12 13 |
# File 'lib/atomic_json/query.rb', line 11 def connection @connection end |
#query_builder ⇒ Object (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_string ⇒ Object
Returns the value of attribute query_string.
12 13 14 |
# File 'lib/atomic_json/query.rb', line 12 def query_string @query_string end |
#record ⇒ Object (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. end |
#to_s ⇒ Object
35 36 37 |
# File 'lib/atomic_json/query.rb', line 35 def to_s query_string end |