Sha256: 4f2501fd28e479976061fb0c0deea8b8fd113da2b14221592ef6f4ed52b0e091
Contents?: true
Size: 1.68 KB
Versions: 6
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true require "dry/core/equalizer" module Hanami class View # @api private class RenderEnvironment def self.prepare(renderer, config, context) new( renderer: renderer, inflector: config.inflector, context: context, scope_builder: config.scope_builder.new(namespace: config.scope_namespace), part_builder: config.part_builder.new(namespace: config.part_namespace) ) end include Dry::Equalizer(:renderer, :inflector, :context, :scope_builder, :part_builder) attr_reader :renderer, :inflector, :context, :scope_builder, :part_builder def initialize(renderer:, inflector:, context:, scope_builder:, part_builder:) @renderer = renderer @inflector = inflector @context = context.for_render_env(self) @scope_builder = scope_builder.for_render_env(self) @part_builder = part_builder.for_render_env(self) end def format renderer.format end def part(name, value, **options) part_builder.(name, value, **options) end def scope(name = nil, locals) # rubocop:disable Style/OptionalArguments scope_builder.(name, locals) end def template(name, scope, &block) renderer.template(name, scope, &block) end def partial(name, scope, &block) renderer.partial(name, scope, &block) end def chdir(dirname) self.class.new( renderer: renderer.chdir(dirname), inflector: inflector, context: context, scope_builder: scope_builder, part_builder: part_builder ) end end end end
Version data entries
6 entries across 6 versions & 1 rubygems