Sha256: d6824c68f09df19e40a8f044aa438d41a0c26d58831fc79d3be5c8fb108e254d

Contents?: true

Size: 867 Bytes

Versions: 3

Compression:

Stored size: 867 Bytes

Contents

module LetterGenerator
  class Metadata
    private

    attr_reader :data

    public

    def initialize(data)
      @data = data
    end

    def from
      @from ||= Sender.new(data[:from])
    end

    def to
      @to ||= [data[:to]].flatten.map { |t| Addressee.new(t) }
    end

    def opening
      data.fetch(:opening, 'Sehr geehrte Damen und Herren,')
    end

    def closing
      data.fetch(:closing, 'Mit freundlichen Grüßen')
    end

    def attachments
      Array(data[:attachments])
    end

    def postscriptum
      data[:postscriptum]
    end

    def text
      data[:text]
    end

    def signature
      data[:signature]
    end

    def subject
      data[:subject]
    end

    %i(subject signature postscriptum text attachments closing opening).each do |m|
      define_method "#{m}?" do
        !m.blank?
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
letter_generator-0.2.2 lib/letter_generator/metadata.rb
letter_generator-0.2.1 lib/letter_generator/metadata.rb
letter_generator-0.2.0 lib/letter_generator/metadata.rb