bearychat 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: