class Apist::ResultCallback
Attributes
arguments[R]
name[R]
Public Class Methods
new(name, arguments)
click to toggle source
# File lib/apist/resultcallback.rb, line 10 def initialize(name, arguments) @name = name @arguments = arguments end
Public Instance Methods
apply(node, method)
click to toggle source
# File lib/apist/resultcallback.rb, line 15 def apply(node, method) return apply_to_array node, method if node.is_a? Array return node.to_s if @name === :to_s filter = Apist::Filter.new node, method return filter.send @name, *@arguments if filter.respond_to? @name resource = method.resource return call_resource_method node, resource if resource.respond_to? @name return node.send @name, *@arguments if node.respond_to? @name raise Apist::Error::Method, "Method '#{@name}' was not found" end
apply_to_array(array, method)
click to toggle source
# File lib/apist/resultcallback.rb, line 31 def apply_to_array(array, method) result = [] array.each do |node| result << apply(node, method) end return result end
call_resource_method(node, resource)
click to toggle source
# File lib/apist/resultcallback.rb, line 39 def call_resource_method(node, resource) arguments = @arguments.unshift node resource.send @name, *arguments end