class Beacon

Attributes

api_key[RW]
host[RW]
secret_key[RW]
version[RW]

Public Class Methods

new(api_key, secret_key, options = {}) click to toggle source
# File lib/ruby-beaconpush.rb, line 9
def initialize(api_key, secret_key, options = {})
  @api_key    = api_key
  @secret_key = secret_key
  
  @host    = options[:host]    || 'api.beaconpush.com'
  @headers = options[:headers] || {}
  @version = options[:version] || '1.0.0'
end

Public Instance Methods

logout(username) click to toggle source
# File lib/ruby-beaconpush.rb, line 37
def logout(username)
  RestClient.delete("#{base_url}/users/#{username}", headers)
  username
end
online?(username) click to toggle source
# File lib/ruby-beaconpush.rb, line 31
def online?(username)
  response = RestClient.get("#{base_url}/users/#{username}", headers)
  JSON.load(response)['status'] == 200
end
publish(channel, data) click to toggle source
# File lib/ruby-beaconpush.rb, line 19
def publish(channel, data)
  RestClient.post("#{base_url}/channels/#{channel}", JSON.dump(data), headers)
  data
end
users(channel) click to toggle source
# File lib/ruby-beaconpush.rb, line 43
def users(channel)
  response = RestClient.get("#{base_url}/channels/#{channel}", headers)
  JSON.load(response)['users']
end
users_count() click to toggle source
# File lib/ruby-beaconpush.rb, line 25
def users_count
  response = RestClient.get("#{base_url}/users", headers)
  JSON.load(response)['online']
end
whisper(username, data) click to toggle source
# File lib/ruby-beaconpush.rb, line 49
def whisper(username, data)
  RestClient.post("#{base_url}/users/#{username}", JSON.dump(data), headers)
  data
end

Private Instance Methods

base_url() click to toggle source
# File lib/ruby-beaconpush.rb, line 57
def base_url
  "http://#{host}/#{version}/#{api_key}"
end
headers() click to toggle source
# File lib/ruby-beaconpush.rb, line 62
def headers
  { 'X-Beacon-Secret-Key' => secret_key }.merge(@headers)
end