module Parascope::Query::ApiMethods

Public Instance Methods

base_dataset(&block)
Alias for: base_scope
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(*presence_fields, **value_fields, &block)
Alias for: query_by
query!(*presence_fields, &block)
Alias for: query_by!
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!
sifter(*presence_fields, **value_fields, &block)
Alias for: sift_by
sifter!(*presence_fields, &block)
Alias for: sift_by!
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