campfiyah 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d50e6cebc5f704d3bc802fd79863d83443533acc
4
- data.tar.gz: fcb9ae27fff12bedeab0c05869ebdf58c4b76ed2
3
+ metadata.gz: 138144f1c52be3e93efd7d421ef44c822d3c004c
4
+ data.tar.gz: a180497c63f6828db04609c648cd95cad7f3ae96
5
5
  SHA512:
6
- metadata.gz: f6c7256cda075ca3b550eec0f2635d1d5d545599f33e0ac3f67ec26e1188b79cc2c4e7467d9b60f30ae6345d751894029c1c788bb38c20ca910bc08bca4247f3
7
- data.tar.gz: fd1120c9b555532ad40131f1233a3d403e2e9d5099ce4144f95bbf77f75828af7d2954f88f6c5eac9a64f96b711b1b76495952de83dac8b6e61f207567d9cb1e
6
+ metadata.gz: 49069a3c5686d5fcd91c1aa792771e0daf80efe1ac5e5b84374ca2b0ccd75cdd26d00c50c8f8cf4051286215ceee8244e2171c51f9883e23dd082e443e385ed5
7
+ data.tar.gz: 369d5185d32df7117152a49e8a1c6b7703839da6ef670ff88786c92a7879a38ce08393242124acd138526790745eee72ba2773486042c20948acb1175c86dc21
data/README.md CHANGED
@@ -37,6 +37,15 @@ room = account.room_by_id(123456)
37
37
  room.message("woot")
38
38
  ```
39
39
 
40
+ Or you can find information on users
41
+
42
+ ```ruby
43
+ account = Campfiyah::Account.new(default_subdomain, default_token)
44
+ user = account.user_by_id(123456)
45
+ user.email
46
+ user.name
47
+ ```
48
+
40
49
  You can also enable the in-memory adapter for development or tests.
41
50
 
42
51
  ```ruby
@@ -26,4 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "bundler", "~> 1.3"
27
27
  spec.add_development_dependency "rake"
28
28
  spec.add_development_dependency "rspec"
29
+ spec.add_development_dependency "debugger"
29
30
  end
@@ -21,7 +21,11 @@ module Campfiyah
21
21
  end
22
22
 
23
23
  def room_by_id(id)
24
- rooms.find {|r| r.id.to_i == id.to_i}
24
+ if @rooms
25
+ rooms.find {|r| r.id.to_i == id.to_i}
26
+ else
27
+ @adapter.room_by_id(id)
28
+ end
25
29
  end
26
30
 
27
31
  def room_by_name(name)
@@ -18,4 +18,4 @@ module Campfiyah
18
18
  end
19
19
 
20
20
  require 'campfiyah/adapters/http'
21
- require 'campfiyah/adapters/memory'
21
+ require 'campfiyah/adapters/memory'
@@ -26,6 +26,14 @@ module Campfiyah
26
26
  rooms.sort { |a,b| b['updated_at'] <=> a['updated_at'] }
27
27
  end
28
28
 
29
+ def room_by_id(id)
30
+ room = nil
31
+ response = connection.get("/room/#{id}.json")
32
+ if response.status == 200
33
+ room = response.body["room"]
34
+ end
35
+ end
36
+
29
37
  def user_by_id(id)
30
38
  response = connection.get("/users/#{id}.json")
31
39
  if response.status == 200
@@ -5,6 +5,10 @@ module Campfiyah
5
5
  @rooms ||= Yajl.load(File.read("#{File.dirname(__FILE__)}/memory/rooms.json"))['rooms']
6
6
  end
7
7
 
8
+ def room_by_id(id)
9
+ @room ||= Yajl.load(File.read("#{File.dirname(__FILE__)}/memory/room.json"))['room']
10
+ end
11
+
8
12
  def user_by_id(id)
9
13
  hash = Yajl.load(File.read("#{File.dirname(__FILE__)}/memory/user.json"))['user']
10
14
  hash['id'] = id
@@ -0,0 +1 @@
1
+ {"room":{"full":false,"locked":false,"users":[{"type":"Member","email_address":"hubot@github.com","avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/missing/avatar.gif?r=3","admin":true,"name":"Hubot","created_at":"2008/04/12 01:08:29 +0000","id":307524},{"type":"Member","email_address":"atmos@atmos.org","avatar_url":"http://dge9rmgqjs8m1.cloudfront.net/global/d2f0470bc40603fa3c32d01018db49548fb7de7e/avatar.gif?r=3","admin":true,"name":"atmos","created_at":"2010/08/18 18:01:25 +0000","id":420}],"name":"The Danger Room","updated_at":"2013/09/26 20:27:25 +0000","open_to_guests":false,"created_at":"2011/02/07 22:36:38 +0000","topic":"Danger","id":123456}}
@@ -12,5 +12,14 @@ module Campfiyah
12
12
  def message(message)
13
13
  @adapter.message(id, message)
14
14
  end
15
+
16
+ def users
17
+ @users ||= users!
18
+ end
19
+
20
+ def users!
21
+ room = @adapter.room_by_id(id)
22
+ room['users'].map { |user| User.from_hash(user, @adapter) }
23
+ end
15
24
  end
16
- end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module Campfiyah
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -5,5 +5,16 @@ describe Campfiyah::Room do
5
5
  it "messages a channel" do
6
6
  pending
7
7
  end
8
+
9
+ it "finds users for a room" do
10
+ account = Campfiyah::Account.new(default_subdomain, default_token)
11
+ account.rooms.should_not be_empty
12
+
13
+ room = account.room_by_name("The Danger Room")
14
+ room.users.size.should eql(2)
15
+
16
+ room = account.room_by_id(123456)
17
+ room.name.should eql("The Danger Room")
18
+ end
8
19
  end
9
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: campfiyah
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Donohoe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-17 00:00:00.000000000 Z
11
+ date: 2013-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yajl-ruby
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: debugger
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: A simple faraday based Campfire API
112
126
  email:
113
127
  - atmos@atmos.org
@@ -126,6 +140,7 @@ files:
126
140
  - lib/campfiyah/adapters.rb
127
141
  - lib/campfiyah/adapters/http.rb
128
142
  - lib/campfiyah/adapters/memory.rb
143
+ - lib/campfiyah/adapters/memory/room.json
129
144
  - lib/campfiyah/adapters/memory/rooms.json
130
145
  - lib/campfiyah/adapters/memory/user.json
131
146
  - lib/campfiyah/room.rb
@@ -164,3 +179,4 @@ test_files:
164
179
  - spec/room_spec.rb
165
180
  - spec/spec_helper.rb
166
181
  - spec/user_spec.rb
182
+ has_rdoc: