locasms 1.0.0 → 1.1.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
  SHA256:
3
- metadata.gz: 5a896107539a5ae0494a02442c4792ac2da61b58956f4961fdf2472547843ff4
4
- data.tar.gz: '0618f45850fe8085139fc79d34fae365c33cf39c0435773da59ff8cd21f470c4'
3
+ metadata.gz: c77f667632cbccd85f567f099b9bcef15815dcae6ad9726ef243ed632e983529
4
+ data.tar.gz: b20250459c3bcbff6777655dc0e03a5f109b40129bff4ff4291683dba55895b4
5
5
  SHA512:
6
- metadata.gz: 9ea9b109f0a76a9b76fc0e8fa3d9387bf2e2eca0a2c6ed20fdfc501c7ec6d216b78797e09ae00d66a1ff8069eef41d8b88b574a6c0a72960f076b313da0988fe
7
- data.tar.gz: 355ef466313280c2f6f6c234c3c712f8dd0967a861dbe719de44c68e48cb2b4ee191ee1d1e07e4663a712b8578a502381b5cf47064d1f806ec2bff9bbc16b6cb
6
+ metadata.gz: fbc9a23ee178d5572bc3ffed4722a27db9a3dc614f92b57d674859bd030fce05e9e37b3af6e7de7d14c90ba8d96e522271360a856585f4e53a29503615df03f8
7
+ data.tar.gz: f3569d9edf7307a17fe914e77ce94906241db9ef19a58fcce7b4c0fbcf96d1400da53cfea238b9c6694fd96f64b0d92715b1ded5ecb2adb7bfb05d90b7efad1f
@@ -5,23 +5,23 @@ jobs:
5
5
  lint:
6
6
  runs-on: ubuntu-latest
7
7
  steps:
8
- - uses: actions/checkout@v2
9
- - uses: ruby/setup-ruby@v1
10
- with:
11
- ruby-version: 2.7
12
- bundler-cache: true
13
- - run: bundle exec rubocop
8
+ - uses: actions/checkout@v2
9
+ - uses: ruby/setup-ruby@v1
10
+ with:
11
+ ruby-version: 2.7
12
+ bundler-cache: true
13
+ - run: bundle exec rubocop
14
14
 
15
15
  test:
16
16
  strategy:
17
17
  fail-fast: false
18
18
  matrix:
19
- ruby: [2.5, 2.6, 2.7, '3.0', jruby, jruby-head]
19
+ ruby: [2.6, 2.7, "3.0", "3.1", jruby, jruby-head]
20
20
  runs-on: ubuntu-latest
21
21
  steps:
22
- - uses: actions/checkout@v2
23
- - uses: ruby/setup-ruby@v1
24
- with:
25
- ruby-version: ${{ matrix.ruby }}
26
- bundler-cache: true
27
- - run: bundle exec rspec
22
+ - uses: actions/checkout@v2
23
+ - uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: ${{ matrix.ruby }}
26
+ bundler-cache: true
27
+ - run: bundle exec rspec
data/.rubocop.yml CHANGED
@@ -6,5 +6,5 @@ require:
6
6
  - rubocop-rspec
7
7
 
8
8
  AllCops:
9
- TargetRubyVersion: 2.5
9
+ TargetRubyVersion: 2.6
10
10
  NewCops: enable
data/.rubocop_todo.yml CHANGED
@@ -16,15 +16,3 @@ Metrics/BlockLength:
16
16
  # Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
17
17
  Metrics/MethodLength:
18
18
  Max: 27
19
-
20
- # Offense count: 1
21
- # Configuration parameters: CountKeywordArgs.
22
- Metrics/ParameterLists:
23
- Max: 13
24
-
25
- # Offense count: 1
26
- # Cop supports --auto-correct.
27
- # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
28
- # URISchemes: http, https
29
- Layout/LineLength:
30
- Max: 179
@@ -73,7 +73,9 @@ module LocaSMS
73
73
  def campaign_status(id)
74
74
  response = rest.get(:getstatus, id: id)
75
75
  begin
76
- CSV.new(response['data'] || '', col_sep: ';', quote_char: '"').map do |delivery_id, _, enqueue_time, _, delivery_time, _, status, _, _, carrier, mobile_number, _, message|
76
+ CSV.new(
77
+ response['data'] || '', col_sep: ';', quote_char: '"'
78
+ ).map do |delivery_id, _, enqueue_time, _, delivery_time, _, status, _, _, carrier, mobile_number, _, message| # rubocop:disable Metrics/ParameterLists
77
79
  status = case status
78
80
  when /aguardando envio/i
79
81
  waiting
@@ -86,14 +88,9 @@ module LocaSMS
86
88
  end
87
89
 
88
90
  {
89
- campaign_id: id,
90
- delivery_id: delivery_id,
91
- enqueue_time: enqueue_time,
92
- delivery_time: delivery_time,
93
- status: status,
94
- carrier: carrier,
95
- mobile_number: mobile_number,
96
- message: message
91
+ campaign_id: id, delivery_id: delivery_id, enqueue_time: enqueue_time,
92
+ delivery_time: delivery_time, status: status, carrier: carrier,
93
+ mobile_number: mobile_number, message: message
97
94
  }
98
95
  end
99
96
  rescue StandardError
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LocaSMS
4
- VERSION = '1.0.0'
4
+ VERSION = '1.1.0'
5
5
  end
data/locasms.gemspec CHANGED
@@ -14,13 +14,13 @@ Gem::Specification.new do |spec|
14
14
  spec.summary = 'Cliente para disparo de SMS, regular e Short Code, através da LocaSMS/SMS Plataforma'
15
15
  spec.homepage = 'https://github.com/mcorp/locasms'
16
16
  spec.license = 'MIT'
17
+ spec.metadata = { 'rubygems_mfa_required' => 'true' }
17
18
 
18
19
  spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
19
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.required_ruby_version = '>= 2.5'
23
+ spec.required_ruby_version = '>= 2.6'
24
24
 
25
25
  spec.add_dependency 'multi_json', '~> 1.13'
26
26
 
@@ -28,18 +28,18 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'rake', '~> 13.0'
29
29
 
30
30
  # test stuff
31
- spec.add_development_dependency 'rspec', '~> 3.9'
31
+ spec.add_development_dependency 'rspec', '~> 3.11'
32
32
  spec.add_development_dependency 'timecop', '~> 0.9'
33
33
 
34
34
  # for documentation
35
35
  spec.add_development_dependency 'yard', '~> 0.9'
36
36
 
37
37
  # for code coverage
38
- spec.add_development_dependency 'simplecov', '~> 0.18'
38
+ spec.add_development_dependency 'simplecov', '~> 0.21'
39
39
 
40
40
  # for code quality
41
- spec.add_development_dependency 'rubocop', '~> 1.22'
42
- spec.add_development_dependency 'rubocop-performance', '~> 1.11'
41
+ spec.add_development_dependency 'rubocop', '~> 1.36'
42
+ spec.add_development_dependency 'rubocop-performance', '~> 1.15'
43
43
  spec.add_development_dependency 'rubocop-rake', '~> 0.6'
44
- spec.add_development_dependency 'rubocop-rspec', '~> 2.5'
44
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.13'
45
45
  end
@@ -5,7 +5,7 @@ require 'spec_helper'
5
5
  describe LocaSMS::Client do # rubocop:disable RSpec/FilePath
6
6
  subject(:client) { described_class.new :login, :password, rest_client: rest_client, callback: nil }
7
7
 
8
- let(:rest_client) { instance_double 'RestClient' }
8
+ let(:rest_client) { instance_double LocaSMS::RestClient }
9
9
  let(:base_args) { { msg: 'given message', numbers: '11988889991,11988889992,11988889993' } }
10
10
  let(:default_callback_args) { base_args.merge(url_callback: 'default') }
11
11
  let(:some_callback_args) { base_args.merge(url_callback: 'something') }
@@ -115,7 +115,8 @@ describe LocaSMS::Client do # rubocop:disable RSpec/FilePath
115
115
  it 'when callback given as arg to #deliver' do
116
116
  allow(rest_client).to receive(:get).and_return({})
117
117
 
118
- client.deliver_at 'given message', '2020-10-10 10:10', '11988889991', '11988889992', '11988889993', url_callback: 'something'
118
+ client.deliver_at 'given message', '2020-10-10 10:10', '11988889991', '11988889992', '11988889993',
119
+ url_callback: 'something'
119
120
 
120
121
  expect(rest_client).to have_received(:get).once.with(:sendsms, some_callback_args)
121
122
  end
@@ -143,23 +144,25 @@ describe LocaSMS::Client do # rubocop:disable RSpec/FilePath
143
144
  end
144
145
 
145
146
  context 'when receive all campaign based methods' do
146
- def check_for(method)
147
- rest_method = {
148
- campaign_status: :getstatus,
149
- campaign_hold: :holdsms,
150
- campaign_release: :releasesms
151
- }[method]
147
+ before { allow(rest_client).to receive(:get).and_return({}) }
152
148
 
153
- allow(rest_client).to receive(:get).and_return({})
149
+ it '#campaign_status' do
150
+ client.campaign_status '12345'
151
+
152
+ expect(rest_client).to have_received(:get).once.with(:getstatus, id: '12345')
153
+ end
154
154
 
155
- client.send method, '12345'
155
+ it '#campaign_hold' do
156
+ client.campaign_hold '12345'
156
157
 
157
- expect(rest_client).to have_received(:get).once.with(rest_method, id: '12345')
158
+ expect(rest_client).to have_received(:get).once.with(:holdsms, id: '12345')
158
159
  end
159
160
 
160
- it { check_for :campaign_status }
161
- it { check_for :campaign_hold }
162
- it { check_for :campaign_release }
161
+ it '#campaign_release' do
162
+ client.campaign_release '12345'
163
+
164
+ expect(rest_client).to have_received(:get).once.with(:releasesms, id: '12345')
165
+ end
163
166
 
164
167
  it 'has tests to cover campaign_status csv result'
165
168
  end
@@ -6,16 +6,33 @@ describe LocaSMS::Helpers::DateTimeHelper do # rubocop:disable RSpec/FilePath
6
6
  subject(:helper) { described_class }
7
7
 
8
8
  describe '.parse' do
9
+ subject { described_class.parse(value) }
10
+
9
11
  let(:expected) { Time.parse '1977-03-14 14:12:00' }
10
12
 
11
- def try_for(value)
12
- helper.parse(value) == expected
13
+ context 'when is a date time' do
14
+ let(:value) { DateTime.parse '1977-03-14 14:12:00' }
15
+
16
+ it { is_expected.to eq expected }
17
+ end
18
+
19
+ context 'when is a time' do
20
+ let(:value) { Time.parse '1977-03-14 14:12:00' }
21
+
22
+ it { is_expected.to eq expected }
13
23
  end
14
24
 
15
- it { try_for DateTime.parse('1977-03-14 14:12:00') }
16
- it { try_for Time.parse('1977-03-14 14:12:00') }
17
- it { try_for '1977-03-14 14:12:00' }
18
- it { try_for 227_207_520 }
25
+ context 'when is a string' do
26
+ let(:value) { '1977-03-14 14:12:00' }
27
+
28
+ it { is_expected.to eq expected }
29
+ end
30
+
31
+ context 'when is a number' do
32
+ let(:value) { 227_196_720 }
33
+
34
+ it { is_expected.to eq expected }
35
+ end
19
36
  end
20
37
 
21
38
  describe '.split' do
@@ -26,7 +26,7 @@ describe LocaSMS::RestClient do # rubocop:disable RSpec/FilePath
26
26
  it 'performs get request to url with parameters' do
27
27
  allow(Net::HTTP)
28
28
  .to receive(:get_response)
29
- .and_return(OpenStruct.new(body: body))
29
+ .and_return(instance_double(Net::HTTPOK, body: body))
30
30
 
31
31
  rest_client.get(action, params)
32
32
 
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locasms
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adilson Carvalho
8
8
  - Leonardo Saraiva
9
9
  - Marco Carvalho
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-10-22 00:00:00.000000000 Z
13
+ date: 2022-10-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: multi_json
@@ -60,14 +60,14 @@ dependencies:
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '3.9'
63
+ version: '3.11'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: '3.9'
70
+ version: '3.11'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: timecop
73
73
  requirement: !ruby/object:Gem::Requirement
@@ -102,42 +102,42 @@ dependencies:
102
102
  requirements:
103
103
  - - "~>"
104
104
  - !ruby/object:Gem::Version
105
- version: '0.18'
105
+ version: '0.21'
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: '0.18'
112
+ version: '0.21'
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rubocop
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: '1.22'
119
+ version: '1.36'
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - "~>"
125
125
  - !ruby/object:Gem::Version
126
- version: '1.22'
126
+ version: '1.36'
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: rubocop-performance
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - "~>"
132
132
  - !ruby/object:Gem::Version
133
- version: '1.11'
133
+ version: '1.15'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - "~>"
139
139
  - !ruby/object:Gem::Version
140
- version: '1.11'
140
+ version: '1.15'
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: rubocop-rake
143
143
  requirement: !ruby/object:Gem::Requirement
@@ -158,14 +158,14 @@ dependencies:
158
158
  requirements:
159
159
  - - "~>"
160
160
  - !ruby/object:Gem::Version
161
- version: '2.5'
161
+ version: '2.13'
162
162
  type: :development
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - "~>"
167
167
  - !ruby/object:Gem::Version
168
- version: '2.5'
168
+ version: '2.13'
169
169
  description: |-
170
170
  Cliente para o serviço de disparo de SMS da LocaSMS e de sua
171
171
  versão para Short Code SMS (SMS Plataforma)
@@ -206,8 +206,9 @@ files:
206
206
  homepage: https://github.com/mcorp/locasms
207
207
  licenses:
208
208
  - MIT
209
- metadata: {}
210
- post_install_message:
209
+ metadata:
210
+ rubygems_mfa_required: 'true'
211
+ post_install_message:
211
212
  rdoc_options: []
212
213
  require_paths:
213
214
  - lib
@@ -215,22 +216,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
216
  requirements:
216
217
  - - ">="
217
218
  - !ruby/object:Gem::Version
218
- version: '2.5'
219
+ version: '2.6'
219
220
  required_rubygems_version: !ruby/object:Gem::Requirement
220
221
  requirements:
221
222
  - - ">="
222
223
  - !ruby/object:Gem::Version
223
224
  version: '0'
224
225
  requirements: []
225
- rubygems_version: 3.2.22
226
- signing_key:
226
+ rubygems_version: 3.3.7
227
+ signing_key:
227
228
  specification_version: 4
228
229
  summary: Cliente para disparo de SMS, regular e Short Code, através da LocaSMS/SMS
229
230
  Plataforma
230
- test_files:
231
- - spec/lib/locasms/client_spec.rb
232
- - spec/lib/locasms/helpers/date_time_helper_spec.rb
233
- - spec/lib/locasms/numbers_spec.rb
234
- - spec/lib/locasms/rest_client_spec.rb
235
- - spec/spec.opts
236
- - spec/spec_helper.rb
231
+ test_files: []