slack-api 0.0.4 → 1.0.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.
@@ -0,0 +1,29 @@
1
+ # This file was auto-generated by lib/generators/tasks/generate.rb
2
+
3
+ module Slack
4
+ module Endpoint
5
+ module Oauth
6
+ #
7
+ # Exchanges a temporary OAuth code for an API token.
8
+ #
9
+ # @option options [Object] :client_id
10
+ # Issued when you created your application.
11
+ # @option options [Object] :client_secret
12
+ # Issued when you created your application.
13
+ # @option options [Object] :code
14
+ # The `code` param returned via the OAuth callback.
15
+ # @option options [Object] :redirect_uri
16
+ # This must match the originally submitted URI (if one was sent).
17
+ # @see https://api.slack.com/methods/oauth.access
18
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/oauth.access.md
19
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/oauth.access.json
20
+ def oauth_access(options={})
21
+ throw ArgumentError.new("Required arguments :client_id missing") if options[:client_id].nil?
22
+ throw ArgumentError.new("Required arguments :client_secret missing") if options[:client_secret].nil?
23
+ throw ArgumentError.new("Required arguments :code missing") if options[:code].nil?
24
+ post("oauth.access", options)
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by lib/generators/tasks/generate.rb
2
+
3
+ module Slack
4
+ module Endpoint
5
+ module Presence
6
+ #
7
+ # Manually set user presence
8
+ #
9
+ # @option options [Object] :presence
10
+ # Either `active` or `away`
11
+ # @see https://api.slack.com/methods/presence.set
12
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/presence.set.md
13
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/presence.set.json
14
+ def presence_set(options={})
15
+ throw ArgumentError.new("Required arguments :presence missing") if options[:presence].nil?
16
+ post("presence.set", options)
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,65 @@
1
+ # This file was auto-generated by lib/generators/tasks/generate.rb
2
+
3
+ module Slack
4
+ module Endpoint
5
+ module Search
6
+ #
7
+ # Searches for messages and files matching a query.
8
+ #
9
+ # @option options [Object] :query
10
+ # Search query. May contains booleans, etc.
11
+ # @option options [Object] :sort
12
+ # Return matches sorted by either `score` or `timestamp`.
13
+ # @option options [Object] :sort_dir
14
+ # Change sort direction to ascending (`asc`) or descending (`desc`).
15
+ # @option options [Object] :highlight
16
+ # Pass a value of `1` to enable query highlight markers (see below).
17
+ # @see https://api.slack.com/methods/search.all
18
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.all.md
19
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.all.json
20
+ def search_all(options={})
21
+ throw ArgumentError.new("Required arguments :query missing") if options[:query].nil?
22
+ post("search.all", options)
23
+ end
24
+
25
+ #
26
+ # Searches for files matching a query.
27
+ #
28
+ # @option options [Object] :query
29
+ # Search query. May contains booleans, etc.
30
+ # @option options [Object] :sort
31
+ # Return matches sorted by either `score` or `timestamp`.
32
+ # @option options [Object] :sort_dir
33
+ # Change sort direction to ascending (`asc`) or descending (`desc`).
34
+ # @option options [Object] :highlight
35
+ # Pass a value of `1` to enable query highlight markers (see below).
36
+ # @see https://api.slack.com/methods/search.files
37
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.files.md
38
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.files.json
39
+ def search_files(options={})
40
+ throw ArgumentError.new("Required arguments :query missing") if options[:query].nil?
41
+ post("search.files", options)
42
+ end
43
+
44
+ #
45
+ # Searches for messages matching a query.
46
+ #
47
+ # @option options [Object] :query
48
+ # Search query. May contains booleans, etc.
49
+ # @option options [Object] :sort
50
+ # Return matches sorted by either `score` or `timestamp`.
51
+ # @option options [Object] :sort_dir
52
+ # Change sort direction to ascending (`asc`) or descending (`desc`).
53
+ # @option options [Object] :highlight
54
+ # Pass a value of `1` to enable query highlight markers (see below).
55
+ # @see https://api.slack.com/methods/search.messages
56
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.messages.md
57
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/search.messages.json
58
+ def search_messages(options={})
59
+ throw ArgumentError.new("Required arguments :query missing") if options[:query].nil?
60
+ post("search.messages", options)
61
+ end
62
+
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by lib/generators/tasks/generate.rb
2
+
3
+ module Slack
4
+ module Endpoint
5
+ module Stars
6
+ #
7
+ # Lists stars for a user.
8
+ #
9
+ # @option options [user] :user
10
+ # Show stars by this user. Defaults to the authed user.
11
+ # @see https://api.slack.com/methods/stars.list
12
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/stars.list.md
13
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/stars.list.json
14
+ def stars_list(options={})
15
+ post("stars.list", options)
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,67 @@
1
+ # This file was auto-generated by lib/generators/tasks/generate.rb
2
+
3
+ module Slack
4
+ module Endpoint
5
+ module Users
6
+ #
7
+ # Gets user presence information.
8
+ #
9
+ # @option options [user] :user
10
+ # User to get presence info on. Defaults to the authed user.
11
+ # @see https://api.slack.com/methods/users.getPresence
12
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.getPresence.md
13
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.getPresence.json
14
+ def users_getPresence(options={})
15
+ throw ArgumentError.new("Required arguments :user missing") if options[:user].nil?
16
+ post("users.getPresence", options)
17
+ end
18
+
19
+ #
20
+ # Gets information about a user.
21
+ #
22
+ # @option options [user] :user
23
+ # User to get info on
24
+ # @see https://api.slack.com/methods/users.info
25
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.info.md
26
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.info.json
27
+ def users_info(options={})
28
+ throw ArgumentError.new("Required arguments :user missing") if options[:user].nil?
29
+ post("users.info", options)
30
+ end
31
+
32
+ #
33
+ # Lists all users in a Slack team.
34
+ #
35
+ # @see https://api.slack.com/methods/users.list
36
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.list.md
37
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.list.json
38
+ def users_list(options={})
39
+ post("users.list", options)
40
+ end
41
+
42
+ #
43
+ # Marks a user as active.
44
+ #
45
+ # @see https://api.slack.com/methods/users.setActive
46
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.setActive.md
47
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.setActive.json
48
+ def users_setActive(options={})
49
+ post("users.setActive", options)
50
+ end
51
+
52
+ #
53
+ # Manually sets user presence.
54
+ #
55
+ # @option options [Object] :presence
56
+ # Either `auto` or `away`
57
+ # @see https://api.slack.com/methods/users.setPresence
58
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.setPresence.md
59
+ # @see https://github.com/slackhq/slack-api-docs/blob/master/methods/users.setPresence.json
60
+ def users_setPresence(options={})
61
+ throw ArgumentError.new("Required arguments :presence missing") if options[:presence].nil?
62
+ post("users.setPresence", options)
63
+ end
64
+
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,40 @@
1
+ require 'faye/websocket'
2
+ require 'eventmachine'
3
+
4
+ module Slack
5
+ module RealTime
6
+ class Client
7
+ def initialize(url)
8
+ @url = url
9
+ @callbacks ||= {}
10
+ end
11
+
12
+ def on(type, &block)
13
+ @callbacks[type] ||= []
14
+ @callbacks[type] << block
15
+ end
16
+
17
+ def start
18
+ EM.run do
19
+ ws = Faye::WebSocket::Client.new(@url)
20
+
21
+ ws.on :open do |event|
22
+ end
23
+
24
+ ws.on :message do |event|
25
+ data = JSON.parse(event.data)
26
+ if !data["type"].nil? && !@callbacks[data["type"].to_sym].nil?
27
+ @callbacks[data["type"].to_sym].each do |c|
28
+ c.call data
29
+ end
30
+ end
31
+ end
32
+
33
+ ws.on :close do |event|
34
+ ws = nil
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,3 +1,3 @@
1
1
  module Slack
2
- VERSION = "0.0.4"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -20,9 +20,14 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.5"
22
22
  spec.add_development_dependency "rspec", "~> 2.4"
23
- spec.add_development_dependency "webmock", "~> 1.6"
24
- spec.add_runtime_dependency "faraday", [">= 0.7", "<= 0.9"]
23
+ spec.add_development_dependency "webmock", "~> 1.6"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency 'erubis', '~> 2.7.0'
26
+ spec.add_development_dependency "json-schema"
27
+ spec.add_development_dependency "pry"
28
+
29
+ spec.add_runtime_dependency "faraday", [">= 0.7", "<= 0.9"]
25
30
  spec.add_runtime_dependency "faraday_middleware", "~> 0.8"
26
- spec.add_runtime_dependency "multi_json", ">= 1.0.3", "~> 1.0"
31
+ spec.add_runtime_dependency "multi_json", ">= 1.0.3", "~> 1.0"
32
+ spec.add_runtime_dependency "faye-websocket", "~> 0.9.2"
27
33
  end
28
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - aki017
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-17 00:00:00.000000000 Z
11
+ date: 2015-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,62 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
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: erubis
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.7.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 2.7.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: json-schema
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
55
111
  - !ruby/object:Gem::Dependency
56
112
  name: faraday
57
113
  requirement: !ruby/object:Gem::Requirement
@@ -106,6 +162,20 @@ dependencies:
106
162
  - - "~>"
107
163
  - !ruby/object:Gem::Version
108
164
  version: '1.0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: faye-websocket
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: 0.9.2
172
+ type: :runtime
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: 0.9.2
109
179
  description: A Ruby wrapper for the Slack API
110
180
  email:
111
181
  - aki@aki017.info
@@ -114,18 +184,38 @@ extensions: []
114
184
  extra_rdoc_files: []
115
185
  files:
116
186
  - ".gitignore"
187
+ - ".gitmodules"
117
188
  - ".rspec"
118
189
  - Gemfile
119
190
  - LICENSE.txt
120
191
  - README.md
121
192
  - Rakefile
122
193
  - lib/faraday/raise_http_exception.rb
194
+ - lib/generators/schema.json
195
+ - lib/generators/tasks/generate.rb
196
+ - lib/generators/templates/endpoint.rb.erb
197
+ - lib/generators/templates/method.rb.erb
123
198
  - lib/slack.rb
124
199
  - lib/slack/api.rb
125
200
  - lib/slack/client.rb
126
201
  - lib/slack/configuration.rb
127
202
  - lib/slack/connection.rb
203
+ - lib/slack/endpoint.rb
204
+ - lib/slack/endpoint/api.rb
205
+ - lib/slack/endpoint/auth.rb
206
+ - lib/slack/endpoint/channels.rb
207
+ - lib/slack/endpoint/chat.rb
208
+ - lib/slack/endpoint/emoji.rb
209
+ - lib/slack/endpoint/files.rb
210
+ - lib/slack/endpoint/groups.rb
211
+ - lib/slack/endpoint/im.rb
212
+ - lib/slack/endpoint/oauth.rb
213
+ - lib/slack/endpoint/presence.rb
214
+ - lib/slack/endpoint/search.rb
215
+ - lib/slack/endpoint/stars.rb
216
+ - lib/slack/endpoint/users.rb
128
217
  - lib/slack/error.rb
218
+ - lib/slack/realtime/client.rb
129
219
  - lib/slack/request.rb
130
220
  - lib/slack/version.rb
131
221
  - slack.gemspec