Sha256: 4fe878510001bbbb45e1e8cfe29665f3c2f0de422a748aa589419a9a0ce77022

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

module Hanami
  class View
    # @api private
    class Rendering
      attr_reader :config, :format

      attr_reader :inflector, :part_builder, :scope_builder

      attr_reader :context, :renderer

      def initialize(config:, format:, context:)
        @config = config
        @format = format

        @inflector = config.inflector
        @part_builder = config.part_builder
        @scope_builder = config.scope_builder

        @context = context.dup_for_rendering(self)
        @renderer = Renderer.new(config)
      end

      def template(name, scope, &block)
        renderer.template(name, format, scope, &block)
      end

      def partial(name, scope, &block)
        renderer.partial(name, format, scope, &block)
      end

      def part(name, value, as: nil)
        part_builder.(name, value, as: as, rendering: self)
      end

      def scope(name = nil, locals) # rubocop:disable Style/OptionalArguments
        scope_builder.(name, locals: locals, rendering: self)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hanami-view-2.1.0.rc1 lib/hanami/view/rendering.rb
hanami-view-2.1.0.beta2 lib/hanami/view/rendering.rb
hanami-view-2.1.0.beta1 lib/hanami/view/rendering.rb