module Zen::Query::ApiMethods
Public Instance Methods
alias_subject_name(name)
click to toggle source
# File lib/zen/query/api_methods.rb, line 6 def alias_subject_name(name) @subject_name = name define_singleton_method(name) { |&block| subject(&block) } alias_method(name, :subject) end
defaults(&block)
click to toggle source
# File lib/zen/query/api_methods.rb, line 32 def defaults(&block) return @defaults_block unless block_given? @defaults_block = block end
fetch_defaults()
click to toggle source
# File lib/zen/query/api_methods.rb, line 38 def fetch_defaults ancestors .select { |mod| mod.respond_to?(:defaults) } .map(&:defaults) .compact .reduce({}) { |result, block| result.merge!(block.call) } end
guard(message = nil, &block)
click to toggle source
# File lib/zen/query/api_methods.rb, line 94 def guard(message = nil, &block) guard_blocks.push([message, block]) end
guard_blocks()
click to toggle source
# File lib/zen/query/api_methods.rb, line 106 def guard_blocks @guard_blocks ||= [] end
query_blocks()
click to toggle source
# File lib/zen/query/api_methods.rb, line 102 def query_blocks @query_blocks ||= [] end
query_by(*presence_fields, **value_fields, &block)
click to toggle source
# File lib/zen/query/api_methods.rb, line 56 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/zen/query/api_methods.rb, line 80 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!
raise_on_guard_violation(value)
click to toggle source
# File lib/zen/query/api_methods.rb, line 18 def raise_on_guard_violation(value) @raise_on_guard_violation = !!value end
raise_on_guard_violation?()
click to toggle source
# File lib/zen/query/api_methods.rb, line 22 def raise_on_guard_violation? @raise_on_guard_violation end
sift_blocks()
click to toggle source
# File lib/zen/query/api_methods.rb, line 98 def sift_blocks @sift_blocks ||= [] end
sift_by(*presence_fields, **value_fields, &block)
click to toggle source
# File lib/zen/query/api_methods.rb, line 46 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/zen/query/api_methods.rb, line 69 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/zen/query/api_methods.rb, line 110 def sorted_query_blocks query_blocks.sort do |a, b| if a.index == b.index query_blocks.index(a) <=> query_blocks.index(b) else a.index <=> b.index end end end
subject(&block)
click to toggle source
# File lib/zen/query/api_methods.rb, line 26 def subject(&block) return @subject_block unless block_given? @subject_block = block end
subject_name()
click to toggle source
# File lib/zen/query/api_methods.rb, line 14 def subject_name @subject_name || :subject end