twinkle-client 0.2.0 → 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/.travis.yml +3 -3
- data/dip.yml +41 -0
- data/docker-compose.development.yml +18 -0
- data/docker-compose.yml +10 -0
- data/lib/twinkle/client.rb +7 -19
- data/lib/twinkle/client/http.rb +31 -0
- data/lib/twinkle/client/version.rb +1 -1
- data/twinkle-client.gemspec +1 -3
- metadata +25 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90efb73d8676e6dbc1186b9b6fce39e8acffe69d
|
4
|
+
data.tar.gz: 0c387177b62ffad7222ecca3290c084a1fa2d2d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 988766ff8845a10c82e5d8a1b0ad93f4b804eed698e86fa533f558c537b25b5c1632b270c67541365afd3ebe6fd8c5b53f8070910cc5ad430740bc0035cb0227
|
7
|
+
data.tar.gz: 16cf2245b65a733eef5df1eda33867131a815a2be7f9e7f88267de812f723c6967cd8bb58fe3627776f189fbe6408b5c236fb5e7308b7d91e6ce5f650f21ddc0
|
data/.travis.yml
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
-
|
4
|
-
- 2.3.
|
3
|
+
- 2.2.6
|
4
|
+
- 2.3.3
|
5
5
|
addons:
|
6
6
|
code_climate:
|
7
7
|
repo_token: ddf20deeb83c1502bf853910191b995e869ada3c5e00996a14d1eedd355b1c55
|
8
|
-
before_install: gem install bundler -v 1.
|
8
|
+
before_install: gem install bundler -v 1.13.6
|
9
9
|
script: bundle exec rake spec
|
data/dip.yml
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
version: '1'
|
2
|
+
|
3
|
+
environment:
|
4
|
+
DOCKER_RUBY_VERSION: 2.2
|
5
|
+
RUBY_IMAGE_TAG: 2.2-2
|
6
|
+
COMPOSE_FILE_EXT: development
|
7
|
+
RAILS_ENV: test
|
8
|
+
|
9
|
+
compose:
|
10
|
+
files:
|
11
|
+
- docker-compose.yml
|
12
|
+
- docker-compose.${COMPOSE_FILE_EXT}.yml
|
13
|
+
|
14
|
+
interaction:
|
15
|
+
sh:
|
16
|
+
service: app
|
17
|
+
|
18
|
+
irb:
|
19
|
+
service: app
|
20
|
+
command: irb
|
21
|
+
|
22
|
+
bundle:
|
23
|
+
service: app
|
24
|
+
command: bundle
|
25
|
+
|
26
|
+
rake:
|
27
|
+
service: app
|
28
|
+
command: bundle exec rake
|
29
|
+
|
30
|
+
rspec:
|
31
|
+
service: app
|
32
|
+
command: bundle exec rspec
|
33
|
+
|
34
|
+
clean:
|
35
|
+
service: app
|
36
|
+
command: rm -f Gemfile.lock gemfiles/*.gemfile.*
|
37
|
+
|
38
|
+
provision:
|
39
|
+
- docker volume create --name bundler_data
|
40
|
+
- dip clean
|
41
|
+
- dip bundle install
|
data/docker-compose.yml
ADDED
data/lib/twinkle/client.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require "curb"
|
2
1
|
require "twinkle/client/version"
|
2
|
+
require "twinkle/client/http"
|
3
3
|
require "twinkle/client/default_formatter"
|
4
4
|
|
5
5
|
module Twinkle
|
@@ -12,13 +12,17 @@ module Twinkle
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
def self.http
|
16
|
+
@http ||= Http.new(config.endpoint, config.token)
|
17
|
+
end
|
18
|
+
|
15
19
|
def self.configure
|
16
20
|
yield config
|
17
21
|
end
|
18
22
|
|
19
23
|
def self.reset
|
20
|
-
@resources = nil
|
21
24
|
@config = nil
|
25
|
+
@http = nil
|
22
26
|
end
|
23
27
|
|
24
28
|
# Send a message
|
@@ -32,23 +36,7 @@ module Twinkle
|
|
32
36
|
formatter = options.fetch(:formatter, config.formatter)
|
33
37
|
message = formatter.call(message, options)
|
34
38
|
|
35
|
-
post "/messages", channel: channel, message: message
|
36
|
-
end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def self.post(path, params = {})
|
41
|
-
add_default_params(params)
|
42
|
-
Curl.post(resource(path), params).body_str
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.add_default_params(params)
|
46
|
-
params[:token] ||= config.token
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.resource(path)
|
50
|
-
@resources ||= Hash.new({})
|
51
|
-
@resources[config.endpoint][path] ||= File.join(config.endpoint, path)
|
39
|
+
http.post "/messages", channel: channel, message: message
|
52
40
|
end
|
53
41
|
end
|
54
42
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "net/http"
|
2
|
+
require "uri"
|
3
|
+
|
4
|
+
module Twinkle
|
5
|
+
module Client
|
6
|
+
class Http
|
7
|
+
def initialize(endpoint, token)
|
8
|
+
@token = token
|
9
|
+
|
10
|
+
endpoint = ::URI.parse(endpoint).normalize
|
11
|
+
@transport = ::Net::HTTP.new(endpoint.host, endpoint.port).tap do |http|
|
12
|
+
http.open_timeout = 20
|
13
|
+
http.read_timeout = 20
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def post(path, params = {})
|
18
|
+
set_default_params(params)
|
19
|
+
request = ::Net::HTTP::Post.new(path)
|
20
|
+
request.set_form_data(params)
|
21
|
+
@transport.request(request).kind_of?(::Net::HTTPSuccess)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def set_default_params(params)
|
27
|
+
params[:token] ||= @token
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/twinkle-client.gemspec
CHANGED
@@ -18,11 +18,9 @@ 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_runtime_dependency "curb"
|
22
|
-
|
23
21
|
spec.add_development_dependency "bundler", "~> 1.11"
|
24
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
23
|
spec.add_development_dependency "rspec", "~> 3.0"
|
26
|
-
spec.add_development_dependency "codeclimate-test-reporter"
|
27
24
|
spec.add_development_dependency "webmock", "~> 1.24"
|
25
|
+
spec.add_development_dependency "simplecov", "~> 0.12.0"
|
28
26
|
end
|
metadata
CHANGED
@@ -1,35 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twinkle-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michail Merkushin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
version_requirements: !ruby/object:Gem::Requirement
|
15
|
-
requirements:
|
16
|
-
- - '>='
|
17
|
-
- !ruby/object:Gem::Version
|
18
|
-
version: '0'
|
19
|
-
name: curb
|
20
|
-
requirement: !ruby/object:Gem::Requirement
|
21
|
-
requirements:
|
22
|
-
- - '>='
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: '0'
|
25
|
-
type: :runtime
|
26
|
-
prerelease: false
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
requirements:
|
30
|
-
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '1.11'
|
33
14
|
name: bundler
|
34
15
|
requirement: !ruby/object:Gem::Requirement
|
35
16
|
requirements:
|
@@ -38,12 +19,12 @@ dependencies:
|
|
38
19
|
version: '1.11'
|
39
20
|
type: :development
|
40
21
|
prerelease: false
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
22
|
version_requirements: !ruby/object:Gem::Requirement
|
43
23
|
requirements:
|
44
24
|
- - ~>
|
45
25
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
47
28
|
name: rake
|
48
29
|
requirement: !ruby/object:Gem::Requirement
|
49
30
|
requirements:
|
@@ -52,12 +33,12 @@ dependencies:
|
|
52
33
|
version: '10.0'
|
53
34
|
type: :development
|
54
35
|
prerelease: false
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
36
|
version_requirements: !ruby/object:Gem::Requirement
|
57
37
|
requirements:
|
58
38
|
- - ~>
|
59
39
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
61
42
|
name: rspec
|
62
43
|
requirement: !ruby/object:Gem::Requirement
|
63
44
|
requirements:
|
@@ -66,34 +47,39 @@ dependencies:
|
|
66
47
|
version: '3.0'
|
67
48
|
type: :development
|
68
49
|
prerelease: false
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
50
|
version_requirements: !ruby/object:Gem::Requirement
|
71
51
|
requirements:
|
72
|
-
- -
|
52
|
+
- - ~>
|
73
53
|
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
75
|
-
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: webmock
|
76
57
|
requirement: !ruby/object:Gem::Requirement
|
77
58
|
requirements:
|
78
|
-
- -
|
59
|
+
- - ~>
|
79
60
|
- !ruby/object:Gem::Version
|
80
|
-
version: '
|
61
|
+
version: '1.24'
|
81
62
|
type: :development
|
82
63
|
prerelease: false
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
64
|
version_requirements: !ruby/object:Gem::Requirement
|
85
65
|
requirements:
|
86
66
|
- - ~>
|
87
67
|
- !ruby/object:Gem::Version
|
88
68
|
version: '1.24'
|
89
|
-
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
90
71
|
requirement: !ruby/object:Gem::Requirement
|
91
72
|
requirements:
|
92
73
|
- - ~>
|
93
74
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
75
|
+
version: 0.12.0
|
95
76
|
type: :development
|
96
77
|
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.12.0
|
97
83
|
description: A ruby client for Twinkle notification service
|
98
84
|
email:
|
99
85
|
- merkushin.m.s@gmail.com
|
@@ -109,8 +95,12 @@ files:
|
|
109
95
|
- Rakefile
|
110
96
|
- bin/console
|
111
97
|
- bin/setup
|
98
|
+
- dip.yml
|
99
|
+
- docker-compose.development.yml
|
100
|
+
- docker-compose.yml
|
112
101
|
- lib/twinkle/client.rb
|
113
102
|
- lib/twinkle/client/default_formatter.rb
|
103
|
+
- lib/twinkle/client/http.rb
|
114
104
|
- lib/twinkle/client/version.rb
|
115
105
|
- twinkle-client.gemspec
|
116
106
|
homepage: https://github.com/bibendi/twinkle-client
|
@@ -132,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
122
|
version: '0'
|
133
123
|
requirements: []
|
134
124
|
rubyforge_project:
|
135
|
-
rubygems_version: 2.
|
125
|
+
rubygems_version: 2.0.14.1
|
136
126
|
signing_key:
|
137
127
|
specification_version: 4
|
138
128
|
summary: A ruby client for Twinkle notification service.
|