Module: CloudSesame::Query::DSL::ScopeAccessors

Included in:
Builder, CloudSesame::Query::Domain::Block
Defined in:
lib/cloud_sesame/query/dsl/scope_accessors.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object (private)



20
21
22
23
24
# File 'lib/cloud_sesame/query/dsl/scope_accessors.rb', line 20

def method_missing(name, *args, &block)
  scopes name, *args
rescue Error::ScopeNotDefined
  super
end

Instance Method Details

#scopes(name = nil, *args) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/cloud_sesame/query/dsl/scope_accessors.rb', line 6

def scopes(name = nil, *args)
  return _return if name.nil?

  defined_scopes = _scope.context[:scopes]
  if defined_scopes && (block = defined_scopes[name.to_sym])
    instance_exec(*args, &block)
    _return
  else
    raise Error::ScopeNotDefined
  end
end