ruby-gitter 0.0.1 → 0.1.0

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: d3b6546d27702e06cec66c1bd67ac98ce92847fa
4
- data.tar.gz: 9083d6002484680a6bdabb83fb3f7bc3c9bbd17c
3
+ metadata.gz: a4aed1c5e61a5143fb8278408770752afc003502
4
+ data.tar.gz: ea7923477ab5234ed3dc1915901d2022199ae373
5
5
  SHA512:
6
- metadata.gz: b950f908347c4e668b357c592b0fced653bd70037f037e05a2c292e1ed4d4e8bca92e612bfc848116bcf2bea87795bfc0702083c6740901d0637975a8ee6a72a
7
- data.tar.gz: 8399b98a2ab6df5e23ad0832d2d11a37af254bfa09771638b8aa1375a0e153e39cb396b0256437b165868b5d1df0067a865babece5a0fd39dce5f47a2c1acc92
6
+ metadata.gz: 54f1a9523ee6a7a40fdfb78a8b4d0ef0ed9b839273e39944234bae9a594d4debb51c67812e8cab74ddd7f5ed683d884c7f43ae79aefaf2390b31610b332a93f2
7
+ data.tar.gz: dcd6e69336077727554baee9d5416000f6d52672ea7ee24b7865af78d58392201a884a786141046fa1b472d6bd733e10f7817b85c123cbaa342cacef92a2ac9b
data/README.md CHANGED
@@ -18,7 +18,68 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write usage instructions here
21
+ To create a new client:
22
+
23
+ ```ruby
24
+ require 'gitter'
25
+
26
+ # Create a new client
27
+ client = Gitter::Client.new('TOKEN')
28
+ ```
29
+
30
+ The following client methods are available
31
+
32
+ ### Rooms
33
+
34
+ ```ruby
35
+ # Get a list of rooms
36
+ client.rooms
37
+
38
+ # Get the users of a specific room
39
+ client.room_users('ROOM_ID')
40
+
41
+ # Get the room channels
42
+ client.room_channels('ROOM_ID')
43
+
44
+ # join a room
45
+ client.join_room('kristenmills/ruby-gitter')
46
+ ```
47
+
48
+ ### Messages
49
+
50
+ ```ruby
51
+ # Get a list of messages
52
+ client.messages('ROOM_ID', limit: 50)
53
+
54
+ # Send a message
55
+ client.send_message('Hello everyone', 'ROOM_ID')
56
+
57
+ #Update a message
58
+ client.update_message('Hello everybody', 'ROOM_ID', 'CHAT_ID')
59
+ ```
60
+
61
+ ### Users
62
+
63
+ ```ruby
64
+ # Get the current user
65
+ client.current_user
66
+
67
+ # Get the users rooms
68
+ client.user_rooms('USER_ID')
69
+
70
+ # Mark the following chats as read
71
+ client.user_read_messages('USER_ID', 'ROOM_ID', ['CHAT_ID1', 'CHAT_ID2'])
72
+
73
+ # Get the users organizations
74
+ client.user_orgs('USER_ID')
75
+
76
+ # Get the users repos
77
+ client.user_repos('USER_ID')
78
+
79
+ # Get the users channels
80
+ client.user_channels('USER_ID')
81
+ ```
82
+
22
83
 
23
84
  ## Contributing
24
85
 
@@ -1,4 +1,5 @@
1
1
  require "gitter/version"
2
+ require "gitter/client"
2
3
 
3
4
  module Gitter
4
5
  # Your code goes here...
@@ -0,0 +1,23 @@
1
+ require "httparty"
2
+ require "gitter/client/rooms"
3
+ require "gitter/client/messages"
4
+ require "gitter/client/users"
5
+
6
+ module Gitter
7
+ class Client
8
+ include HTTParty
9
+ include Gitter::Client::Rooms
10
+ include Gitter::Client::Messages
11
+ include Gitter::Client::Users
12
+
13
+ base_uri "https://api.gitter.im/v1"
14
+
15
+ def initialize(token)
16
+ @headers = {
17
+ "Content-Type" => "application/json",
18
+ "Accept" => "application/json",
19
+ "Authorization" => "Bearer #{token}"
20
+ }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ require 'hashie/mash'
2
+ require 'json'
3
+
4
+ module Gitter
5
+ class Client
6
+ module Messages
7
+
8
+ def messages(room_id, options={})
9
+ message_list = []
10
+ self.class.get("/rooms/#{room_id}/chatMessages", headers: @headers, query: options).each do |message|
11
+ message_list << Hashie::Mash.new(message)
12
+ end
13
+ message_list
14
+ end
15
+
16
+ def send_message(message, room_id)
17
+ Hashie::Mash.new(self.class.post("/rooms/#{room_id}/chatMessages", headers: @headers, body: { text: message }.to_json ))
18
+ end
19
+
20
+ def update_message(message, room_id, chat_id)
21
+ Hashie::Mash.new(self.class.put("/rooms/#{room_id}/chatMessages/#{chat_id}", headers: @headers, body: { text: message }.to_json ))
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,35 @@
1
+ require 'hashie/mash'
2
+
3
+ module Gitter
4
+ class Client
5
+ module Rooms
6
+ def rooms
7
+ room_list = []
8
+ self.class.get("/rooms", headers: @headers).each do |room|
9
+ room_list << Hashie::Mash.new(room)
10
+ end
11
+ room_list
12
+ end
13
+
14
+ def room_users(room_id)
15
+ user_list = []
16
+ self.class.get("/rooms/#{room_id}/users", headers: @headers).each do |user|
17
+ user_list << Hashie::Mash.new(user)
18
+ end
19
+ user_list
20
+ end
21
+
22
+ def room_channels(room_id)
23
+ channel_list = []
24
+ self.class.get("/rooms/#{room_id}/channels", headers: @headers).each do |channel|
25
+ channel_list << Hashie::Mash.new(channel)
26
+ end
27
+ channel_list
28
+ end
29
+
30
+ def join_room(uri)
31
+ Hashie::Mash.new(self.class.post("/rooms", headers: @headers, query: { uri: uri } ))
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,49 @@
1
+ require 'hashie/mash'
2
+ require 'json'
3
+
4
+ module Gitter
5
+ class Client
6
+ module Users
7
+
8
+ def current_user
9
+ Hashie::Mash.new(self.class.get("/user", headers: @headers)[0])
10
+ end
11
+
12
+ def user_rooms(user_id)
13
+ room_list = []
14
+ self.class.get("/user/#{user_id}/rooms", headers: @headers).each do |room|
15
+ room_list << Hashie::Mash.new(room)
16
+ end
17
+ room_list
18
+ end
19
+
20
+ def user_read_messages(user_id, room_id, chat_ids)
21
+ Hashie::Mash.new(self.class.post("/user/#{user_id}/rooms/#{room_id}/unreadItems", headers: @headers, body: { chat: chat_ids }.to_json))
22
+ end
23
+
24
+ def user_orgs(user_id)
25
+ org_list = []
26
+ self.class.get("/user/#{user_id}/orgs", headers: @headers).each do |org|
27
+ org_list << Hashie::Mash.new(org)
28
+ end
29
+ org_list
30
+ end
31
+
32
+ def user_repos(user_id)
33
+ repo_list = []
34
+ self.class.get("/user/#{user_id}/repos", headers: @headers).each do |repo|
35
+ repo_list << Hashie::Mash.new(repo)
36
+ end
37
+ repo_list
38
+ end
39
+
40
+ def user_channels(user_id)
41
+ channel_list = []
42
+ self.class.get("/user/#{user_id}/channels", headers: @headers).each do |channel|
43
+ channel_list << Hashie::Mash.new(channel)
44
+ end
45
+ channel_list
46
+ end
47
+ end
48
+ end
49
+ end
@@ -1,3 +1,3 @@
1
1
  module Gitter
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -20,4 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.5"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec"
24
+ spec.add_runtime_dependency "httparty"
25
+ spec.add_runtime_dependency "hashie"
23
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-gitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kristenmills
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-26 00:00:00.000000000 Z
11
+ date: 2015-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,48 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: httparty
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: hashie
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
41
83
  description: Ruby Gitter API Client
42
84
  email:
43
85
  - kristen@kristen-mills.com
@@ -51,6 +93,10 @@ files:
51
93
  - README.md
52
94
  - Rakefile
53
95
  - lib/gitter.rb
96
+ - lib/gitter/client.rb
97
+ - lib/gitter/client/messages.rb
98
+ - lib/gitter/client/rooms.rb
99
+ - lib/gitter/client/users.rb
54
100
  - lib/gitter/version.rb
55
101
  - ruby-gitter.gemspec
56
102
  homepage: https://github.com/kristenmills/ruby-gitter
@@ -73,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
119
  version: '0'
74
120
  requirements: []
75
121
  rubyforge_project:
76
- rubygems_version: 2.2.0
122
+ rubygems_version: 2.4.5
77
123
  signing_key:
78
124
  specification_version: 4
79
125
  summary: Ruby Gitter API Client