diff --git a/lib/campfire/manager.rb b/lib/campfire/manager.rb index 4b1100b..38c7078 100644 --- a/lib/campfire/manager.rb +++ b/lib/campfire/manager.rb @@ -5,7 +5,17 @@ def initialize(options) end def rooms - @connection.get("/rooms.json")["rooms"].map do |room| + find_rooms 'rooms' + end + + def presence + find_rooms 'presence' + end + + private + + def find_rooms(path) + @connection.get("/#{path}.json")["rooms"].map do |room| Room.new(self, room) end end diff --git a/test/campfire/manager_test.rb b/test/campfire/manager_test.rb index 73f61fa..6ad8d28 100644 --- a/test/campfire/manager_test.rb +++ b/test/campfire/manager_test.rb @@ -4,6 +4,7 @@ class TestManager < MiniTest::Unit::TestCase def test_rooms manager = Campfire::Manager.new(:subdomain => "foo", :token => "123") rooms = manager.rooms + assert_equal 2, rooms.size room = rooms[0] assert_equal "Room 1", room.name @@ -15,4 +16,15 @@ def test_rooms assert_equal 214395, room.id assert_equal "RMU", room.topic end + + def test_rooms + manager = Campfire::Manager.new(:subdomain => "foo", :token => "123") + rooms = manager.presence + assert_equal 1, rooms.size + + room = rooms[0] + assert_equal "Room 2", room.name + assert_equal 214395, room.id + assert_equal "RMU", room.topic + end end diff --git a/test/fixtures/presence.json b/test/fixtures/presence.json new file mode 100644 index 0000000..6be1da2 --- /dev/null +++ b/test/fixtures/presence.json @@ -0,0 +1,13 @@ +{ + "rooms": [ + { + "name": "Room 2", + "created_at": "2010/01/09 23:25:15 +0000", + "updated_at": "2010/01/09 23:25:15 +0000", + "topic": "RMU", + "id": 214395, + "membership_limit": 4, + "locked": false + } + ] +} diff --git a/test/test_helper.rb b/test/test_helper.rb index 571ea33..4e653a6 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -14,3 +14,5 @@ def read_fixture(file_name) WebMock.disable_net_connect! WebMock.stub_request(:get, %r[https://123:X@.*\.campfirenow\.com/rooms\.json]). to_return(:body => read_fixture("rooms.json")) +WebMock.stub_request(:get, %r[https://123:X@.*\.campfirenow\.com/presence\.json]). + to_return(:body => read_fixture("presence.json"))