Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Merge pull request #27 from Keithbsmiley/data-fix

Make sure data exists before using it
latest commit 9e13dc3399
@EmmanuelOga authored
Failed to load latest commit information.
examples updating examples
log ignore logs from the specs run
spec use thin for specs
.gitignore Gems shouldn't keep Gemfile.lock in source
Gemfile use https in rubygems source
LICENSE updated docs
Rakefile updating to rspec 2.x
firering.gemspec Release 1.4.2


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 ="http://#{subdomain}") do |c|
  c.login = login
  c.password = password
  c.max_retries = 10 # default to -1, which means perform connection retries on drop forever.
end do
  conn.authenticate do |user|
    conn.rooms do |rooms|

      rooms.each do |room|
        if == "Room Name"

 do |message|
            message.user { |user| puts "#{user}: #{message}" }



  trap("INT") { EM.stop }

Specifying connection options:

An user agent can be specified. HTTP Options correspond to EM::HTTPRequest options:

conn ="http://#{subdomain}") do |conn|
  conn.user_agent = "My Cool App 1.0"
  conn.http_options = {
    proxy: {
      host: url,
      port: port,
      authorization: [username, password]


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:


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.


  • 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.




Copyright (c) 2013 Emmanuel Oga. See LICENSE for details.

Something went wrong with that request. Please try again.