module CloudSesame::Query::DSL::LiteralMethods

Public Class Methods

__define_accessor__(name) click to toggle source
# File lib/cloud_sesame/query/dsl/literal_methods.rb, line 7
def self.__define_accessor__(name)
  define_method name do |*values, &block|
    literal name, *values, &block
  end
end

Public Instance Methods

literal(name, *values, &block) click to toggle source
# File lib/cloud_sesame/query/dsl/literal_methods.rb, line 13
def literal(name, *values, &block)
  name = name.to_sym
  values << __literal_block_handler__(name, block) if block_given?
  _scope.children.field = name
  _scope.children._return = _return
  _scope.children.insert values
end

Private Instance Methods

__literal_block_handler__(name, block) click to toggle source
# File lib/cloud_sesame/query/dsl/literal_methods.rb, line 23
def __literal_block_handler__(name, block)
  caller = block.binding.eval "self"
  options = _scope.context[:fields][name]
  Domain::Literal.new(name, options, caller)._eval(&block)
end