Sha256: 4db21a3ff9e4acf57393edf30aacd87704e4a31cd0ba34939314e34ac537a865

Contents?: true

Size: 742 Bytes

Versions: 2

Compression:

Stored size: 742 Bytes

Contents

module Firetower
  class Event
    attr_accessor :attributes
    attr_accessor :room
    attr_accessor :created_at, :body, :id, :user_id, :type

    def self.parse(json)
      new(JSON.parse(json))
    end

    def initialize(attributes)
      @attributes = attributes
      @attributes.each do |key, value|
        send("#{key}=", value) if respond_to?("#{key}=")
      end
    end

    def [](key)
      @attributes[key]
    end

    def []=(key, value)
      @attributes[key] = value
    end

    def text?
      self.type == 'TextMessage'
    end

    def sound?
      self.type == 'SoundMessage'
    end

    def timestamp?
      self.type == 'TimestampMessage'
    end

    def =~(pattern)
      self.body =~ pattern
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
firetower-0.1.1 lib/firetower/event.rb
firetower-0.1.0 lib/firetower/event.rb