locasms 0.1.7 → 0.5.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,50 +1,26 @@
1
- require 'spec_helper'
2
-
3
- describe LocaSMS::Helpers::DateTimeHelper do
4
- subject { LocaSMS::Helpers::DateTimeHelper }
5
-
6
- describe '#parse' do
7
- it 'Should call the class method' do
8
- expect(subject).to receive(:parse)
9
- .once
10
- .with(:value)
11
-
12
- subject.new.parse(:value)
13
- end
14
- end
1
+ # frozen_string_literal: true
15
2
 
16
- describe '#split' do
17
- it 'Should call the class method' do
18
- expect(subject).to receive(:split)
19
- .once
20
- .with(:value)
3
+ require 'spec_helper'
21
4
 
22
- subject.new.split(:value)
23
- end
24
- end
5
+ describe LocaSMS::Helpers::DateTimeHelper do # rubocop:disable RSpec/FilePath
6
+ subject(:helper) { described_class }
25
7
 
26
8
  describe '.parse' do
27
9
  let(:expected) { Time.parse '1977-03-14 14:12:00' }
28
10
 
29
11
  def try_for(value)
30
- subject.parse(value) == expected
12
+ helper.parse(value) == expected
31
13
  end
32
14
 
33
15
  it { try_for DateTime.parse('1977-03-14 14:12:00') }
34
- it { try_for Time.parse('1977-03-14 14:12:00') }
35
- it { try_for '1977-03-14 14:12:00' }
36
- it { try_for 227207520 }
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 }
37
19
  end
38
20
 
39
21
  describe '.split' do
40
- it 'Should break a date into date and time' do
41
- expect(subject).to receive(:parse)
42
- .once
43
- .with(:datetime)
44
- .and_return(Time.parse('1977-03-14 14:12:00'))
45
-
46
- expect(subject.split(:datetime)).to eq(%w(14/03/1977 14:12))
22
+ it 'breaks a date into date and time' do
23
+ expect(helper.split('1977-03-14 14:12:00')).to eq(%w[14/03/1977 14:12])
47
24
  end
48
25
  end
49
-
50
- end
26
+ end
@@ -1,106 +1,92 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe LocaSMS::Numbers do
4
- subject { LocaSMS::Numbers.new }
5
-
6
- describe '.initialize' do
7
- subject do
8
- expect_any_instance_of(LocaSMS::Numbers).
9
- to receive(:evaluate).
10
- once.
11
- with([:numbers]).
12
- and_return(good: [1, 3], bad: [2, 4])
13
- LocaSMS::Numbers.new :numbers
14
- end
5
+ describe LocaSMS::Numbers do # rubocop:disable RSpec/FilePath
6
+ subject(:number_sanitizer) { described_class.new numbers }
15
7
 
16
- it { expect(subject.good).to eq([1, 3]) }
17
- it { expect(subject.bad).to eq([2, 4]) }
18
- end
8
+ let(:numbers) { '1188889999' }
19
9
 
20
10
  describe '#normalize' do
21
- it do
22
- expect(subject.normalize('+55 (11) 8888-9999')).to(
23
- eq(%w(551188889999))
11
+ it do
12
+ expect(number_sanitizer.normalize('+55 (11) 8888-9999')).to(
13
+ eq(%w[551188889999])
24
14
  )
25
15
  end
16
+
26
17
  it do
27
- expect(subject.normalize('55', ['11', '22'])).to(
28
- eq(%w(55 11 22))
18
+ expect(number_sanitizer.normalize('55', %w[11 22])).to(
19
+ eq(%w[55 11 22])
29
20
  )
30
21
  end
22
+
31
23
  it do
32
- expect(subject.normalize(['55', 'ZZ', '22'])).to(
33
- eq(%w(55 ZZ 22))
24
+ expect(number_sanitizer.normalize(%w[55 ZZ 22])).to(
25
+ eq(%w[55 ZZ 22])
34
26
  )
35
27
  end
28
+
36
29
  it do
37
- expect(subject.normalize('55,44,33', ['ZZ', '22,11'])).to(
38
- eq(%w(55 44 33 ZZ 22 11))
30
+ expect(number_sanitizer.normalize('55,44,33', ['ZZ', '22,11'])).to(
31
+ eq(%w[55 44 33 ZZ 22 11])
39
32
  )
40
33
  end
41
- it do
42
- expect(subject.normalize(55, [11, 22])).to(
43
- eq(%w(55 11 22))
34
+
35
+ it do
36
+ expect(number_sanitizer.normalize(55, [11, 22])).to(
37
+ eq(%w[55 11 22])
44
38
  )
45
39
  end
46
- it { expect(subject.normalize('Z')).to eq(['Z']) }
47
- it { expect(subject.normalize(nil)).to eq([]) }
40
+
41
+ it { expect(number_sanitizer.normalize('Z')).to eq(['Z']) }
42
+ it { expect(number_sanitizer.normalize(nil)).to eq([]) }
48
43
  end
49
44
 
50
45
  describe '#valid_number?' do
51
- it { expect(subject.valid_number?('+55 (11) 8888-9999')).to be_falsey }
52
- it { expect(subject.valid_number?('88889999')).to be_falsey }
53
- it { expect(subject.valid_number?('988889999')).to be_falsey }
54
- it { expect(subject.valid_number?('ABC')).to be_falsey }
55
- it { expect(subject.valid_number?('')).to be_falsey }
56
- it { expect(subject.valid_number?(nil)).to be_falsey }
57
-
58
- it { expect(subject.valid_number?('1188889999')).to be_truthy }
59
- it { expect(subject.valid_number?('11988889999')).to be_truthy }
46
+ it { is_expected.not_to be_valid_number('+55 (11) 8888-9999') }
47
+ it { is_expected.not_to be_valid_number('88889999') }
48
+ it { is_expected.not_to be_valid_number('988889999') }
49
+ it { is_expected.not_to be_valid_number('ABC') }
50
+ it { is_expected.not_to be_valid_number('') }
51
+ it { is_expected.not_to be_valid_number(nil) }
52
+
53
+ it { is_expected.to be_valid_number('1188889999') }
54
+ it { is_expected.to be_valid_number('11988889999') }
60
55
  end
61
56
 
62
57
  describe '#evaluate' do
63
- it 'Should separate numbers in good and bad' do
64
- expect(subject).to receive(:normalize).
65
- once.
66
- with([:numbers]).
67
- and_return([:good, :bad])
68
- expect(subject).to receive(:valid_number?).
69
- once.
70
- with(:good).
71
- and_return(true)
72
- expect(subject).to receive(:valid_number?).
73
- once.
74
- with(:bad).
75
- and_return(false)
76
- expect(subject.evaluate(:numbers)).to(
77
- eq(good: [:good], bad: [:bad])
78
- )
58
+ it 'separates numbers in good and bad' do
59
+ expect(number_sanitizer.evaluate('11988889999', 'abc')).to eq(good: ['11988889999'], bad: ['abc'])
79
60
  end
80
61
  end
81
62
 
82
63
  describe '#bad?' do
83
- it do
84
- expect(subject).to receive(:bad).once.and_return([ ])
85
- expect(subject.bad?).to be_falsey
64
+ subject(:number_sanitizer) { described_class.new numbers }
65
+
66
+ context 'when bad is empty' do
67
+ let(:numbers) { '11988889999' }
68
+
69
+ it { expect(number_sanitizer).not_to be_bad }
86
70
  end
87
- it do
88
- expect(subject).to receive(:bad).once.and_return([1])
89
- expect(subject.bad?).to be_truthy
71
+
72
+ context 'when bad has items' do
73
+ let(:numbers) { 'ABC' }
74
+
75
+ it { expect(number_sanitizer).to be_bad }
90
76
  end
91
77
  end
92
78
 
93
79
  describe '#to_s' do
94
- it 'Should return and empty string' do
95
- expect(subject.to_s).to eq('')
80
+ context 'when is empty returns empty string' do
81
+ let(:numbers) { '' }
82
+
83
+ it { expect(number_sanitizer.to_s).to eq('') }
96
84
  end
97
85
 
98
- it 'Should return all good numbers in a string comma separated' do
99
- expect(subject).to receive(:good).
100
- once.
101
- and_return([1, 2, 3, 4])
102
- expect(subject.to_s).to eq('1,2,3,4')
86
+ context 'when all good numbers returns in a string comma separated' do
87
+ let(:numbers) { %w[11988889991 11988889992 11988889993] }
88
+
89
+ it { expect(number_sanitizer.to_s).to eq('11988889991,11988889992,11988889993') }
103
90
  end
104
91
  end
105
-
106
92
  end
@@ -1,47 +1,79 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe LocaSMS::RestClient do
5
+ describe LocaSMS::RestClient do # rubocop:disable RSpec/FilePath
6
+ subject(:rest_client) { described_class.new(action, params) }
7
+
8
+ let(:action) { :url }
9
+ let(:callback) { 'http://example.com/callback' }
10
+ let(:params) { { lgn: 'LOGIN', pwd: 'PASSWORD', url_callback: callback } }
11
+
4
12
  describe '.initialize' do
5
- context 'When giving proper initialization parameters' do
6
- subject { LocaSMS::RestClient.new :url, :params }
7
- it { expect(subject.base_url).to be(:url) }
8
- it { expect(subject.base_params).to be(:params) }
13
+ context 'when giving proper initialization parameters' do
14
+ let(:action) { :url }
15
+ let(:params) { :params }
16
+
17
+ it { expect(rest_client.base_url).to be(:url) }
18
+ it { expect(rest_client.base_params).to be(:params) }
9
19
  end
10
20
  end
11
21
 
12
22
  describe '#get' do
13
- it 'Is missing tests for get'
23
+ let(:action) { 'sendsms' }
24
+ let(:body) { '{"status":1,"data":28,"msg":null}' }
25
+
26
+ it 'performs get request to url with parameters' do
27
+ allow(Net::HTTP)
28
+ .to receive(:get_response)
29
+ .and_return(OpenStruct.new(body: body))
30
+
31
+ rest_client.get(action, params)
32
+
33
+ expect(Net::HTTP).to have_received(:get_response)
34
+ end
14
35
  end
15
36
 
16
37
  describe '#params_for' do
17
- subject { LocaSMS::RestClient.new :url, { b1: 'X' } }
38
+ it { expect(rest_client.params_for(:action)).to eq({ action: :action }.merge(params)) }
39
+ it { expect(rest_client.params_for(:action, p1: 10)).to eq({ action: :action, p1: 10 }.merge(params)) }
18
40
 
19
- it { expect(subject.params_for(:action)).to eq({action: :action, b1: 'X'}) }
20
- it { expect(subject.params_for(:action, p1: 10)).to eq({action: :action, b1: 'X', p1: 10}) }
41
+ context 'when callback is nil' do
42
+ let(:callback) { nil }
43
+
44
+ it 'is not in params' do
45
+ expect(rest_client.params_for(:action)).to eq({ action: :action, lgn: 'LOGIN', pwd: 'PASSWORD' })
46
+ end
47
+ end
21
48
  end
22
49
 
23
50
  describe '#parse_response' do
24
- subject { LocaSMS::RestClient.new :url, :params }
25
-
26
- it 'Should raise exception on invalid operation' do
27
- expect { subject.parse_response(:action, '0:OPERACAO INVALIDA') }.to raise_error(LocaSMS::InvalidOperation)
51
+ it 'raises exception on invalid operation' do
52
+ expect { rest_client.parse_response(:action, '0:OPERACAO INVALIDA') }.to raise_error(LocaSMS::InvalidOperation)
28
53
  end
29
54
 
30
- it 'Should raise exception on a failed response' do
31
- expect { subject.parse_response(:action, '{"status":0,"data":null,"msg":"FALHA EPICA"}') }.to raise_error(LocaSMS::Exception, 'FALHA EPICA')
55
+ it 'raises exception on a failed response' do
56
+ response = '{"status":0,"data":null,"msg":"FALHA EPICA"}'
57
+
58
+ expect { rest_client.parse_response(:action, response) }.to raise_error(LocaSMS::Exception, 'FALHA EPICA')
32
59
  end
33
60
 
34
- it 'Should raise exception on a failed login attempt' do
35
- expect { subject.parse_response(:action, '{"status":0,"data":null,"msg":"FALHA AO REALIZAR LOGIN"}') }.to raise_error(LocaSMS::InvalidLogin)
61
+ it 'raises exception on a failed login attempt' do
62
+ response = '{"status":0,"data":null,"msg":"FALHA AO REALIZAR LOGIN"}'
63
+
64
+ expect { rest_client.parse_response(:action, response) }.to raise_error(LocaSMS::InvalidLogin)
36
65
  end
37
66
 
38
- it 'Should return the non-json value as a json' do
39
- expect(subject.parse_response(:action, 'non-json return')).to eq({'status' => 1, 'data' => 'non-json return', "msg" => nil})
67
+ it 'returns the non-json value as a json' do
68
+ response = { 'status' => 1, 'data' => 'non-json return', 'msg' => nil }
69
+
70
+ expect(rest_client.parse_response(:action, 'non-json return')).to eq(response)
40
71
  end
41
72
 
42
- it 'Should return a parsed json return' do
43
- expect(subject.parse_response(:action, '{"status":1,"data":28,"msg":null}')).to eq({'status' => 1, 'data' => 28, "msg" => nil})
73
+ it 'returns a parsed json return' do
74
+ response = { 'status' => 1, 'data' => 28, 'msg' => nil }
75
+
76
+ expect(rest_client.parse_response(:action, '{"status":1,"data":28,"msg":null}')).to eq(response)
44
77
  end
45
78
  end
46
-
47
- end
79
+ end
@@ -1,3 +1,2 @@
1
1
  --colour
2
- --format Fuubar
3
- --backtrace
2
+ --backtrace
@@ -1,12 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems'
2
4
 
3
5
  $LOAD_PATH.unshift(File.dirname(__FILE__))
4
6
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
7
 
6
- # require 'coveralls'
7
- # require 'simplecov'
8
+ require 'simplecov'
8
9
 
9
- # SimpleCov.start
10
+ SimpleCov.start
10
11
 
11
12
  require 'locasms'
12
13
  require 'rspec'
@@ -16,4 +17,4 @@ Timecop.safe_mode = true
16
17
 
17
18
  RSpec.configure do |config|
18
19
  # see spec.opts
19
- end
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locasms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adilson Carvalho
@@ -10,188 +10,163 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-03-29 00:00:00.000000000 Z
13
+ date: 2020-10-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: bundler
16
+ name: multi_json
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.3'
22
- type: :development
21
+ version: '1.13'
22
+ type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '1.3'
28
+ version: '1.13'
29
29
  - !ruby/object:Gem::Dependency
30
- name: rake
30
+ name: bundler
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - "~>"
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: 10.4.2
35
+ version: '0'
36
36
  type: :development
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - "~>"
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 10.4.2
42
+ version: '0'
43
43
  - !ruby/object:Gem::Dependency
44
- name: rspec
44
+ name: rake
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '3.2'
49
+ version: '13.0'
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '3.2'
56
+ version: '13.0'
57
57
  - !ruby/object:Gem::Dependency
58
- name: fuubar
58
+ name: rspec
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: 2.0.0
63
+ version: '3.9'
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: 2.0.0
70
+ version: '3.9'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: timecop
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - "~>"
76
76
  - !ruby/object:Gem::Version
77
- version: 0.7.3
77
+ version: '0.9'
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: 0.7.3
85
- - !ruby/object:Gem::Dependency
86
- name: guard
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: '0'
92
- type: :development
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- version: '0'
99
- - !ruby/object:Gem::Dependency
100
- name: guard-rspec
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- version: '0'
106
- type: :development
107
- prerelease: false
108
- version_requirements: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: '0'
84
+ version: '0.9'
113
85
  - !ruby/object:Gem::Dependency
114
- name: growl
86
+ name: redcarpet
115
87
  requirement: !ruby/object:Gem::Requirement
116
88
  requirements:
117
- - - ">="
89
+ - - "~>"
118
90
  - !ruby/object:Gem::Version
119
- version: '0'
91
+ version: '3.5'
120
92
  type: :development
121
93
  prerelease: false
122
94
  version_requirements: !ruby/object:Gem::Requirement
123
95
  requirements:
124
- - - ">="
96
+ - - "~>"
125
97
  - !ruby/object:Gem::Version
126
- version: '0'
98
+ version: '3.5'
127
99
  - !ruby/object:Gem::Dependency
128
100
  name: yard
129
101
  requirement: !ruby/object:Gem::Requirement
130
102
  requirements:
131
- - - ">="
103
+ - - "~>"
132
104
  - !ruby/object:Gem::Version
133
- version: '0'
105
+ version: '0.9'
134
106
  type: :development
135
107
  prerelease: false
136
108
  version_requirements: !ruby/object:Gem::Requirement
137
109
  requirements:
138
- - - ">="
110
+ - - "~>"
139
111
  - !ruby/object:Gem::Version
140
- version: '0'
112
+ version: '0.9'
141
113
  - !ruby/object:Gem::Dependency
142
- name: redcarpet
114
+ name: simplecov
143
115
  requirement: !ruby/object:Gem::Requirement
144
116
  requirements:
145
- - - ">="
117
+ - - "~>"
146
118
  - !ruby/object:Gem::Version
147
- version: '0'
119
+ version: '0.18'
148
120
  type: :development
149
121
  prerelease: false
150
122
  version_requirements: !ruby/object:Gem::Requirement
151
123
  requirements:
152
- - - ">="
124
+ - - "~>"
153
125
  - !ruby/object:Gem::Version
154
- version: '0'
126
+ version: '0.18'
155
127
  - !ruby/object:Gem::Dependency
156
- name: simplecov
128
+ name: rubocop
157
129
  requirement: !ruby/object:Gem::Requirement
158
130
  requirements:
159
- - - ">="
131
+ - - "~>"
160
132
  - !ruby/object:Gem::Version
161
- version: '0'
133
+ version: '0.93'
162
134
  type: :development
163
135
  prerelease: false
164
136
  version_requirements: !ruby/object:Gem::Requirement
165
137
  requirements:
166
- - - ">="
138
+ - - "~>"
167
139
  - !ruby/object:Gem::Version
168
- version: '0'
140
+ version: '0.93'
169
141
  - !ruby/object:Gem::Dependency
170
- name: rest-client
142
+ name: rubocop-rspec
171
143
  requirement: !ruby/object:Gem::Requirement
172
144
  requirements:
173
145
  - - "~>"
174
146
  - !ruby/object:Gem::Version
175
- version: '1.6'
176
- type: :runtime
147
+ version: '1.43'
148
+ type: :development
177
149
  prerelease: false
178
150
  version_requirements: !ruby/object:Gem::Requirement
179
151
  requirements:
180
152
  - - "~>"
181
153
  - !ruby/object:Gem::Version
182
- version: '1.6'
183
- description: Cliente para o serviço de disparo de SMS da LocaSMS
154
+ version: '1.43'
155
+ description: |-
156
+ Cliente para o serviço de disparo de SMS da LocaSMS e de sua
157
+ versão para Short Code SMS (SMS Plataforma)
184
158
  email:
185
159
  - lc.adilson@gmail.com
186
160
  - vyper@maneh.org
187
161
  - marco.carvalho.swasthya@gmail.com
188
- executables: []
162
+ executables:
163
+ - console
189
164
  extensions: []
190
165
  extra_rdoc_files: []
191
166
  files:
192
167
  - ".gitignore"
193
- - ".hound.yml"
194
- - ".ruby-style.yml"
168
+ - ".rubocop.yml"
169
+ - ".rubocop_todo.yml"
195
170
  - ".travis.yml"
196
171
  - ".yardopts"
197
172
  - Gemfile
@@ -199,6 +174,7 @@ files:
199
174
  - LICENSE.txt
200
175
  - README.md
201
176
  - Rakefile
177
+ - bin/console
202
178
  - lib/locasms.rb
203
179
  - lib/locasms/client.rb
204
180
  - lib/locasms/exception.rb
@@ -223,20 +199,20 @@ require_paths:
223
199
  - lib
224
200
  required_ruby_version: !ruby/object:Gem::Requirement
225
201
  requirements:
226
- - - ">="
202
+ - - "~>"
227
203
  - !ruby/object:Gem::Version
228
- version: '0'
204
+ version: '2.4'
229
205
  required_rubygems_version: !ruby/object:Gem::Requirement
230
206
  requirements:
231
207
  - - ">="
232
208
  - !ruby/object:Gem::Version
233
209
  version: '0'
234
210
  requirements: []
235
- rubyforge_project:
236
- rubygems_version: 2.5.2
211
+ rubygems_version: 3.0.3
237
212
  signing_key:
238
213
  specification_version: 4
239
- summary: Cliente para o serviço de disparo de SMS da LocaSMS
214
+ summary: Cliente para disparo de SMS, regular e Short Code, através da LocaSMS/SMS
215
+ Plataforma
240
216
  test_files:
241
217
  - spec/lib/locasms/client_spec.rb
242
218
  - spec/lib/locasms/helpers/date_time_helper_spec.rb
@@ -244,4 +220,3 @@ test_files:
244
220
  - spec/lib/locasms/rest_client_spec.rb
245
221
  - spec/spec.opts
246
222
  - spec/spec_helper.rb
247
- has_rdoc: