Module: GraphQL::Client::ConstProxy
- Defined in:
- lib/graphql/client/const_proxy.rb
Overview
Internal: Hack to track the constant name an object is assigned to.
FooConstant = ConstProxy.new { |name|
name
}
Class Method Summary
collapse
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(*args, &block) ⇒ Object
23
24
25
26
|
# File 'lib/graphql/client/const_proxy.rb', line 23
def method_missing(*args, &block)
@target ||= @initializer.call(self.name)
@target.send(*args, &block)
end
|
Class Method Details
.new(&initializer) ⇒ Object
10
11
12
13
14
15
16
17
|
# File 'lib/graphql/client/const_proxy.rb', line 10
def self.new(&initializer)
raise ArgumentError, "initializer required" unless block_given?
Module.new do
extend ConstProxy
@initializer = initializer
end
end
|
Instance Method Details
#name ⇒ Object
19
20
21
|
# File 'lib/graphql/client/const_proxy.rb', line 19
def name
super || raise(RuntimeError, "expected object to be assigned to a constant")
end
|