class Yaks::Runner
Public Instance Methods
call()
click to toggle source
# File lib/yaks/runner.rb, line 12 def call Pipeline.new(steps).insert_hooks(hooks).call(object, env) end
context()
click to toggle source
# File lib/yaks/runner.rb, line 28 def context { policy: policy, env: env, mapper_stack: [] }.merge(slice_hash(options, :item_mapper)) end
env()
click to toggle source
# File lib/yaks/runner.rb, line 37 def env options.fetch(:env, {}) end
format()
click to toggle source
# File lib/yaks/runner.rb, line 20 def format Pipeline.new([[:format, formatter], [:primitivize, primitivizer]]).insert_hooks(hooks).call(object, env) end
format_class()
click to toggle source
@return [Class]
# File lib/yaks/runner.rb, line 43 def format_class Format.by_accept_header(env['HTTP_ACCEPT']) { Format.by_name(options.fetch(:format) { default_format }) } end
formatter()
click to toggle source
# File lib/yaks/runner.rb, line 65 def formatter format_class.new(format_options_hash[format_name]) end
hooks()
click to toggle source
# File lib/yaks/runner.rb, line 86 def hooks config.hooks + options.fetch(:hooks, []) end
map()
click to toggle source
# File lib/yaks/runner.rb, line 24 def map Pipeline.new([[:map, mapper]]).insert_hooks(hooks).call(object, env) end
mapper()
click to toggle source
# File lib/yaks/runner.rb, line 58 def mapper options.fetch(:mapper) do policy.derive_mapper_from_object(object) end.new(context) end
primitivizer()
click to toggle source
# File lib/yaks/runner.rb, line 70 def primitivizer proc do |input| if format_class.serializer.equal? :json primitivize.call(input) else input end end end
read()
click to toggle source
# File lib/yaks/runner.rb, line 16 def read Pipeline.new([[:parse, serializer.inverse], [:read, formatter.inverse]]).insert_hooks(hooks).call(object, env) end
serializer()
click to toggle source
# File lib/yaks/runner.rb, line 81 def serializer serializers.fetch(format_class.serializer) end
steps()
click to toggle source
# File lib/yaks/runner.rb, line 50 def steps [[ :map, mapper ], [ :format, formatter ], [ :primitivize, primitivizer], [ :serialize, serializer ]] end