bearychat 0.1.1 → 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.
- checksums.yaml +4 -4
- data/README.md +9 -2
- data/bearychat.gemspec +4 -4
- data/lib/bearychat.rb +6 -2
- data/lib/bearychat/http_client.rb +28 -0
- data/lib/bearychat/incoming.rb +10 -8
- data/lib/bearychat/rtm.rb +20 -0
- data/lib/bearychat/version.rb +1 -1
- data/test/bearychat_test.rb +9 -1
- metadata +18 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa75af3b5931b83cbee5afec197fcb2506e3f2e5
|
4
|
+
data.tar.gz: 798ba9cf67611d852bb1e43b274181bdfdf65d13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5ada8b922ab289acd9f5b15dbf358b2c58c1eb3aa3e382a6a1a874f2f611d33320cb8d50ecc672cf90efaec8fc65f6a64349de2f47568552fb05946164ea3a7
|
7
|
+
data.tar.gz: 66d1eadf0ea279ae1d74f558600956dc94e52538cda4734ce027c9130ce82fd4e0f6e1cfd7e1984f04333d752e953adb532c90fb2e6d51edfb7d396c2e81c614
|
data/README.md
CHANGED
@@ -20,10 +20,18 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
###
|
23
|
+
### Incoming
|
24
24
|
|
25
25
|
Check bearychat [incoming API](https://github.com/bearyinnovative/bearychat-tutorial/blob/master/robots/incoming.md)
|
26
26
|
|
27
|
+
```
|
28
|
+
require 'bearychat'
|
29
|
+
incoming = Bearychat.incoming('hook_uri')
|
30
|
+
incoming.send { text: '...', ... }
|
31
|
+
```
|
32
|
+
|
33
|
+
or
|
34
|
+
|
27
35
|
```
|
28
36
|
require 'bearychat'
|
29
37
|
incoming = Bearychat.incoming('hook_uri')
|
@@ -68,4 +76,3 @@ set :bearychat_starting_color
|
|
68
76
|
## License
|
69
77
|
|
70
78
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
71
|
-
|
data/bearychat.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.email = ["ifunafu@gmail.com"]
|
10
10
|
|
11
11
|
spec.summary = %q{Simple ruby library to interact with Bearychat}
|
12
|
-
spec.description = %q{
|
12
|
+
spec.description = %q{Use bearychat's incoming/rtm API, work with capistrano}
|
13
13
|
spec.homepage = "https://github.com/pokka/bearychat-rb"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "
|
21
|
+
spec.add_dependency "faraday", "~> 0.9"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
-
spec.add_development_dependency "minitest"
|
26
|
-
spec.add_development_dependency "webmock"
|
25
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
26
|
+
spec.add_development_dependency "webmock", "~> 1.0"
|
27
27
|
end
|
data/lib/bearychat.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
|
3
|
+
module Bearychat
|
4
|
+
class HttpClient
|
5
|
+
attr_accessor :conn, :url
|
6
|
+
|
7
|
+
def initialize(url)
|
8
|
+
self.conn = build_conn(url)
|
9
|
+
end
|
10
|
+
|
11
|
+
def post_json(body)
|
12
|
+
conn.post do |req|
|
13
|
+
req.headers['Content-Type'] = 'application/json'
|
14
|
+
req.body = body
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def build_conn(url)
|
20
|
+
Faraday.new(url, ssl: {}) do |faraday|
|
21
|
+
faraday.request :url_encoded
|
22
|
+
faraday.response :logger
|
23
|
+
faraday.adapter Faraday.default_adapter
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/lib/bearychat/incoming.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
require 'httparty'
|
2
1
|
require 'ostruct'
|
2
|
+
require 'bearychat/http_client'
|
3
|
+
require 'json'
|
3
4
|
|
4
5
|
module Bearychat
|
5
6
|
class Incoming < OpenStruct
|
6
|
-
include HTTParty
|
7
7
|
|
8
8
|
DEFAULT_PARAMS = {
|
9
9
|
text: "text, this field may accept markdown",
|
10
|
-
markdown:
|
10
|
+
markdown: true,
|
11
11
|
channel: "",
|
12
12
|
attachments: []
|
13
13
|
}
|
14
14
|
|
15
|
-
attr_reader :
|
15
|
+
attr_reader :http_client
|
16
16
|
|
17
17
|
def initialize(hook, info={})
|
18
|
-
@
|
18
|
+
@http_client = HttpClient.new(hook)
|
19
19
|
super(DEFAULT_PARAMS.merge(info))
|
20
20
|
end
|
21
21
|
|
@@ -24,12 +24,14 @@ module Bearychat
|
|
24
24
|
self
|
25
25
|
end
|
26
26
|
|
27
|
-
def send
|
27
|
+
def send(body = {})
|
28
28
|
if block_given?
|
29
29
|
yield self
|
30
30
|
send()
|
31
|
+
elsif !body.empty?
|
32
|
+
http_client.post_json(body.to_json)
|
31
33
|
else
|
32
|
-
|
34
|
+
http_client.post_json(as_json)
|
33
35
|
end
|
34
36
|
end
|
35
37
|
|
@@ -44,4 +46,4 @@ module Bearychat
|
|
44
46
|
end
|
45
47
|
|
46
48
|
end
|
47
|
-
end
|
49
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'bearychat/http_client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Bearychat
|
5
|
+
class RTM
|
6
|
+
MESSAGE_URL = "https://rtm.bearychat.com/message"
|
7
|
+
|
8
|
+
attr_accessor :token, :http_client
|
9
|
+
|
10
|
+
def initialize(token)
|
11
|
+
self.http_client = HttpClient.new(MESSAGE_URL)
|
12
|
+
self.token = token
|
13
|
+
end
|
14
|
+
|
15
|
+
def send(message)
|
16
|
+
http_client.post_json({ token: token }.merge(message).to_json)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
data/lib/bearychat/version.rb
CHANGED
data/test/bearychat_test.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_helper'
|
2
|
+
require 'bearychat/rtm'
|
2
3
|
|
3
4
|
class BearychatTest < Minitest::Test
|
4
5
|
MOCK_HOOK_URI = 'https://hook.bearychat.com/mock/incoming/hook'
|
@@ -12,8 +13,15 @@ class BearychatTest < Minitest::Test
|
|
12
13
|
end
|
13
14
|
|
14
15
|
def test_incoming_send
|
15
|
-
incoming_stub = stub_request(:post, MOCK_HOOK_URI).with(body: hash_including(:
|
16
|
+
incoming_stub = stub_request(:post, MOCK_HOOK_URI).with(body: hash_including(:text))
|
16
17
|
::Bearychat.incoming(MOCK_HOOK_URI).send
|
17
18
|
assert_requested(incoming_stub)
|
18
19
|
end
|
20
|
+
|
21
|
+
def test_rtm_send
|
22
|
+
rtm_stub = stub_request(:post, Bearychat::RTM::MESSAGE_URL).with(body: hash_including(:token))
|
23
|
+
token = 'TOKEN'
|
24
|
+
::Bearychat.rtm(token).send text: 'test'
|
25
|
+
assert_requested(rtm_stub)
|
26
|
+
end
|
19
27
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bearychat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pokka
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.9'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: '0.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,31 +56,31 @@ dependencies:
|
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '5.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '5.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: webmock
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
75
|
+
version: '1.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
description:
|
82
|
+
version: '1.0'
|
83
|
+
description: Use bearychat's incoming/rtm API, work with capistrano
|
84
84
|
email:
|
85
85
|
- ifunafu@gmail.com
|
86
86
|
executables: []
|
@@ -100,7 +100,9 @@ files:
|
|
100
100
|
- lib/bearychat.rb
|
101
101
|
- lib/bearychat/capistrano.rb
|
102
102
|
- lib/bearychat/capistrano/tasks/bearychat.rake
|
103
|
+
- lib/bearychat/http_client.rb
|
103
104
|
- lib/bearychat/incoming.rb
|
105
|
+
- lib/bearychat/rtm.rb
|
104
106
|
- lib/bearychat/version.rb
|
105
107
|
- test/bearychat_test.rb
|
106
108
|
- test/test_helper.rb
|
@@ -124,8 +126,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
126
|
version: '0'
|
125
127
|
requirements: []
|
126
128
|
rubyforge_project:
|
127
|
-
rubygems_version: 2.
|
129
|
+
rubygems_version: 2.4.5.1
|
128
130
|
signing_key:
|
129
131
|
specification_version: 4
|
130
132
|
summary: Simple ruby library to interact with Bearychat
|
131
133
|
test_files: []
|
134
|
+
has_rdoc:
|