Sha256: 7e6d7f5f3d17d8b2509ff37d3e5c50059081ab1a6c1e08dd4fd7bab19b7ba66e

Contents?: true

Size: 982 Bytes

Versions: 2

Compression:

Stored size: 982 Bytes

Contents

# frozen_string_literal: true

#
# Copyright (c) 2020-present, Blue Marble Payroll, LLC
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
#

module Burner
  class Jobs
    module Collection
      class Transform < Job
        # Composed of an Attribute instance and a Pipeline instance.  It knows how to
        # render/transform an Attribute.  Since this library is data-first, these intermediary
        # objects are necessary for non-data-centric modeling.
        class AttributeRenderer
          extend Forwardable

          attr_reader :attribute, :pipeline

          def_delegators :attribute, :key

          def_delegators :pipeline, :transform

          def initialize(attribute, resolver)
            @attribute = attribute
            @pipeline  = Realize::Pipeline.new(attribute.transformers, resolver: resolver)

            freeze
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
burner-1.0.0.pre.alpha.5 lib/burner/jobs/collection/transform/attribute_renderer.rb
burner-1.0.0.pre.alpha.4 lib/burner/jobs/collection/transform/attribute_renderer.rb