class Riak::YzQuery::QueryBuilder

Public Class Methods

new(bucket) click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 4
def initialize(bucket)
  @bucket = bucket
end

Public Instance Methods

initialize_from_opts(opts) click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 8
def initialize_from_opts(opts)
  @bucket = opts[:bucket]
  @where_clauses = opts[:where_clauses]
  @order_clauses = opts[:order_clauses]
  @limit = opts[:limit]
  @offset = opts[:offset]
end
keys() click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 32
def keys
  @keys ||= results['docs'].map{|d| d['_yz_rk']}
end
limit(lim) click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 24
def limit(lim)
  chain limit: lim
end
offset(off) click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 28
def offset(off)
  chain offset: off
end
order(opts) click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 20
def order(opts)
  chain order_clauses: order_clauses.consume(opts)
end
to_yz_query() click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 40
def to_yz_query
  where_clauses.to_yz_query
end
values() click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 36
def values
  @bucket.get_many keys
end
where(opts) click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 16
def where(opts)
  chain where_clauses: where_clauses.consume(opts)
end

Private Instance Methods

chain(opts) click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 45
def chain(opts)
  new_options = {
    bucket: @bucket,
    where_clauses: where_clauses,
    order_clauses: order_clauses,
    limit: @limit,
    offset: @offset
  }.merge opts

  chain = self.class.allocate
  chain.initialize_from_opts new_options

  return chain
end
order_clauses() click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 75
def order_clauses
  @order_clauses ||= OrderClause.new Hash.new
end
results() click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 60
def results
  opts = {}
  opts[:rows] = @limit if @limit
  opts[:start] = @offset if @offset
  if order = order_clauses.to_yz_query
    opts[:sort] = order
  end

  @results ||= @bucket.client.search @bucket.name, to_yz_query, opts
end
where_clauses() click to toggle source
# File lib/riak/yz_query/query_builder.rb, line 71
def where_clauses
  @where_clauses ||= WhereClause.new Hash.new
end