class Omise::SearchScope
Attributes
scope[R]
Public Class Methods
new(scope, options = {})
click to toggle source
# File lib/omise/search_scope.rb, line 5 def initialize(scope, options = {}) @scope = scope.to_s @filters = options.delete(:filters) { Hash.new } @order = options.delete(:order) @page = options.delete(:page) @query = options.delete(:query) end
Public Instance Methods
execute()
click to toggle source
# File lib/omise/search_scope.rb, line 32 def execute Search.execute(to_attributes) end
filter(filters = {})
click to toggle source
# File lib/omise/search_scope.rb, line 15 def filter(filters = {}) renew(filters: @filters.merge(filters)) end
order(order)
click to toggle source
# File lib/omise/search_scope.rb, line 24 def order(order) renew(order: order) end
page(number)
click to toggle source
# File lib/omise/search_scope.rb, line 28 def page(number) renew(page: number) end
query(terms = nil)
click to toggle source
# File lib/omise/search_scope.rb, line 19 def query(terms = nil) return self if !terms renew(query: terms) end
to_attributes()
click to toggle source
# File lib/omise/search_scope.rb, line 36 def to_attributes {}.tap do |a| a[:scope] = @scope a[:filters] = @filters if @filters.any? a[:query] = @query if @query a[:order] = @order if @order a[:page] = @page if @page end end
Private Instance Methods
renew(attributes)
click to toggle source
# File lib/omise/search_scope.rb, line 48 def renew(attributes) self.class.new(@scope, { query: @query, filters: @filters, order: @order, page: @page, }.merge(attributes)) end