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

Version Path
CloudSesame-1.0.1 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-1.0.0 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.9.4 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.9.3 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.9.2 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.9.1 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.9.0 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.8.3 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.8.2 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.8.1 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.8.0 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.7.13 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.7.12 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.7.11 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.7.10 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.7.9 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.7.8 lib/cloud_sesame/query/dsl/literal_methods.rb
CloudSesame-0.7.7 lib/cloud_sesame/query/dsl/literal_methods.rb