locasms 1.0.0 → 1.1.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
  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: []