Sha256: 7878bbf0dd2f2a748c25b1e4a25cbca2396a170a36bf2c58eba5700f0e082bb9
Contents?: true
Size: 823 Bytes
Versions: 18
Compression:
Stored size: 823 Bytes
Contents
module CloudSesame module Query module DSL module LiteralMethods extend ClassSpecific def self.__define_accessor__(name) define_method name do |*values, &block| literal name, *values, &block end end 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 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 end end end end
Version data entries
18 entries across 18 versions & 1 rubygems