lib/yaks/runner.rb in yaks-0.7.6 vs lib/yaks/runner.rb in yaks-0.7.7

- old
+ new

@@ -6,14 +6,21 @@ extend Forwardable def_delegators :config, :policy, :default_format, :format_options, :primitivize, :serializers def call - steps.inject(object) {|memo, (_, step)| step.call(memo, env) } + process(steps, object) end - alias result call + def map(object) + process(insert_hooks([[:map, mapper]]), object) + end + + def process(operations, input) + operations.inject(input) {|memo, (_, step)| step.call(memo, env) } + end + def context { policy: policy, env: env, mapper_stack: [] @@ -36,11 +43,11 @@ def media_type format_class.media_type end - def format + def format_name format_class.format_name end def steps insert_hooks( @@ -72,17 +79,10 @@ end end end memoize :primitivizer - # @param [Hash] opts - # @return [String] - def format_name - options.fetch(:format) { default_format } - end - memoize :format_name - def serializer serializers.fetch(format_class.serializer) end memoize :serializer @@ -91,10 +91,10 @@ end def insert_hooks(steps) hooks.inject(steps) do |steps, (type, target_step, name, hook)| steps.flat_map do |step_name, callable| - if step_name.eql? target_step + if step_name.equal? target_step case type when :before [[name, hook], [step_name, callable]] when :after [[step_name, callable], [name, hook]]