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 +4 -4
- data/README.md +62 -1
- data/lib/gitter.rb +1 -0
- data/lib/gitter/client.rb +23 -0
- data/lib/gitter/client/messages.rb +25 -0
- data/lib/gitter/client/rooms.rb +35 -0
- data/lib/gitter/client/users.rb +49 -0
- data/lib/gitter/version.rb +1 -1
- data/ruby-gitter.gemspec +3 -0
- metadata +49 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4aed1c5e61a5143fb8278408770752afc003502
|
4
|
+
data.tar.gz: ea7923477ab5234ed3dc1915901d2022199ae373
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
|
data/lib/gitter.rb
CHANGED
@@ -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
|
data/lib/gitter/version.rb
CHANGED
data/ruby-gitter.gemspec
CHANGED
@@ -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
|
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:
|
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.
|
122
|
+
rubygems_version: 2.4.5
|
77
123
|
signing_key:
|
78
124
|
specification_version: 4
|
79
125
|
summary: Ruby Gitter API Client
|