pushover 1.0.4 → 2.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.
@@ -1,47 +1,22 @@
1
- if ENV["COVERAGE"] == 'true'
2
- require 'simplecov'
3
- require 'simplecov-rcov'
1
+ require 'excon'
2
+ require 'pry'
3
+ require 'simplecov'
4
+ require 'simplecov-console'
4
5
 
5
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
6
- SimpleCov::Formatter::HTMLFormatter,
7
- SimpleCov::Formatter::RcovFormatter
8
- ]
9
- SimpleCov.start do
10
- add_filter "/spec/"
11
- end
12
- end
13
-
14
- require 'webmock/rspec'
15
- require 'pushover'
6
+ Excon.defaults[:mock] = true
16
7
 
17
- include Pushover
18
- Bini.long_name = 'pushover'
19
- Bini::Config.options[:file] = "tmp/test.save"
20
- Bini::Config.load
8
+ SimpleCov.formatters = [
9
+ SimpleCov::Formatter::HTMLFormatter
10
+ ]
21
11
 
22
12
  RSpec.configure do |config|
23
- config.treat_symbols_as_metadata_keys_with_true_values = true
24
- config.run_all_when_everything_filtered = true
25
13
  config.filter_run :focus
26
- config.order = 'random'
14
+ config.run_all_when_everything_filtered = true
15
+ config.example_status_persistence_file_path = "tmp/examples.txt"
27
16
  end
28
17
 
29
- def setup_webmocks
30
- WebMock.reset!
31
- good_result = '{"status":1}'
32
- bad_token = '{"token":"invalid","errors":["application token is invalid"],"status":0}'
33
- bad_user = '{"user":"invalid","errors":["user identifier is invalid"],"status":0}'
34
- sounds = '{"sounds":{"pushover":"Pushover (default)","bike":"Bike","bugle":"Bugle","cashregister":"Cash Register","classical":"Classical","cosmic":"Cosmic","falling":"Falling","gamelan":"Gamelan","incoming":"Incoming","intermission":"Intermission","magic":"Magic","mechanical":"Mechanical","pianobar":"Piano Bar","siren":"Siren","spacealarm":"Space Alarm","tugboat":"Tug Boat","alien":"Alien Alarm (long)","climb":"Climb (long)","persistent":"Persistent (long)","echo":"Pushover Echo (long)","updown":"Up Down (long)","none":"None (silent)"},"status":1,"request":"14ef413f6a3bf74efee3e140efe63df9"}'
35
-
36
- stub_request(:post, "https://api.pushover.net/1/messages.json").
37
- with(body:hash_including(token:'good_token', user:'good_user')).
38
- to_return(body:good_result, code:200)
39
- stub_request(:post, "https://api.pushover.net/1/messages.json").
40
- with(body:hash_including(token:'bad_token')).
41
- to_return(body:bad_token, code:400)
42
- stub_request(:post, "https://api.pushover.net/1/messages.json").
43
- with(body:hash_including(user:'bad_user')).
44
- to_return(body:bad_user, code:400)
45
- stub_request(:get, /https:\/\/api.pushover.net\/1\/sounds.json.*/).
46
- to_return(body:sounds, code:200)
18
+ SimpleCov.start do
19
+ add_filter "/spec/"
47
20
  end
21
+
22
+ require 'pushover'
metadata CHANGED
@@ -1,57 +1,253 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pushover
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernie Brodeur
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-05 00:00:00.000000000 Z
11
+ date: 2018-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: yajl-ruby
14
+ name: creatable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0
19
+ version: '0'
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: 1.1.0
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: httparty
28
+ name: excon
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.11.0
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.11.0
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bini
42
+ name: oj
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.7.0
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.7.0
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard-bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: guard-yard
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pry
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rake
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rspec
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop-rspec
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: simplecov
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: simplecov-console
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: yard
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
55
251
  description: Api (and CLI) to interface with pushover.net
56
252
  email:
57
253
  - ebrodeur@ujami.net
@@ -59,11 +255,12 @@ executables:
59
255
  - pushover
60
256
  extensions: []
61
257
  extra_rdoc_files:
258
+ - CODE_OF_CONDUCT.md
62
259
  - README.md
63
- - whatsnew.md
64
260
  files:
65
261
  - ".gitignore"
66
- - ".travis.yml"
262
+ - ".rubocop.yml"
263
+ - CODE_OF_CONDUCT.md
67
264
  - Gemfile
68
265
  - Guardfile
69
266
  - LICENSE
@@ -71,22 +268,23 @@ files:
71
268
  - Rakefile
72
269
  - bin/pushover
73
270
  - lib/pushover.rb
74
- - lib/pushover/app.rb
75
- - lib/pushover/mixins.rb
76
- - lib/pushover/priority.rb
77
- - lib/pushover/user.rb
271
+ - lib/pushover/api.rb
272
+ - lib/pushover/message.rb
273
+ - lib/pushover/receipt.rb
274
+ - lib/pushover/request.rb
275
+ - lib/pushover/response.rb
78
276
  - lib/pushover/version.rb
79
277
  - pushover.gemspec
80
- - spec/bin/pushover_spec.rb
81
- - spec/cli_spec_helper.rb
82
- - spec/lib/pushover/app_spec.rb
83
- - spec/lib/pushover/user_spec.rb
278
+ - spec/lib/pushover/api_spec.rb
279
+ - spec/lib/pushover/message_spec.rb
280
+ - spec/lib/pushover/receipt_spec.rb
281
+ - spec/lib/pushover/request_spec.rb
282
+ - spec/lib/pushover/response_spec.rb
84
283
  - spec/lib/pushover_spec.rb
85
284
  - spec/spec_helper.rb
86
- - whatsnew.md
87
285
  homepage: https://github.com/erniebrodeur/pushover
88
286
  licenses:
89
- - Beerware v42
287
+ - MIT
90
288
  metadata: {}
91
289
  post_install_message:
92
290
  rdoc_options:
@@ -111,15 +309,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
309
  version: '0'
112
310
  requirements: []
113
311
  rubyforge_project:
114
- rubygems_version: 2.2.0
312
+ rubygems_version: 2.6.11
115
313
  signing_key:
116
314
  specification_version: 4
117
- summary: This gem provides both an API and CLI interface to pushover.net.
315
+ summary: This spec provides both an API and CLI interface to pushover.net.
118
316
  test_files:
119
- - spec/bin/pushover_spec.rb
120
- - spec/cli_spec_helper.rb
121
- - spec/lib/pushover/app_spec.rb
122
- - spec/lib/pushover/user_spec.rb
317
+ - spec/lib/pushover/api_spec.rb
318
+ - spec/lib/pushover/message_spec.rb
319
+ - spec/lib/pushover/receipt_spec.rb
320
+ - spec/lib/pushover/request_spec.rb
321
+ - spec/lib/pushover/response_spec.rb
123
322
  - spec/lib/pushover_spec.rb
124
323
  - spec/spec_helper.rb
125
- has_rdoc: yard
@@ -1,15 +0,0 @@
1
- bundler_args: --without development
2
-
3
- rvm:
4
- - 1.9.2
5
- - 1.9.3
6
- - 2.0.0
7
- - 2.1.0
8
- - rbx-2.1
9
-
10
- branches:
11
- only:
12
- - master
13
- - development
14
-
15
- script: bundle exec rspec -b spec
@@ -1,64 +0,0 @@
1
- module Pushover
2
- # Stores a application definition in the config file.
3
- module App
4
- # an instance of an application.
5
- # @!attribute name
6
- # @return [String] the name of the application.
7
- # @!attribute api_key
8
- # @return [String] the api_key of the application.
9
- class App
10
- attr_accessor :name
11
- attr_accessor :api_key
12
-
13
- def initialize(name, api_key)
14
- @name = name
15
- @api_key = api_key
16
- Bini::Config[:applications] = {} if !Bini::Config[:applications]
17
- Bini::Config[:applications][name] = api_key
18
- end
19
- end
20
-
21
- extend self
22
-
23
- # Find the apikey in the applications, or pass on the word to try direct access.
24
- # @param [String] word the search token, can be an apikey or appname.
25
- # @return [String] return the apikey (if it can find one) or the word itself.
26
- def find(word)
27
- return Bini::Config[:applications][word] if Bini::Config[:applications] && Bini::Config[:applications][word]
28
- word
29
- end
30
-
31
- # Add an application to the config file and save it.
32
- # @param [String] api_key is the api_key to be used.
33
- # @param [String] name is the short name that can be referenced later.
34
- # @return [Boolean] return the results of the save attempt.
35
- def add(name, api_key)
36
- App.new name, api_key
37
- Bini::Config.save
38
- end
39
-
40
- def remove(name)
41
- Bini::Config[:applications].delete name if Bini::Config[:applications]
42
- end
43
- # Return the current app selected, or the first one saved.
44
- def current_app
45
- # did something get supplied on the cli? try to find it.
46
- if Bini::Options[:token]
47
- @current_app = find Bini::Options[:token]
48
- else
49
- @current_app = find Bini::Config[:applications].values.first if Bini::Config[:applications]
50
- end
51
- @current_app
52
- end
53
-
54
- def current_app=(app)
55
- @current_app = app
56
- end
57
-
58
- # Will return true if we can find an application either via the cli or save file.
59
- def current_app?
60
- return true if current_app
61
- return nil
62
- end
63
- end
64
- end