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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 82cad5673d54880f99c151d7a5716e68331430d7
4
- data.tar.gz: 577d9e5f081746c9c4eccb6b297f6288a5f18477
3
+ metadata.gz: 90efb73d8676e6dbc1186b9b6fce39e8acffe69d
4
+ data.tar.gz: 0c387177b62ffad7222ecca3290c084a1fa2d2d2
5
5
  SHA512:
6
- metadata.gz: 1fed0f0acef81ff6b051dd45b10930bf0a90d62221456d689fd57d1143b61290ff00a5d1656b2448f3c10e7ea456ae88a2d37b84c9c31cd155e867667cd446d1
7
- data.tar.gz: c04561bbb4a3fc6187023cd7aecf202782ecc31efcf60f8f2368a8f7362be1ede5e0c22e60e2889db2059ea1eadf9b0f1f12462930112d9b34b5857733ad8bc2
6
+ metadata.gz: 988766ff8845a10c82e5d8a1b0ad93f4b804eed698e86fa533f558c537b25b5c1632b270c67541365afd3ebe6fd8c5b53f8070910cc5ad430740bc0035cb0227
7
+ data.tar.gz: 16cf2245b65a733eef5df1eda33867131a815a2be7f9e7f88267de812f723c6967cd8bb58fe3627776f189fbe6408b5c236fb5e7308b7d91e6ce5f650f21ddc0
@@ -1,9 +1,9 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
- - 2.3.0
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.11.2
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
@@ -0,0 +1,18 @@
1
+ version: '2'
2
+
3
+ services:
4
+ app:
5
+ volumes:
6
+ - .:/app
7
+ - ../:/localgems
8
+ - ssh-data:/ssh:ro
9
+ - bundler-data:/bundle
10
+
11
+ volumes:
12
+ bundler-data:
13
+ external:
14
+ name: bundler_data
15
+
16
+ ssh-data:
17
+ external:
18
+ name: ssh_data
@@ -0,0 +1,10 @@
1
+ version: '2'
2
+
3
+ services:
4
+ app:
5
+ image: abakpress/ruby:$RUBY_IMAGE_TAG
6
+ environment:
7
+ - SSH_AUTH_SOCK=/ssh/auth/sock
8
+ - BUNDLE_PATH=/bundle/$DOCKER_RUBY_VERSION
9
+ - BUNDLE_CONFIG=/app/.bundle/config
10
+ command: bash
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Twinkle
2
2
  module Client
3
- VERSION = "0.2.0"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -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.2.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-04-19 00:00:00.000000000 Z
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: '10.0'
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: '3.0'
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
- name: codeclimate-test-reporter
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: '0'
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
- name: webmock
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: '1.24'
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.4.8
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.