class Tinder::Campfire
Usage¶ ↑
campfire = Tinder::Campfire.new 'mysubdomain', :token => 'xyz' room = campfire.create_room 'New Room', 'My new campfire room to test tinder' room.speak 'Hello world!' room.destroy room = campfire.find_room_by_guest_hash 'abc123', 'John Doe' room.speak 'Hello world!'
Attributes
Public Class Methods
Create a new connection to the campfire account with the given
subdomain
.
Options:¶ ↑
-
:ssl
: use SSL for the connection, which is required if you have a Campfire SSL account.Defaults to true
-
:ssl_options
: SSL options passed to the underlaying Faraday connection. Allows to specify if the SSL certificate should be verified (:verify => true|false) and to specify the path to the ssl certs directory (:ca_path => “path/certs”)Defaults to {:verify => true}
-
:proxy
: a proxy URI. (e.g. :proxy => 'user:pass@example.com:8000')c = ::new(“mysubdomain”, :ssl => true)
# File lib/tinder/campfire.rb, line 26 def initialize(subdomain, options = {}) @connection = Connection.new(subdomain, options) end
Public Instance Methods
Creates and returns a new Room with the given
name
and optionally a topic
# File lib/tinder/campfire.rb, line 63 def create_room(name, topic = nil) connection.post('/rooms.json', { :room => { :name => name, :topic => topic } }) find_room_by_name(name) end
# File lib/tinder/campfire.rb, line 68 def find_or_create_room_by_name(name) find_room_by_name(name) || create_room(name) end
Find a campfire room by its guest hash
# File lib/tinder/campfire.rb, line 58 def find_room_by_guest_hash(hash, name) rooms.detect { |room| room.guest_invite_code == hash } end
Find a campfire room by id NOTE: id should be of type Integer
# File lib/tinder/campfire.rb, line 47 def find_room_by_id(id) id = id.to_i rooms.detect { |room| room.id == id } end
Find a campfire room by name
# File lib/tinder/campfire.rb, line 53 def find_room_by_name(name) rooms.detect { |room| room.name == name } end
get the user info of the current user
# File lib/tinder/campfire.rb, line 78 def me connection.get("/users/me.json")["user"] end
Get an array of all rooms user is present in
# File lib/tinder/campfire.rb, line 39 def presence connection.get('/presence.json')['rooms'].map do |room| Room.new(connection, room) end end
Get an array of all the available rooms TODO: detect rooms that are full (no link)
# File lib/tinder/campfire.rb, line 32 def rooms connection.get('/rooms.json')['rooms'].map do |room| Room.new(connection, room) end end
List the users that are currently chatting in any room
# File lib/tinder/campfire.rb, line 73 def users rooms.map(&:users).flatten.compact.uniq.sort_by {|u| u[:name]} end