Sha256: addd4db5bed3d7c7874a477f57b9495c23e43ebe6adea460f70f45193c7ffd78

Contents?: true

Size: 634 Bytes

Versions: 4

Compression:

Stored size: 634 Bytes

Contents

module CloudSesame
	module Query
		module DSL
			module FieldAccessors

				def self.__define_accessor__(name)
					define_method(name) { |*values, &block| literal name, *values, &block }
				end

				def literal(name, *values, &block)
					name = name.to_sym

					if block_given?
						caller = block.binding.eval "self"
						options = _scope.context[:fields][name]
						domain = Domain::Literal.new(name, options, caller)
						node = domain._eval(&block)
						values << node
					end

			  	_scope.children.field = name
			  	_scope.children._return = _return
			  	_scope.children.insert values
				end

			end
		end
	end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
CloudSesame-0.6.8 lib/cloud_sesame/query/dsl/field_accessors.rb
CloudSesame-0.6.7 lib/cloud_sesame/query/dsl/field_accessors.rb
CloudSesame-0.6.6 lib/cloud_sesame/query/dsl/field_accessors.rb
CloudSesame-0.6.5 lib/cloud_sesame/query/dsl/field_accessors.rb