class DaedalSL::Builder

Attributes

data[R]

Public Class Methods

new(data=nil) click to toggle source
# File lib/daedal-sl/builder.rb, line 7
def initialize(data=nil)
  @data = data
  @query = match_all
  @filter = nil
  @options = {}
end

Public Instance Methods

fields(*f) click to toggle source
# File lib/daedal-sl/builder.rb, line 34
def fields(*f)
  @options[:fields] = f
end
filter() { || ... } click to toggle source
# File lib/daedal-sl/builder.rb, line 20
def filter
  if block_given?
    @filter = yield
  end
end
from(num) click to toggle source
# File lib/daedal-sl/builder.rb, line 26
def from(num)
  @options[:from] = num
end
paginate(options={}) click to toggle source
# File lib/daedal-sl/builder.rb, line 38
def paginate(options={})
  page = options[:page] || 1
  per_page = options[:per_page] || 10

  from ((page - 1) * per_page)
  size per_page
end
query() { || ... } click to toggle source
# File lib/daedal-sl/builder.rb, line 14
def query
  if block_given?
    @query = yield
  end
end
size(num) click to toggle source
# File lib/daedal-sl/builder.rb, line 30
def size(num)
  @options[:size] = num
end
to_hash() click to toggle source
# File lib/daedal-sl/builder.rb, line 46
def to_hash
  result = {}
  unless @query.nil?
    result[:query] = @query.to_hash
  end
  unless @filter.nil?
    result[:filter] = @filter.to_hash
  end
  result.merge(@options)
end