Sha256: 13cd7cfaa1c25919ad11161bf5614cfb03305cc2606728a8f9ddffdb30bb86e6

Contents?: true

Size: 546 Bytes

Versions: 8

Compression:

Stored size: 546 Bytes

Contents

module Twiglet
  class Message < Hash
    def initialize(msg)
      case msg
      when String
        self[:message] = msg
      when Hash
        replace(msg.transform_keys!(&:to_sym))
      end

      validate!
    end

    private

    def validate!
      raise 'Message must be initialized with a String or a non-empty Hash' if empty?

      raise 'Log object must have a \'message\' property' unless self[:message]

      raise 'The \'message\' property of the log object must not be empty' if self[:message].strip.empty?
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
twiglet-3.0.5 lib/twiglet/message.rb
twiglet-3.0.4 lib/twiglet/message.rb
twiglet-3.0.3 lib/twiglet/message.rb
twiglet-3.0.2 lib/twiglet/message.rb
twiglet-3.0.1 lib/twiglet/message.rb
twiglet-3.0.0 lib/twiglet/message.rb
twiglet-2.4.0 lib/twiglet/message.rb
twiglet-2.3.11 lib/twiglet/message.rb