firering
Campfire API interface powered by eventmachine, em-http-request and yajl-ruby.
Sample code
require 'firering'
print "Enter subdomain: "; subdomain = gets.chomp
print "Enter user: " ; login = gets.chomp
print "Enter password: " ; password = gets.chomp
conn = Firering::Connection.new("http://#{subdomain}.campfirenow.com") do |c|
c.login = login
c.password = password
c.max_retries = 10 # default to -1, which means perform connection retries on drop forever.
end
EM.run do
conn.authenticate do |user|
conn.rooms do |rooms|
rooms.each do |room|
if room.name == "Room Name"
room.stream do |message|
message.user { |user| puts "#{user}: #{message}" }
end
end
end
end
end
trap("INT") { EM.stop }
end
Specifying connection options:
An user agent can be specified. HTTP Options correspond to EM::HTTPRequest options:
conn = Firering::Connection.new("http://#{subdomain}.campfirenow.com") do |conn|
conn.user_agent = "My Cool App 1.0"
conn.http_options = {
proxy: {
host: url,
port: port,
authorization: [username, password]
}
}
end
campf-notif
The gem bundles an executable script for spawning libnotify powered notifications. To be able to use it, check your distro package repositories for the apropriate package containing the "notify-send" command line utility. In the case of archlinux, the package name is "libnotify".
The script needs the following environment variables in place:
CAMPFIRE_SUBDOMAIN CAMPFIRE_TOKEN
Once the variables are set, run the script as follows:
campf-notify room-name /path/to/an/icon.png
And watch the lovely notifications each time something is posted to a room.
Running the specs
When the specs are run a process is forked where a Rack application is run. This rack application serves all the fixtured responses that mimic the working of the real campfire app. The only caveat here is you may get a conflict if you are already running something on the port (8909). If this happens you'll need to open the specs/spec_helper.rb file and change the port used to run the fixtures server.
For more details take a look at spec/fixtures/load_server.rb file.
TODO
- Better API documentation
- Post files to a room
- Retrieve recently uploaded files
Note on Patches/Pull Requests
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send me a pull request. Bonus points for topic branches.
Contributors
See https://github.com/EmmanuelOga/firering/graphs/contributors
Copyright
Copyright (c) 2013 Emmanuel Oga. See LICENSE for details.