Sha256: 6edc0f420caab76a56da786998445c8f8acf3b0cb4167205e718596ddbe88b6a

Contents?: true

Size: 1.32 KB

Versions: 5

Compression:

Stored size: 1.32 KB

Contents

module Trumpet
  class Transmitter
    @@attributes = [
      :transmitter_id,
      :source_url,
      :tags,
      :location_string,
      :channel,
      :lat,
      :lng,
      :radius,
      :public,
      :created_at,
      :updated_at,
    ]
    
    attr_reader *@@attributes
    
    def self.create(options)
      Transmitter.new(Trumpet::Request.post('transmitters', :parameters => options))
    end
    
    def self.find(id)
      Transmitter.new(Trumpet::Request.get("/transmitters/#{id}"))
    end
    
    def self.all_by_user(name)
      transmitters = Trumpet::Request.get("/users/#{name}/transmitters")
      transmitters.map { |attributes| Trumpet::Transmitter.new(attributes) }
    end
    
    def delete
      Trumpet::Request.delete("/transmitters/#{@id}")
    end
    
    def listeners
      listeners = Trumpet::Request.get("/transmitters/#{@id}/listeners")
      listeners.map { |attributes| Listener.new(attributes) }
    end
    
    def broadcast(message)
      Trumpet::Request.post("/transmitters/#{@transmitter_id}/messages", :parameters => message.to_h, :parse_response => false)
    end
    
    
    protected
    
      def initialize(attributes)
        @@attributes.each do |attr|
          self.instance_variable_set(:"@#{attr.to_s}", attributes[attr.to_s]) if attributes[attr.to_s]
        end
      end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
trumpet-trumpet-0.0.5 lib/trumpet/transmitter.rb
trumpet-trumpet-0.0.6 lib/trumpet/transmitter.rb
trumpet-trumpet-0.0.7 lib/trumpet/transmitter.rb
trumpet-trumpet-0.0.8 lib/trumpet/transmitter.rb
trumpet-trumpet-0.0.9 lib/trumpet/transmitter.rb