Sha256: 3a53bf25b262589e4983b450cdaf4b36a3fdea947ea88485e64c3d541e2ffb3d

Contents?: true

Size: 869 Bytes

Versions: 4

Compression:

Stored size: 869 Bytes

Contents

# frozen_string_literal: true

#
# Copyright (c) 2019-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 Proforma
  module Modeling
    class Pane
      # A line is a single label:value entry in a pane.
      class Line
        include Compiling::Compilable
        acts_as_hashable

        attr_writer :label, :value

        def initialize(label: '', value: '')
          @label = label
          @value = value
        end

        def label
          @label.to_s
        end

        def value
          @value.to_s
        end

        def compile(record, evaluator)
          self.class.new(
            label: evaluator.text(record, label),
            value: evaluator.text(record, value)
          )
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
proforma-1.0.2 lib/proforma/modeling/pane/line.rb
proforma-1.0.1 lib/proforma/modeling/pane/line.rb
proforma-1.0.0 lib/proforma/modeling/pane/line.rb
proforma-1.0.0.pre.alpha lib/proforma/modeling/pane/line.rb