piliponi 1.1.0 → 1.2.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
  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