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]]