class TogoStanza::Stanza::ExpressionMap
Public Instance Methods
resolve(context, key, params)
click to toggle source
# File lib/togostanza/stanza/expression_map.rb, line 22 def resolve(context, key, params) val = self[key] return val unless val.respond_to?(:call) args = val.parameters.reject {|type, _| type == :block }.map {|_, key| params[key] } context.instance_exec(*args, &val) end
resolve_all_in_parallel(context, params)
click to toggle source
# File lib/togostanza/stanza/expression_map.rb, line 36 def resolve_all_in_parallel(context, params) Parallel.map(self, in_threads: 16) {|k, v| [k, resolve(context, k, params)] }.each_with_object({}) {|(k, v), memo| memo[k] = v } end