class Payload::PartialInstance
Returned by {Factory#apply}.
Used to build up arguments for invoking factory definitions.
@see Factory#apply
Factory#apply
for usage.
Public Class Methods
new(instance, positional = [], keywords = {})
click to toggle source
Used internally by {Factory}.
@api private
# File lib/payload/partial_instance.rb, line 11 def initialize(instance, positional = [], keywords = {}) @instance = instance @positional = positional @keywords = keywords end
Public Instance Methods
apply(*positional, **keywords)
click to toggle source
@see Factory#apply
Factory#apply
for usage.
# File lib/payload/partial_instance.rb, line 18 def apply(*positional, **keywords) self.class.new( @instance, @positional + positional, @keywords.merge(keywords) ) end
method_missing(name, *positional, **keywords, &block)
click to toggle source
Applies final arguments and invokes the missing method on the target.
@see Factory#new
Factory#new
for usage.
# File lib/payload/partial_instance.rb, line 29 def method_missing(name, *positional, **keywords, &block) apply(*positional, **keywords).evaluate(name, &block) end
Protected Instance Methods
evaluate(name, &block)
click to toggle source
# File lib/payload/partial_instance.rb, line 35 def evaluate(name, &block) @instance.public_send(name, *arguments, &block) end
Private Instance Methods
arguments()
click to toggle source
# File lib/payload/partial_instance.rb, line 41 def arguments @positional + keyword_arguments end
keyword_arguments()
click to toggle source
# File lib/payload/partial_instance.rb, line 45 def keyword_arguments if @keywords.empty? [] else [@keywords] end end
respond_to_missing?(*arguments)
click to toggle source
# File lib/payload/partial_instance.rb, line 53 def respond_to_missing?(*arguments) @instance.respond_to?(*arguments) end