ruby-gitter 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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