module Cassie::Statements::Statement::Selection
Sepcific functionality and DSL for selection statements
The following class attributes are affected when included:
-
Sets {.idempotent} to
true
since selection queries are idempotent by definition. -
Sets the {.result_class} to {Cassie::Statements::Results::QueryResult}
Public Class Methods
included(base)
click to toggle source
@!visibility private @!parse include Relations
@!parse extend Relations::ClassMethods
@!parse include Ordering
@!parse extend Ordering::ClassMethods @!parse include Limiting
@!parse extend Limiting::ClassMethods
@!parse include AllowFiltering
@!parse extend AllowFiltering::ClassMethods
@!parse include Pagination
@!parse extend Pagination::ClassMethods
# File lib/cassie/statements/statement/selection.rb, line 26 def self.included(base) base.instance_eval do include Relations include Ordering include Limiting include AllowFiltering include Pagination @result_class = Cassie::Statements::Results::QueryResult @idempotent = true end base.extend ClassMethods end
Protected Instance Methods
build_select_clause()
click to toggle source
# File lib/cassie/statements/statement/selection.rb, line 118 def build_select_clause return '*' if selectors.empty? selectors.join(', ') end
build_select_cql_and_params()
click to toggle source
# File lib/cassie/statements/statement/selection.rb, line 100 def build_select_cql_and_params where_str, @params = build_where_and_params @cql = %( SELECT #{build_select_clause} FROM #{table} #{where_str} #{build_order_str} #{build_limit_str} #{build_allow_filtering_str} ).squish + ";" end
result_opts()
click to toggle source
Calls superclass method
# File lib/cassie/statements/statement/selection.rb, line 93 def result_opts opts = {} opts[:each_deserializer] = method(:build_result) if respond_to?(:build_result, true) opts[:deserializer] = method(:build_results) if respond_to?(:build_results, true) super.merge(opts) end
selectors()
click to toggle source
a select clause is built up of selectors
# File lib/cassie/statements/statement/selection.rb, line 114 def selectors self.class.selectors end