Class: SqlQueryExecutor::Base
- Inherits:
-
Object
- Object
- SqlQueryExecutor::Base
- Defined in:
- lib/sql_query_executor/base.rb
Overview
:nodoc:
Constant Summary collapse
- STRING_SPACE =
:nodoc:
"$SS$"- QUERY_SPACE =
"$QS$"- TEMP_SPACE =
"$TS$"
Class Method Summary collapse
-
.where(collection, *query) ⇒ Object
Recursive method that divides the query in sub queries, executes each part individually and finally relates its results as specified in the query.
Instance Method Summary collapse
- #execute! ⇒ Object
-
#initialize(collection, query) ⇒ Base
constructor
A new instance of Base.
- #selector ⇒ Object
- #to_sql ⇒ Object
Constructor Details
#initialize(collection, query) ⇒ Base
Returns a new instance of Base.
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/sql_query_executor/base.rb', line 12 def initialize(collection, query) query = query.first if query.respond_to?(:size) && query.size == 1 && !query.is_a?(Hash) = check_query(query) raise ArgumentError.new() if get_collection(collection) query = Query::Normalizers::QueryNormalizer.execute(query) @query = SqlQueryExecutor::Query::SubQuery.new query, @collection end |
Class Method Details
.where(collection, *query) ⇒ Object
Recursive method that divides the query in sub queries, executes each part individually and finally relates its results as specified in the query.
37 38 39 |
# File 'lib/sql_query_executor/base.rb', line 37 def self.where(collection, *query) self.new(collection, query).execute! end |
Instance Method Details
#execute! ⇒ Object
23 24 25 |
# File 'lib/sql_query_executor/base.rb', line 23 def execute! @query.execute! end |
#selector ⇒ Object
31 32 33 |
# File 'lib/sql_query_executor/base.rb', line 31 def selector @query.selector end |
#to_sql ⇒ Object
27 28 29 |
# File 'lib/sql_query_executor/base.rb', line 27 def to_sql @query.to_sql end |