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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b8cfb87ff8df8fbdd1030961447dfcdb8e20c4c
4
- data.tar.gz: 77810e1f66a2b3f34661dddc9935f2b34dbdd92d
3
+ metadata.gz: fa75af3b5931b83cbee5afec197fcb2506e3f2e5
4
+ data.tar.gz: 798ba9cf67611d852bb1e43b274181bdfdf65d13
5
5
  SHA512:
6
- metadata.gz: f98ee031c177e45f578daf7808710790664b614f3f90f37fabc9af446f9848ed0509bf88d5ceb510c164648bf04073df97f37526b5ca872a13ab5f590051d285
7
- data.tar.gz: e536b7831e01eb8b126bc0e2cf7a218acffdb82dab356f8f30b35dabe70856f5ac9f7aad94aca4e3110634ca02c9368d12a7d109cb8f4054db9fb595875dc713
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
- ### Common
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
-
@@ -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{Simple ruby library to interact with Bearychat}
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 "httparty", "~> 0.13.1"
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
@@ -1,9 +1,13 @@
1
1
  require "bearychat/version"
2
- require "bearychat/incoming"
3
-
4
2
 
5
3
  module Bearychat
6
4
  def self.incoming(hook)
5
+ require 'bearychat/incoming'
7
6
  Incoming.new(hook)
8
7
  end
8
+
9
+ def self.rtm(token)
10
+ require 'bearychat/rtm'
11
+ RTM.new(token)
12
+ end
9
13
  end
@@ -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
@@ -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: false,
10
+ markdown: true,
11
11
  channel: "",
12
12
  attachments: []
13
13
  }
14
14
 
15
- attr_reader :hook
15
+ attr_reader :http_client
16
16
 
17
17
  def initialize(hook, info={})
18
- @hook = hook
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
- self.class.post(hook, body: { payload: as_json })
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
@@ -1,3 +1,3 @@
1
1
  module Bearychat
2
- VERSION = "0.1.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -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(:payload))
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.1.1
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: 2015-08-11 00:00:00.000000000 Z
11
+ date: 2016-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: httparty
14
+ name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.13.1
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.13.1
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: Simple ruby library to interact with Bearychat
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.2.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: