gphone 0.2.2 → 0.3.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: 81c4ba05b34d16b4da6ef784c35c47334ab5d34a
4
- data.tar.gz: 5cb16f4316cac2fc44f2834993fd5aac40b71d77
3
+ metadata.gz: e9345357baa42222d0a0fb7a47dab16542f28013
4
+ data.tar.gz: c28779d3c930ad8788bd2daced1759809192b8f1
5
5
  SHA512:
6
- metadata.gz: ec9eb157c6d46b9e138b20379e3207345bc69c2394c3f009236fc60a1d793d51eda3777e44fe30e8abacb29d543a463b06f5b7cc508fd040f94d332c1a19d1b2
7
- data.tar.gz: 7ad1376290ac4dce79d040e6f0e7bc7743d17f7f9e580624dff17d799e4c7c905896666551f1c98587789ce342a56a2a19627b2793e433fc7d50e2f099a66640
6
+ metadata.gz: 802a4aa361f20e82dbd56b0406fac04e4a6f918161e3ff51213dcb68e454547eec5e228adb397c6b2b2b4778c62aea4d77c18706731cbc9e5fe9fd3d759d435a
7
+ data.tar.gz: da9d3e32e272f00c04a9867d029cb7ba69e285ff791bc589e23fb732d5d9a6ac1615f61c0b1c3e0c2db06f022de7a1ef604053d188515c6087008f1294a7f73e
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.3.0
@@ -3,6 +3,7 @@
3
3
  #include "rice/Data_Type.hpp"
4
4
  #include "rice/Constructor.hpp"
5
5
  #include <string>
6
+ #include <iostream>
6
7
  #include <phonenumbers/phonenumberutil.h>
7
8
  #include <phonenumbers/phonenumbermatcher.h>
8
9
 
@@ -108,6 +109,55 @@ namespace {
108
109
  return formatted_number;
109
110
  }
110
111
 
112
+ const string national_prefix()
113
+ {
114
+ string region_code;
115
+ string national_prefix;
116
+
117
+ pu().GetRegionCodeForCountryCode(parsed_number.country_code(), &region_code);
118
+ pu().GetNddPrefixForRegion(region_code, true, &national_prefix);
119
+
120
+ return national_prefix;
121
+ }
122
+
123
+ const string area_code()
124
+ {
125
+ string area_code;
126
+ string national_significant_number;
127
+ string region_code;
128
+
129
+ pu().GetNationalSignificantNumber(parsed_number, &national_significant_number);
130
+ pu().GetRegionCodeForCountryCode(parsed_number.country_code(), &region_code);
131
+
132
+
133
+ int area_code_length = pu().GetLengthOfGeographicalAreaCode(parsed_number);
134
+
135
+ if (area_code_length > 0) {
136
+ area_code = national_significant_number.substr(0, area_code_length);
137
+ } else {
138
+ area_code = "";
139
+ }
140
+
141
+ return area_code;
142
+ }
143
+
144
+ const string subscriber_number()
145
+ {
146
+ string subscriber_number;
147
+ string national_significant_number;
148
+ pu().GetNationalSignificantNumber(parsed_number, &national_significant_number);
149
+
150
+ int area_code_length = pu().GetLengthOfGeographicalAreaCode(parsed_number);
151
+
152
+ if (area_code_length > 0) {
153
+ subscriber_number = national_significant_number.substr(area_code_length, string::npos);
154
+ } else {
155
+ subscriber_number = national_significant_number;
156
+ }
157
+
158
+ return subscriber_number;
159
+ }
160
+
111
161
  const string get_type()
112
162
  {
113
163
  switch(type) {
@@ -18,6 +18,9 @@ void Init_gphone() {
18
18
  .define_method("possible?", &GPhone::is_possible)
19
19
  .define_method("format_national", &GPhone::format_national)
20
20
  .define_method("normalize", &GPhone::normalize)
21
+ .define_method("national_prefix", &GPhone::national_prefix)
22
+ .define_method("area_code", &GPhone::area_code)
23
+ .define_method("subscriber_number", &GPhone::subscriber_number)
21
24
  .define_method("type", &GPhone::get_type);
22
25
 
23
26
  Class rb_cGPhoneOfflineGeocoder = define_class<GPhoneOfflineGeocoder>("GPhoneOfflineGeocoder")
@@ -2,17 +2,17 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: gphone 0.2.2 ruby ext
5
+ # stub: gphone 0.3.0 ruby ext
6
6
  # stub: ext/gphone/extconf.rb
7
7
 
8
8
  Gem::Specification.new do |s|
9
9
  s.name = "gphone"
10
- s.version = "0.2.2"
10
+ s.version = "0.3.0"
11
11
 
12
12
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
13
  s.require_paths = ["ext"]
14
14
  s.authors = ["Tobias Begalke"]
15
- s.date = "2015-10-05"
15
+ s.date = "2016-01-08"
16
16
  s.description = "ruby bindings for Google's libphonenumber (see http://code.google.com/p/libphonenumber/)"
17
17
  s.email = "tob@spyz.org"
18
18
  s.extensions = ["ext/gphone/extconf.rb"]
@@ -21,6 +21,9 @@ describe "GPhone.new('+49 09131/76352435', 'DE') (ie. with a valid number)" do
21
21
  its(:national_number) { should == 913176352435 }
22
22
  its(:normalize) { should == '+49913176352435' }
23
23
  its(:format_national) { should == '09131 76352435' }
24
+ its(:area_code) { should == '9131' }
25
+ its(:subscriber_number) { should == '76352435' }
26
+ its(:national_prefix) { should == '0' }
24
27
  its(:type) { should == 'fixed line' }
25
28
 
26
29
  end
@@ -46,6 +49,9 @@ describe "GPhone.new('09131/76352435', 'DE') (with a valid number but sans count
46
49
  its(:national_number) { should == 913176352435 }
47
50
  its(:normalize) { should == '+49913176352435' }
48
51
  its(:format_national) { should == '09131 76352435' }
52
+ its(:area_code) { should == '9131' }
53
+ its(:subscriber_number) { should == '76352435' }
54
+ its(:national_prefix) { should == '0' }
49
55
  its(:type) { should == 'fixed line' }
50
56
  end
51
57
 
@@ -71,6 +77,9 @@ describe "GPhone.new('+499131/76352435') (with a valid number but sans country p
71
77
  its(:national_number) { should == 913176352435 }
72
78
  its(:normalize) { should == '+49913176352435' }
73
79
  its(:format_national) { should == '09131 76352435' }
80
+ its(:area_code) { should == '9131' }
81
+ its(:subscriber_number) { should == '76352435' }
82
+ its(:national_prefix) { should == '0' }
74
83
  its(:type) { should == 'fixed line' }
75
84
  end
76
85
 
@@ -101,6 +110,9 @@ describe "GPhone.new('+12069735100') (i.e. a fully qualified number)" do
101
110
  its(:national_number) { should == 2069735100 }
102
111
  its(:normalize) { should == '+12069735100' }
103
112
  its(:format_national) { should == '(206) 973-5100' }
113
+ its(:area_code) { should == '206' }
114
+ its(:subscriber_number) { should == '9735100' }
115
+ its(:national_prefix) { should == '1' }
104
116
  its(:type) { should == "unknown" }
105
117
  end
106
118
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gphone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Begalke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-05 00:00:00.000000000 Z
11
+ date: 2016-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice