piliponi 1.1.0 → 1.2.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
  SHA1:
3
- metadata.gz: e17b42c405d47c28ce0322084f2807d51bfaca6d
4
- data.tar.gz: a4bd72acdc0c0c7ae91f1a05e3d7cc8f27800f02
3
+ metadata.gz: 2fc73d412120edaa5b8dbd13b56df4742cdcb0c3
4
+ data.tar.gz: e9bb625a0be9c043c20e28bcfeb3f0da28b37b2e
5
5
  SHA512:
6
- metadata.gz: db1d7ff2967a5fe8478e129d412e7d82635b7b5b2a80012640ca602e0b82a40dd4918ca3c4b6d4d29385747eaad930c3f8b4547089bc555182b5ada6414bf640
7
- data.tar.gz: d7210b10f80175e02137bb9a500b6629e28bcae974934b237d8cf7b8ec7c7bb79148d10e1a7c8c10380cbc1c8244f0106e9a382b67266ec3c06938413932b9c4
6
+ metadata.gz: 61f57fc4c136cdfe3758bb0bb1eeaf59d38ae78a3e65931be7e947bf9f72b2fd92139440c6fcd90ff8dcd6f979309f3234264215c88e24efbc677bd40c240640
7
+ data.tar.gz: a5e8368ed8c8dfd83d66211c4be625b3322565be48cacc3dd971a5beea4067f13175571ad4a7098a1fa2d6c01b53764703f28fcd9cee17bbfcf086f207611f8a
data/README.md CHANGED
@@ -78,8 +78,6 @@ Returns formatted numbers as specified
78
78
  ##Needs
79
79
 
80
80
  Accepting Integers
81
- <br>
82
- Thorough testing
83
81
 
84
82
  ## Contributing
85
83
 
@@ -0,0 +1,57 @@
1
+ smart:
2
+ - 0813
3
+ - 0907
4
+ - 0908
5
+ - 0909
6
+ - 0910
7
+ - 0911
8
+ - 0912
9
+ - 0913
10
+ - 0914
11
+ - 0918
12
+ - 0919
13
+ - 0920
14
+ - 0921
15
+ - 0928
16
+ - 0929
17
+ - 0930
18
+ - 0938
19
+ - 0939
20
+ - 0946
21
+ - 0947
22
+ - 0948
23
+ - 0949
24
+ - 0989
25
+ - 0998
26
+ - 0999
27
+ sun:
28
+ - 0922
29
+ - 0923
30
+ - 0924
31
+ - 0932
32
+ - 0933
33
+ - 0934
34
+ - 0942
35
+ - 0943
36
+ globe:
37
+ - 0817
38
+ - 0905
39
+ - 0906
40
+ - 0915
41
+ - 0916
42
+ - 0917
43
+ - 0925
44
+ - 0926
45
+ - 0927
46
+ - 0935
47
+ - 0936
48
+ - 0937
49
+ - 0994
50
+ - 0996
51
+ - 0997
52
+ - 0977
53
+ - 0979
54
+ exetel:
55
+ - 0973
56
+ - 0974
57
+
@@ -1,23 +1,14 @@
1
+ require 'yaml'
2
+
1
3
  module Core
4
+
5
+ PREFIXES = YAML.load_file(File.join(File.dirname(__FILE__),"config/telco.yml"))
6
+
2
7
  class PiliponiApi
3
8
  def lookup(prefix)
4
- smart = %w{0813 0918 0947 0998 0999}
5
- globe = %w{0817 0905 0906 0915 0916 0917 0925 0926 0927 0935 0936 0937 0945 0994 0995 0996 0997}
6
- sun = %w{0922 0923 0932 0933 0934 0942 0943}
7
- smart_others = %w{0907 0908 0909 0910 0912 0919 0920 0921 0928 0929 0930 0938 0939 0946 0948 0949 0989}
8
-
9
+ network = PREFIXES.find { |k,v| v.include? prefix }
9
10
 
10
- if smart.include? prefix
11
- "smart"
12
- elsif globe.include? prefix
13
- "globe"
14
- elsif sun.include? prefix
15
- "sun"
16
- elsif smart_others.include? prefix
17
- "smart_others"
18
- else
19
- "unknown"
20
- end
11
+ network ? network[0] : "unknown"
21
12
  end
22
13
 
23
14
  end
@@ -1,3 +1,3 @@
1
1
  module Piliponi
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -1,259 +1,128 @@
1
1
  require 'spec_helper'
2
2
 
3
- class Dummy
4
- include Piliponi
5
- end
6
-
7
3
  describe Piliponi do
8
4
 
9
- describe "as Instance Methods" do
10
- let!(:piliponi) { Dummy.new }
11
-
12
- context "#plausible?" do
13
-
14
- it "works" do
15
- lambda do
16
- piliponi.plausible?("whatevs")
17
- end.should_not raise_error
18
- end
19
-
20
- it "returns true given 9170000001" do
21
- piliponi.plausible?("9170000001").should eq(true)
22
- end
23
-
24
- it "returns true given 639170000001" do
25
- piliponi.plausible?("639170000001").should eq(true)
26
- end
27
-
28
- it "returns true given +639170000001" do
29
- piliponi.plausible?("+639170000001").should eq(true)
30
- end
31
-
32
- it "returns false given a non-numerical string" do
33
- piliponi.plausible?("wawa").should eq(false)
34
- end
5
+ describe ".plausible?" do
35
6
 
7
+ it "returns true given 9170000001" do
8
+ expect(Piliponi.plausible? "9170000001").to eq(true)
36
9
  end
37
10
 
38
- context "#clean" do
39
-
40
- it "removes characters" do
41
- piliponi.clean("+639170000001").should eq("639170000001")
42
- end
43
-
44
- it "returns nil if no number is placed" do
45
- piliponi.clean.should be_nil
46
- end
47
-
11
+ it "returns true given 639170000001" do
12
+ expect(Piliponi.plausible? "639170000001").to eq(true)
48
13
  end
49
14
 
50
- context "#normalize" do
51
- let(:number) { '(0919) 363-2598' }
52
-
53
- it "formats to 09XXXXXXXX" do
54
- piliponi.normalize(number, {format: 'local'}).should eq('09193632598')
55
- end
56
-
57
- it "formats to +639XXXXXXX" do
58
- piliponi.normalize(number, {format: 'international'}).should eq('+639193632598')
59
- end
60
-
61
- it "formats to 9XXXXXXX" do
62
- piliponi.normalize(number, {format: 'pure'}).should eq('9193632598')
63
- end
64
-
65
- context "when the format passed is not recognized" do
66
-
67
- it "raises FormatNotRecognizedException" do
68
- expect{
69
- piliponi.normalize(number, format: :foo)
70
- }.to raise_error(FormatNotRecognizedException)
71
-
72
- expect{
73
- piliponi.normalize(number, format: :foo)
74
- }.to raise_error(FormatNotRecognizedException)
75
- end
76
-
77
- end
78
-
79
- context "when the number is not valid" do
80
-
81
- it "raises InvalidPhoneNumberException" do
82
- expect{
83
- piliponi.normalize("notanumber", format: :local)
84
- }.to raise_error(InvalidPhoneNumberException)
85
- end
86
-
87
- end
15
+ it "returns true given +639170000001" do
16
+ expect(Piliponi.plausible? "+639170000001").to eq(true)
88
17
  end
89
18
 
90
- context "#telco?" do
91
-
92
- it "returns smart for 09XX" do
93
- piliponi.telco?('09181234567').should eq('smart')
94
- end
95
-
96
- it "returns globe for 09XX" do
97
- piliponi.telco?("09170000000").should eq("globe")
98
- end
99
-
100
- it "returns sun for 09XX" do
101
- piliponi.telco?("09220000000").should eq("sun")
102
- end
103
-
104
- it "returns talk and text/ addict or red" do
105
- piliponi.telco?("09070000000").should eq("smart_others")
106
- end
107
-
19
+ it "returns false given a non-numerical string" do
20
+ expect(Piliponi.plausible? "wawa").to eq(false)
108
21
  end
109
22
 
110
- context '#prefix' do
111
- describe '09171231234' do
23
+ end
112
24
 
113
- it 'returns 0917' do
114
- expect(piliponi.prefix('09171231234')).to eq '0917'
115
- expect(piliponi.prefix('639171231234')).to eq '0917'
116
- expect(piliponi.prefix('9171231234')).to eq '0917'
117
- end
25
+ describe ".clean" do
118
26
 
119
- end
27
+ it "removes characters" do
28
+ expect(Piliponi.clean "+639170000001").to eq("639170000001")
120
29
  end
121
30
 
122
- context '#clean_prefix' do
123
- describe '0917' do
124
-
125
- it 'retunrs 0917' do
126
- expect(piliponi.prefix('0917')).to eq '0917'
127
- expect(piliponi.prefix('63917')).to eq '0917'
128
- expect(piliponi.prefix('917')).to eq '0917'
129
- end
130
-
131
- end
31
+ it "returns nil if no number is placed" do
32
+ expect(Piliponi.clean).to be_nil
132
33
  end
133
- end
134
-
135
- describe "as Singleton Methods" do
136
-
137
- context "#plausible?" do
138
34
 
139
- it "works" do
140
- lambda do
141
- Piliponi.plausible?("whatevs")
142
- end.should_not raise_error
143
- end
144
-
145
- it "returns true given 9170000001" do
146
- Piliponi.plausible?("9170000001").should eq(true)
147
- end
148
-
149
- it "returns true given 639170000001" do
150
- Piliponi.plausible?("639170000001").should eq(true)
151
- end
35
+ end
152
36
 
153
- it "returns true given +639170000001" do
154
- Piliponi.plausible?("+639170000001").should eq(true)
155
- end
156
-
157
- it "returns false given a non-numerical string" do
158
- Piliponi.plausible?("wawa").should eq(false)
159
- end
37
+ describe ".normalize" do
38
+ let(:number) { '(0919) 363-2598' }
160
39
 
40
+ it "formats to 09XXXXXXXX" do
41
+ expect(Piliponi.normalize number, {format: 'local'}).to eq('09193632598')
161
42
  end
162
43
 
163
- context "#clean" do
164
-
165
- it "removes characters" do
166
- Piliponi.clean("+639170000001").should eq("639170000001")
167
- end
168
-
169
- it "returns nil if no number is placed" do
170
- Piliponi.clean.should be_nil
171
- end
172
-
44
+ it "formats to +639XXXXXXX" do
45
+ expect(Piliponi.normalize number, {format: 'international'}).to eq('+639193632598')
173
46
  end
174
47
 
175
- context "#normalize" do
176
- let(:number) { '(0919) 363-2598' }
48
+ it "formats to 9XXXXXXX" do
49
+ expect(Piliponi.normalize number, {format: 'pure'}).to eq('9193632598')
50
+ end
177
51
 
178
- it "formats to 09XXXXXXXX" do
179
- Piliponi.normalize(number, {format: 'local'}).should eq('09193632598')
180
- end
52
+ context "when the format passed is not recognized" do
181
53
 
182
- it "formats to +639XXXXXXX" do
183
- Piliponi.normalize(number, {format: 'international'}).should eq('+639193632598')
184
- end
54
+ it "raises FormatNotRecognizedException" do
55
+ expect{
56
+ Piliponi.normalize(number, format: :foo)
57
+ }.to raise_error(FormatNotRecognizedException)
185
58
 
186
- it "formats to 9XXXXXXX" do
187
- Piliponi.normalize(number, {format: 'pure'}).should eq('9193632598')
59
+ expect{
60
+ Piliponi.normalize(number, format: :foo)
61
+ }.to raise_error(FormatNotRecognizedException)
188
62
  end
189
63
 
190
- context "when the format passed is not recognized" do
191
-
192
- it "raises FormatNotRecognizedException" do
193
- expect{
194
- Piliponi.normalize(number, format: :foo)
195
- }.to raise_error(FormatNotRecognizedException)
64
+ end
196
65
 
197
- expect{
198
- Piliponi.normalize(number, format: :foo)
199
- }.to raise_error(FormatNotRecognizedException)
200
- end
66
+ context "when the number is not valid" do
201
67
 
68
+ it "raises InvalidPhoneNumberException" do
69
+ expect{
70
+ Piliponi.normalize("notanumber", format: :local)
71
+ }.to raise_error(InvalidPhoneNumberException)
202
72
  end
203
73
 
204
- context "when the number is not valid" do
205
-
206
- it "raises InvalidPhoneNumberException" do
207
- expect{
208
- Piliponi.normalize("notanumber", format: :local)
209
- }.to raise_error(InvalidPhoneNumberException)
210
- end
211
-
212
- end
213
74
  end
75
+ end
214
76
 
215
- context "#telco?" do
77
+ describe ".telco?" do
216
78
 
79
+ context "with valid prefixes" do
217
80
  it "returns smart for 09XX" do
218
- Piliponi.telco?('09181234567').should eq('smart')
81
+ expect(Piliponi.telco? '09181234567').to eq('smart')
219
82
  end
220
83
 
221
84
  it "returns globe for 09XX" do
222
- Piliponi.telco?("09170000000").should eq("globe")
85
+ expect(Piliponi.telco? "09170000000").to eq('globe')
223
86
  end
224
87
 
225
88
  it "returns sun for 09XX" do
226
- Piliponi.telco?("09220000000").should eq("sun")
89
+ expect(Piliponi.telco? "09220000000").to eq('sun')
227
90
  end
228
91
 
229
- it "returns talk and text/ addict or red" do
230
- Piliponi.telco?("09070000000").should eq("smart_others")
92
+ it "returns exetel" do
93
+ expect(Piliponi.telco? "09730000000").to eq('exetel')
231
94
  end
95
+ end
232
96
 
97
+ context "with unknown prefixes" do
98
+ it "returns unknown" do
99
+ expect(Piliponi.telco? "0890000000").to eq('unknown')
100
+ end
233
101
  end
234
102
 
235
- context '#prefix' do
236
- describe '09171231234' do
103
+ end
237
104
 
238
- it 'returns 0917' do
239
- expect(Piliponi.prefix('09171231234')).to eq '0917'
240
- expect(Piliponi.prefix('639171231234')).to eq '0917'
241
- expect(Piliponi.prefix('9171231234')).to eq '0917'
242
- end
105
+ describe '.prefix' do
106
+ context '09171231234' do
243
107
 
108
+ it 'returns 0917' do
109
+ expect(Piliponi.prefix('09171231234')).to eq '0917'
110
+ expect(Piliponi.prefix('639171231234')).to eq '0917'
111
+ expect(Piliponi.prefix('9171231234')).to eq '0917'
244
112
  end
245
- end
246
113
 
247
- context '#clean_prefix' do
248
- describe '0917' do
114
+ end
115
+ end
249
116
 
250
- it 'retunrs 0917' do
251
- expect(Piliponi.prefix('0917')).to eq '0917'
252
- expect(Piliponi.prefix('63917')).to eq '0917'
253
- expect(Piliponi.prefix('917')).to eq '0917'
254
- end
117
+ describe '.clean_prefix' do
118
+ context '0917' do
255
119
 
120
+ it 'returns 0917' do
121
+ expect(Piliponi.prefix('0917')).to eq '0917'
122
+ expect(Piliponi.prefix('63917')).to eq '0917'
123
+ expect(Piliponi.prefix('917')).to eq '0917'
256
124
  end
125
+
257
126
  end
258
127
  end
259
128
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: piliponi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ace Dimasuhid
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-06 00:00:00.000000000 Z
11
+ date: 2015-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: Philippine Mobile Phone Formatter
@@ -59,13 +59,14 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gitignore
63
- - .travis.yml
62
+ - ".gitignore"
63
+ - ".travis.yml"
64
64
  - Gemfile
65
65
  - LICENSE.txt
66
66
  - README.md
67
67
  - Rakefile
68
68
  - lib/piliponi.rb
69
+ - lib/piliponi/config/telco.yml
69
70
  - lib/piliponi/core.rb
70
71
  - lib/piliponi/piliponi_api.rb
71
72
  - lib/piliponi/support.rb
@@ -83,17 +84,17 @@ require_paths:
83
84
  - lib
84
85
  required_ruby_version: !ruby/object:Gem::Requirement
85
86
  requirements:
86
- - - '>='
87
+ - - ">="
87
88
  - !ruby/object:Gem::Version
88
89
  version: '0'
89
90
  required_rubygems_version: !ruby/object:Gem::Requirement
90
91
  requirements:
91
- - - '>='
92
+ - - ">="
92
93
  - !ruby/object:Gem::Version
93
94
  version: '0'
94
95
  requirements: []
95
96
  rubyforge_project:
96
- rubygems_version: 2.0.6
97
+ rubygems_version: 2.4.5
97
98
  signing_key:
98
99
  specification_version: 4
99
100
  summary: Mobile Phone Number Formatter for the Philippines