Sha256: c8810a23dd86556e90b9272cf16b3c18aff6292e2e496caf24560f37503655d2

Contents?: true

Size: 647 Bytes

Versions: 1

Compression:

Stored size: 647 Bytes

Contents

# frozen_string_literal: true

module DSN
  # Descriptions of each Subcode as per RFC3463
  class Message
    def initialize(subcode)
      @subcode = subcode
    end

    def summary
      data.first
    end

    def body
      data.last.gsub("\n", ' ').strip
    end

    def to_s
      [summary, body].join("\n\n")
    end

    protected

    attr_reader :subcode

    private

    def data
      @data ||= data!
    end

    def data!
      File.read(filepath).split("\n\n")
    rescue Errno::ENOENT
      raise InvalidSubcode, %("#{subcode}")
    end

    # TODO: Cleanup
    def filepath
      "#{__dir__}/data/#{subcode}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dsn-0.1.0 lib/dsn/message.rb