module Parascope::Query::ApiMethods
Public Instance Methods
base_scope(&block)
click to toggle source
# File lib/parascope/query/api_methods.rb, line 3 def base_scope(&block) return @base_scope unless block_given? @base_scope = block end
Also aliased as: base_dataset
defaults(params = nil, &block)
click to toggle source
# File lib/parascope/query/api_methods.rb, line 10 def defaults(params = nil, &block) return @defaults if params.nil? && !block_given? if block_given? && !params.nil? defaults(params) defaults(&block) elsif !block_given? && Proc === params @defaults = params elsif !block_given? defaults { params } elsif @defaults.nil? @defaults = block else _defaults = @defaults @defaults = -> { block.call.merge(_defaults.call) } end end
fetch_defaults()
click to toggle source
# File lib/parascope/query/api_methods.rb, line 28 def fetch_defaults defaults.nil? ? {} : defaults.call end
guard(message = nil, &block)
click to toggle source
# File lib/parascope/query/api_methods.rb, line 72 def guard(message = nil, &block) guard_blocks.push([message, block]) end
guard_blocks()
click to toggle source
# File lib/parascope/query/api_methods.rb, line 84 def guard_blocks @guard_blocks ||= [] end
query_blocks()
click to toggle source
# File lib/parascope/query/api_methods.rb, line 80 def query_blocks @query_blocks ||= [] end
query_by(*presence_fields, **value_fields, &block)
click to toggle source
# File lib/parascope/query/api_methods.rb, line 40 def query_by(*presence_fields, **value_fields, &block) query_blocks.push Query::ApiBlock.new( presence_fields: presence_fields, value_fields: value_fields, block: block ) end
Also aliased as: query
query_by!(*presence_fields, &block)
click to toggle source
# File lib/parascope/query/api_methods.rb, line 60 def query_by!(*presence_fields, &block) query_blocks.push Query::ApiBlock.new( presence_fields: presence_fields, value_fields: {}, block: block, force: true ) end
Also aliased as: query!
sift_blocks()
click to toggle source
# File lib/parascope/query/api_methods.rb, line 76 def sift_blocks @sift_blocks ||= [] end
sift_by(*presence_fields, **value_fields, &block)
click to toggle source
# File lib/parascope/query/api_methods.rb, line 32 def sift_by(*presence_fields, **value_fields, &block) sift_blocks.push Query::ApiBlock.new( presence_fields: presence_fields, value_fields: value_fields, block: block ) end
Also aliased as: sifter
sift_by!(*presence_fields, &block)
click to toggle source
# File lib/parascope/query/api_methods.rb, line 51 def sift_by!(*presence_fields, &block) sift_blocks.push Query::ApiBlock.new( presence_fields: presence_fields, value_fields: {}, block: block, force: true ) end
Also aliased as: sifter!
sorted_query_blocks()
click to toggle source
# File lib/parascope/query/api_methods.rb, line 88 def sorted_query_blocks query_blocks.sort do |a, b| a.index == b.index \ ? query_blocks.index(a) <=> query_blocks.index(b) : a.index <=> b.index end end