class QueryBuilder::Core::Statement
Abstract base class for CQL
statemens (roots of AST)
The statement can belong to some context (keyspace, table). It is created with several clauses (like WHERE, SET etc.)
@abstract
Public Class Methods
new(*)
click to toggle source
@!method initialize(type, *attributes, &block) Initializes the statement with a type, attributes and block
@param (see QueryBuilder::Clause) @param [Proc] block
The block that returns an array of clauses for the statement
Calls superclass method
QueryBuilder::Core::Base::new
# File lib/query_builder/core/statement.rb, line 23 def initialize(*) @clauses = block_given? ? Array[*yield] : [] super end
Public Instance Methods
<<(clause)
click to toggle source
@!method <<(clause) Returns a new statement where the clause is added
@param [QueryBuilder::Clause] clause
@return [QueryBuilder::Statement]
# File lib/query_builder/core/statement.rb, line 47 def <<(clause) new_clauses = @clauses.dup new_clauses.delete clause self.class.new(attributes) { new_clauses + [clause] } end
clauses(cond = nil)
click to toggle source
@!method clauses(type = nil) Returns array of chunks of code for the statement’s clauses
@param [Symbol] type The optional type to select clauses by
@return [Array<String>]
# File lib/query_builder/core/statement.rb, line 35 def clauses(cond = nil) (cond ? @clauses.select { |item| cond.equal? item.type } : @clauses) .map(&:to_s) end