torasup 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 58441e57888b60e74180d3839b58228c9173dc1d
4
+ data.tar.gz: e5ef2e5a914ae3fe5948226b26e2847a4d493ae8
5
+ SHA512:
6
+ metadata.gz: 458f7e38e714dbcabc1205d5036f7e769c691bd65596a69fa79c19dfece32c9781853b0e692b02d86e457096f34ecf90874fc7c4be895c19843d5626aecce598
7
+ data.tar.gz: c05b9cbec59b960f4f75404a3a1d8cda1a27e3e21e1c2c66d9b26f0b261f9069b06b4e92c4d324b141263c117cd2147a26e9ba7b9dd75927d0d1e95851dc2e76
data/README.md CHANGED
@@ -101,6 +101,11 @@ Sometimes it maybe necessary to override the data that Torasup provides. For exa
101
101
  > op.my_custom_interpolated_property(:interpolation => "bar")
102
102
  => "hello-bar"
103
103
 
104
+ ### Accessing Operator Metadata
105
+
106
+ > Torasup::Operator.all["kh"]["metfone"]["prefixes"]
107
+ => ["85597", "85588"]
108
+
104
109
  ### Registering Operators
105
110
 
106
111
  Sometimes you may only be interested in certain prefixes. For example let's say you want to match phone numbers from a certain operator from the database. You can register operators for this purpose. e.g.
@@ -22,6 +22,20 @@ module Torasup
22
22
  Torasup.registered_prefixes
23
23
  end
24
24
 
25
+ def self.all
26
+ operators = {}
27
+ Torasup.prefixes.each do |prefix, metadata|
28
+ prefix_country_id = metadata["country_id"]
29
+ country_operators = operators[prefix_country_id] ||= {}
30
+ prefix_operator_id = metadata["id"]
31
+ operator_metadata = country_operators[prefix_operator_id] ||= metadata.dup
32
+ operator_metadata.delete("prefix")
33
+ prefixes = operator_metadata["prefixes"] ||= []
34
+ prefixes << prefix
35
+ end
36
+ operators
37
+ end
38
+
25
39
  private
26
40
 
27
41
  def parse_phone_number(area_code_or_prefix, unresolved_local_number)
@@ -32,7 +32,7 @@ module Torasup
32
32
  operator_assertions[country_prefix] = {}
33
33
  default_assertions = {"country_code" => country_prefix}
34
34
  with_operator_data(country_id, options) do |operator, operator_data|
35
- default_operator_assertions = operator_data["assertions"].merge("id" => operator).merge(default_assertions)
35
+ default_operator_assertions = operator_data["assertions"].merge("country_id" => country_id, "id" => operator).merge(default_assertions)
36
36
  with_operator_area_codes(country_data, operator_data) do |area_code_prefix, area_code, area|
37
37
  operator_assertions[country_prefix][area_code] = {}
38
38
  local_number = ("0" * (6 - area_code_prefix.length))
@@ -1,3 +1,3 @@
1
1
  module Torasup
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/torasup.rb CHANGED
@@ -51,6 +51,10 @@ module Torasup
51
51
  @registered_pstn_prefixes.keys
52
52
  end
53
53
 
54
+ def prefixes
55
+ @pstn_prefixes.dup
56
+ end
57
+
54
58
  private
55
59
 
56
60
  def load_pstn_prefixes!
@@ -100,7 +104,7 @@ module Torasup
100
104
  end
101
105
 
102
106
  def operator_metadata(country_id, operator)
103
- {"id" => operator}.merge(operator_data(country_id, operator)["metadata"] || {})
107
+ {"country_id" => country_id, "id" => operator}.merge(operator_data(country_id, operator)["metadata"] || {})
104
108
  end
105
109
 
106
110
  def operator_area_code_prefixes(country_id, operator)
@@ -29,6 +29,22 @@ module Torasup
29
29
  end
30
30
  end
31
31
 
32
+ describe ".all" do
33
+ it "should return all the operators with their metadata" do
34
+ operators = Operator.all
35
+ operators = Operator.all # run it twice to highlight the duplication problem
36
+ with_operators do |number_parts, assertions|
37
+ operator = operators[assertions["country_id"]][assertions["id"]]
38
+ operator["country_id"].should == assertions["country_id"]
39
+ operator["id"].should == assertions["id"]
40
+ operator["prefixes"].should == operator["prefixes"].uniq
41
+ operator["prefixes"].should include(
42
+ assertions["country_code"].to_s + assertions["area_code"].to_s + assertions["prefix"].to_s
43
+ )
44
+ end
45
+ end
46
+ end
47
+
32
48
  shared_examples_for "an operator" do
33
49
  it "should return all the operator metadata" do
34
50
  with_operators(options) do |number_parts, assertions|
@@ -5,8 +5,8 @@ module Torasup
5
5
  include PstnHelpers
6
6
 
7
7
  subject { PhoneNumber.new("123456789") }
8
- let(:location) { mock(Torasup::Location).as_null_object }
9
- let(:operator) { mock(Torasup::Operator).as_null_object }
8
+ let(:location) { double(Torasup::Location).as_null_object }
9
+ let(:operator) { double(Torasup::Operator).as_null_object }
10
10
 
11
11
  describe "#location" do
12
12
  it "should return an instance of Torasup::Location" do
metadata CHANGED
@@ -1,98 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torasup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - David Wilkie
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-26 00:00:00.000000000 Z
11
+ date: 2013-08-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: countries
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: phony
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: deep_merge
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rake
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
- description: ! '"Retuns metadata about a phone number such as operator, area code
95
- and more"'
83
+ description: '"Retuns metadata about a phone number such as operator, area code and
84
+ more"'
96
85
  email:
97
86
  - dwilkie@gmail.com
98
87
  executables: []
@@ -122,39 +111,30 @@ files:
122
111
  - spec/torasup/location_spec.rb
123
112
  - spec/torasup/operator_spec.rb
124
113
  - spec/torasup/phone_number_spec.rb
125
- - spec/torasup_spec.rb
126
114
  - torasup.gemspec
127
115
  homepage: https://github.com/dwilkie/torasup/
128
116
  licenses: []
117
+ metadata: {}
129
118
  post_install_message:
130
119
  rdoc_options: []
131
120
  require_paths:
132
121
  - lib
133
122
  required_ruby_version: !ruby/object:Gem::Requirement
134
- none: false
135
123
  requirements:
136
- - - ! '>='
124
+ - - '>='
137
125
  - !ruby/object:Gem::Version
138
126
  version: '0'
139
- segments:
140
- - 0
141
- hash: -283226445
142
127
  required_rubygems_version: !ruby/object:Gem::Requirement
143
- none: false
144
128
  requirements:
145
- - - ! '>='
129
+ - - '>='
146
130
  - !ruby/object:Gem::Version
147
131
  version: '0'
148
- segments:
149
- - 0
150
- hash: -283226445
151
132
  requirements: []
152
133
  rubyforge_project:
153
- rubygems_version: 1.8.24
134
+ rubygems_version: 2.0.3
154
135
  signing_key:
155
- specification_version: 3
156
- summary: ! '"Retuns metadata about a phone number such as operator, area code and
157
- more"'
136
+ specification_version: 4
137
+ summary: '"Retuns metadata about a phone number such as operator, area code and more"'
158
138
  test_files:
159
139
  - spec/spec_helper.rb
160
140
  - spec/support/custom_pstn.yaml
@@ -165,4 +145,3 @@ test_files:
165
145
  - spec/torasup/location_spec.rb
166
146
  - spec/torasup/operator_spec.rb
167
147
  - spec/torasup/phone_number_spec.rb
168
- - spec/torasup_spec.rb
data/spec/torasup_spec.rb DELETED
@@ -1,4 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Torasup do
4
- end