gphone 0.1.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.
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ gem 'rice'
7
+
8
+ # Add dependencies to develop your gem here.
9
+ # Include everything needed to run rake, tests, features, etc.
10
+
11
+ group :test do
12
+ gem 'rake-compiler'
13
+ end
14
+
15
+ group :development do
16
+ gem "rspec", "~> 2.8.0"
17
+ gem "rdoc", "~> 3.12"
18
+ gem "bundler", ">= 1.0.0"
19
+ gem "jeweler", "~> 1.8.4"
20
+ gem "simplecov", ">= 0"
21
+ end
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2012, Tobias Begalke
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+ * Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ * Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+ * Neither the name of the <organization> nor the
12
+ names of its contributors may be used to endorse or promote products
13
+ derived from this software without specific prior written permission.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
19
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,38 @@
1
+ gphone
2
+ ======
3
+
4
+ Ruby bindings to Google's libphonenumber. With gphone you can parse,
5
+ validate and normalize and format phone numbers and determine their
6
+ type. So far this library offers only very basic coverage of the
7
+ features the C++ library offers.
8
+
9
+ Usage
10
+ -----
11
+
12
+ ```ruby
13
+ require 'gphone'
14
+
15
+ ph = GPhone.new('+49 09131/76352435', 'DE')
16
+
17
+ ph.valid?
18
+ > true
19
+
20
+ ph.possible?
21
+ > true
22
+
23
+ ph.normalize
24
+ > "+49913176352435"
25
+
26
+ ph.format_national
27
+ > "09131 76352435"
28
+
29
+ ph.type
30
+ > "fixed line"
31
+ ```
32
+
33
+
34
+ Contribute
35
+ ----------
36
+
37
+ Feel free to fork this repository and send me pull requests if you add
38
+ functionality.
@@ -0,0 +1,54 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "gphone"
18
+ gem.homepage = "http://github.com/elcamino/gphone"
19
+ gem.license = "BSD"
20
+ gem.summary = %Q{ruby bindings for Google's libphonenumber}
21
+ gem.description = %Q{ruby bindings for Google's libphonenumber (see http://code.google.com/p/libphonenumber/)}
22
+ gem.email = "tob@spyz.org"
23
+ gem.authors = ["Tobias Begalke"]
24
+ gem.files += Dir['ext/gphone/*.{cc,rb}']
25
+ gem.require_paths = ['ext']
26
+ # dependencies defined in Gemfile
27
+ end
28
+ Jeweler::RubygemsDotOrgTasks.new
29
+
30
+ require 'rspec/core'
31
+ require 'rspec/core/rake_task'
32
+ RSpec::Core::RakeTask.new(:spec) do |spec|
33
+ spec.pattern = FileList['spec/**/*_spec.rb']
34
+ end
35
+
36
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
37
+ spec.pattern = 'spec/**/*_spec.rb'
38
+ spec.rcov = true
39
+ end
40
+
41
+ task :default => :spec
42
+
43
+ require 'rdoc/task'
44
+ Rake::RDocTask.new do |rdoc|
45
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
46
+
47
+ rdoc.rdoc_dir = 'rdoc'
48
+ rdoc.title = "gphone #{version}"
49
+ rdoc.rdoc_files.include('README*')
50
+ rdoc.rdoc_files.include('lib/**/*.rb')
51
+ end
52
+
53
+ require 'rake/extensiontask'
54
+ Rake::ExtensionTask.new('gphone')
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,255 @@
1
+
2
+ SHELL = /bin/sh
3
+
4
+ # V=0 quiet, V=1 verbose. other values don't work.
5
+ V = 0
6
+ Q1 = $(V:1=)
7
+ Q = $(Q1:0=@)
8
+ n=$(NULLCMD)
9
+ ECHO1 = $(V:1=@$n)
10
+ ECHO = $(ECHO1:0=@echo)
11
+
12
+ #### Start of system configuration section. ####
13
+
14
+ srcdir = .
15
+ topdir = /usr/local/rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1
16
+ hdrdir = /usr/local/rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1
17
+ arch_hdrdir = /usr/local/rvm/rubies/ruby-1.9.3-p327/include/ruby-1.9.1/$(arch)
18
+ VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
19
+
20
+ prefix = $(DESTDIR)/usr/local/rvm/rubies/ruby-1.9.3-p327
21
+
22
+ rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
23
+
24
+ exec_prefix = $(prefix)
25
+
26
+ vendorhdrdir = $(rubyhdrdir)/vendor_ruby
27
+
28
+ sitehdrdir = $(rubyhdrdir)/site_ruby
29
+
30
+ rubyhdrdir = $(includedir)/$(RUBY_BASE_NAME)-$(ruby_version)
31
+
32
+ vendordir = $(rubylibprefix)/vendor_ruby
33
+
34
+ sitedir = $(rubylibprefix)/site_ruby
35
+
36
+ ridir = $(datarootdir)/$(RI_BASE_NAME)
37
+
38
+ mandir = $(datarootdir)/man
39
+
40
+ localedir = $(datarootdir)/locale
41
+
42
+ libdir = $(exec_prefix)/lib
43
+
44
+ psdir = $(docdir)
45
+
46
+ pdfdir = $(docdir)
47
+
48
+ dvidir = $(docdir)
49
+
50
+ htmldir = $(docdir)
51
+
52
+ infodir = $(datarootdir)/info
53
+
54
+ docdir = $(datarootdir)/doc/$(PACKAGE)
55
+
56
+ oldincludedir = $(DESTDIR)/usr/include
57
+
58
+ includedir = $(prefix)/include
59
+
60
+ localstatedir = $(prefix)/var
61
+
62
+ sharedstatedir = $(prefix)/com
63
+
64
+ sysconfdir = $(prefix)/etc
65
+
66
+ datadir = $(datarootdir)
67
+
68
+ datarootdir = $(prefix)/share
69
+
70
+ libexecdir = $(exec_prefix)/libexec
71
+
72
+ sbindir = $(exec_prefix)/sbin
73
+
74
+ bindir = $(exec_prefix)/bin
75
+
76
+ rubylibdir = $(rubylibprefix)/$(ruby_version)
77
+
78
+ archdir = $(rubylibdir)/$(arch)
79
+
80
+ sitelibdir = $(sitedir)/$(ruby_version)
81
+
82
+ sitearchdir = $(sitelibdir)/$(sitearch)
83
+
84
+ vendorlibdir = $(vendordir)/$(ruby_version)
85
+
86
+ vendorarchdir = $(vendorlibdir)/$(sitearch)
87
+
88
+
89
+ NULLCMD = :
90
+
91
+ CC = gcc
92
+ CXX = g++
93
+ LIBRUBY = $(LIBRUBY_SO)
94
+ LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
95
+ LIBRUBYARG_SHARED = -Wl,-R -Wl,$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)
96
+ LIBRUBYARG_STATIC = -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p327/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p327/lib -lruby-static
97
+ empty =
98
+ OUTFLAG = -o $(empty)
99
+ COUTFLAG = -o $(empty)
100
+
101
+ RUBY_EXTCONF_H =
102
+ cflags = $(optflags) $(debugflags) $(warnflags)
103
+ optflags = -O3
104
+ debugflags = -ggdb
105
+ warnflags = -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration
106
+ CFLAGS = -fPIC -I/usr/local/rvm/usr/include -fPIC $(ARCH_FLAG)
107
+ INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
108
+ DEFS =
109
+ CPPFLAGS = $(DEFS) $(cppflags) -I/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rice-1.4.3/ruby/lib/include
110
+ CXXFLAGS = $(CFLAGS) -Wall -g
111
+ ldflags = -L. -L/usr/local/rvm/usr/lib -rdynamic -Wl,-export-dynamic -L/usr/local/rvm/gems/ruby-1.9.3-p327/gems/rice-1.4.3/ruby/lib/lib
112
+ dldflags =
113
+ ARCH_FLAG =
114
+ DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
115
+ LDSHARED = g++ -shared
116
+ LDSHAREDXX = $(CXX) -shared
117
+ AR = ar
118
+ EXEEXT =
119
+
120
+ RUBY_BASE_NAME = ruby
121
+ RUBY_INSTALL_NAME = ruby
122
+ RUBY_SO_NAME = ruby
123
+ arch = x86_64-linux
124
+ sitearch = $(arch)
125
+ ruby_version = 1.9.1
126
+ ruby = /usr/local/rvm/rubies/ruby-1.9.3-p327/bin/ruby
127
+ RUBY = $(ruby)
128
+ RM = rm -f
129
+ RM_RF = $(RUBY) -run -e rm -- -rf
130
+ RMDIRS = rmdir --ignore-fail-on-non-empty -p
131
+ MAKEDIRS = /bin/mkdir -p
132
+ INSTALL = /usr/bin/install -c
133
+ INSTALL_PROG = $(INSTALL) -m 0755
134
+ INSTALL_DATA = $(INSTALL) -m 644
135
+ COPY = cp
136
+ TOUCH = exit >
137
+
138
+ #### End of system configuration section. ####
139
+
140
+ preload =
141
+
142
+
143
+ CXX = g++
144
+
145
+ libpath = . $(libdir)
146
+ LIBPATH = -L. -L$(libdir) -Wl,-R$(libdir)
147
+ DEFFILE =
148
+
149
+ CLEANFILES = mkmf.log
150
+ DISTCLEANFILES =
151
+ DISTCLEANDIRS =
152
+
153
+ extout =
154
+ extout_prefix =
155
+ target_prefix =
156
+ LOCAL_LIBS =
157
+ LIBS = -lphonenumber -lboost_thread -lrice -Wl,-R -Wl,/usr/local/rvm/rubies/ruby-1.9.3-p327/lib -L/usr/local/rvm/rubies/ruby-1.9.3-p327/lib -lruby -lpthread -lrt -ldl -lcrypt -lm -lc
158
+ SRCS = gphone.cc
159
+ OBJS = gphone.o
160
+ TARGET = gphone
161
+ DLLIB = $(TARGET).so
162
+ EXTSTATIC =
163
+ STATIC_LIB =
164
+
165
+ BINDIR = $(bindir)
166
+ RUBYCOMMONDIR = $(sitedir)$(target_prefix)
167
+ RUBYLIBDIR = $(sitelibdir)$(target_prefix)
168
+ RUBYARCHDIR = $(sitearchdir)$(target_prefix)
169
+ HDRDIR = $(rubyhdrdir)/ruby$(target_prefix)
170
+ ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)
171
+
172
+ TARGET_SO = $(DLLIB)
173
+ CLEANLIBS = $(TARGET).so
174
+ CLEANOBJS = *.o *.bak
175
+
176
+ all: $(DLLIB)
177
+ static: $(STATIC_LIB)
178
+ .PHONY: all install static install-so install-rb
179
+ .PHONY: clean clean-so clean-rb
180
+
181
+ clean-rb-default::
182
+ clean-rb::
183
+ clean-so::
184
+ clean: clean-so clean-rb-default clean-rb
185
+ @-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
186
+
187
+ distclean-rb-default::
188
+ distclean-rb::
189
+ distclean-so::
190
+ distclean: clean distclean-so distclean-rb-default distclean-rb
191
+ @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
192
+ @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
193
+ @-$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true
194
+
195
+ realclean: distclean
196
+ install: install-so install-rb
197
+
198
+ install-so: $(RUBYARCHDIR)/$(DLLIB)
199
+ $(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
200
+ -$(Q)$(MAKEDIRS) $(@D)
201
+ $(INSTALL_PROG) $(DLLIB) $(@D)
202
+ clean-static::
203
+ -$(Q)$(RM) $(STATIC_LIB)
204
+ install-rb: pre-install-rb install-rb-default
205
+ install-rb-default: pre-install-rb-default
206
+ pre-install-rb: Makefile
207
+ pre-install-rb-default: Makefile
208
+ pre-install-rb-default:
209
+ $(ECHO) installing default gphone libraries
210
+ ./.RUBYARCHDIR.time:
211
+ $(Q) $(MAKEDIRS) $(RUBYARCHDIR)
212
+ $(Q) $(TOUCH) $@
213
+
214
+ site-install: site-install-so site-install-rb
215
+ site-install-so: install-so
216
+ site-install-rb: install-rb
217
+
218
+ .SUFFIXES: .c .m .cc .mm .cxx .cpp .C .o
219
+
220
+ .cc.o:
221
+ $(ECHO) compiling $(<)
222
+ $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
223
+
224
+ .mm.o:
225
+ $(ECHO) compiling $(<)
226
+ $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
227
+
228
+ .cxx.o:
229
+ $(ECHO) compiling $(<)
230
+ $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
231
+
232
+ .cpp.o:
233
+ $(ECHO) compiling $(<)
234
+ $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
235
+
236
+ .C.o:
237
+ $(ECHO) compiling $(<)
238
+ $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
239
+
240
+ .c.o:
241
+ $(ECHO) compiling $(<)
242
+ $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
243
+
244
+ .m.o:
245
+ $(ECHO) compiling $(<)
246
+ $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
247
+
248
+ $(DLLIB): $(OBJS) Makefile
249
+ $(ECHO) linking shared-object $(DLLIB)
250
+ -$(Q)$(RM) $(@)
251
+ $(Q) $(LDSHAREDXX) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
252
+
253
+
254
+
255
+ $(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h $(arch_hdrdir)/ruby/config.h
@@ -0,0 +1,7 @@
1
+ require 'mkmf-rice'
2
+
3
+ have_library('boost_thread')
4
+ have_library('phonenumber')
5
+ create_makefile('gphone')
6
+
7
+
@@ -0,0 +1,122 @@
1
+ #include "rice/Class.hpp"
2
+ #include "rice/String.hpp"
3
+ #include "rice/Data_Type.hpp"
4
+ #include "rice/Constructor.hpp"
5
+ #include <string>
6
+ #include <phonenumbers/phonenumberutil.h>
7
+ #include <phonenumbers/phonenumbermatcher.h>
8
+
9
+ using namespace std;
10
+ using namespace i18n::phonenumbers;
11
+ using namespace Rice;
12
+
13
+ namespace {
14
+ class GPhoneException
15
+ : public exception
16
+ {
17
+ virtual const char* what() const throw()
18
+ {
19
+ return "Not a valid phone number!";
20
+ }
21
+ };
22
+
23
+ class GPhone {
24
+ string raw_number;
25
+ string country_code;
26
+ PhoneNumber parsed_number;
27
+ PhoneNumberUtil::PhoneNumberType type;
28
+
29
+ public:
30
+
31
+ GPhone(const string number, const string cc) {
32
+ raw_number = number;
33
+ country_code = cc;
34
+
35
+ if (pu().Parse(raw_number, country_code, &parsed_number) != pu().NO_PARSING_ERROR) {
36
+ throw GPhoneException();
37
+ }
38
+
39
+ type = pu().GetNumberType(parsed_number);
40
+
41
+ }
42
+
43
+ string get_raw_number() { return raw_number; }
44
+ string get_country_code() { return country_code; }
45
+
46
+ PhoneNumberUtil& pu() {
47
+ return *PhoneNumberUtil::GetInstance();
48
+ }
49
+
50
+ const string normalize()
51
+ {
52
+ string formatted_number;
53
+ pu().Format(parsed_number, PhoneNumberUtil::E164, &formatted_number);
54
+ return formatted_number;
55
+ }
56
+
57
+
58
+ bool is_valid()
59
+ {
60
+ return pu().IsValidNumber(parsed_number);
61
+ }
62
+
63
+ bool is_possible()
64
+ {
65
+ return pu().IsPossibleNumber(parsed_number);
66
+ }
67
+
68
+ const string format_national()
69
+ {
70
+ string formatted_number;
71
+ pu().Format(parsed_number, PhoneNumberUtil::NATIONAL, &formatted_number);
72
+ return formatted_number;
73
+ }
74
+
75
+ const string get_type()
76
+ {
77
+ switch(type) {
78
+ case PhoneNumberUtil::FIXED_LINE:
79
+ return "fixed line";
80
+ case PhoneNumberUtil::MOBILE:
81
+ return "mobile";
82
+ case PhoneNumberUtil::TOLL_FREE:
83
+ return "toll free";
84
+ case PhoneNumberUtil::PREMIUM_RATE:
85
+ return "premium_rate";
86
+ case PhoneNumberUtil::SHARED_COST:
87
+ return "shared cost";
88
+ case PhoneNumberUtil::VOIP:
89
+ return "voip";
90
+ case PhoneNumberUtil::PERSONAL_NUMBER:
91
+ return "personal_number";
92
+ case PhoneNumberUtil::PAGER:
93
+ return "pager";
94
+ case PhoneNumberUtil::UAN:
95
+ return "uan";
96
+ case PhoneNumberUtil::VOICEMAIL:
97
+ return "voicemail";
98
+ default:
99
+ return NULL;
100
+ }
101
+ }
102
+ };
103
+
104
+ }
105
+ extern "C"
106
+
107
+ void Init_gphone() {
108
+ RUBY_TRY
109
+ {
110
+ Class rb_cGPhone = define_class<GPhone>("GPhone")
111
+ .define_constructor(Constructor<GPhone, const string, const string>())
112
+ .define_method("raw_number", &GPhone::get_raw_number)
113
+ .define_method("country_code", &GPhone::get_country_code)
114
+ .define_method("valid?", &GPhone::is_valid)
115
+ .define_method("possible?", &GPhone::is_possible)
116
+ .define_method("format_national", &GPhone::format_national)
117
+ .define_method("normalize", &GPhone::normalize)
118
+ .define_method("type", &GPhone::get_type);
119
+ }
120
+ RUBY_CATCH
121
+ }
122
+
@@ -0,0 +1,68 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "gphone"
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Tobias Begalke"]
12
+ s.date = "2012-11-14"
13
+ s.description = "ruby bindings for Google's libphonenumber (see http://code.google.com/p/libphonenumber/)"
14
+ s.email = "tob@spyz.org"
15
+ s.extensions = ["ext/gphone/extconf.rb"]
16
+ s.extra_rdoc_files = [
17
+ "LICENSE.txt",
18
+ "README.md"
19
+ ]
20
+ s.files = [
21
+ ".document",
22
+ ".rspec",
23
+ "Gemfile",
24
+ "LICENSE.txt",
25
+ "README.md",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "ext/gphone/Makefile",
29
+ "ext/gphone/extconf.rb",
30
+ "ext/gphone/gphone.cc",
31
+ "gphone.gemspec",
32
+ "spec/gphone_spec.rb",
33
+ "spec/spec_helper.rb"
34
+ ]
35
+ s.homepage = "http://github.com/elcamino/gphone"
36
+ s.licenses = ["BSD"]
37
+ s.require_paths = ["ext"]
38
+ s.rubygems_version = "1.8.24"
39
+ s.summary = "ruby bindings for Google's libphonenumber"
40
+
41
+ if s.respond_to? :specification_version then
42
+ s.specification_version = 3
43
+
44
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
45
+ s.add_runtime_dependency(%q<rice>, [">= 0"])
46
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
47
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
48
+ s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
49
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
50
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
51
+ else
52
+ s.add_dependency(%q<rice>, [">= 0"])
53
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
54
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
55
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
56
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
57
+ s.add_dependency(%q<simplecov>, [">= 0"])
58
+ end
59
+ else
60
+ s.add_dependency(%q<rice>, [">= 0"])
61
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
62
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
63
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
64
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
65
+ s.add_dependency(%q<simplecov>, [">= 0"])
66
+ end
67
+ end
68
+
@@ -0,0 +1,22 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "GPhone.new('+49 09131/76352435', 'DE') (ie. with a valid number)" do
4
+ subject { GPhone.new('+49 09131/76352435', 'DE') }
5
+
6
+ it { should be }
7
+
8
+ it { should be_an_instance_of GPhone }
9
+ its(:valid?) { should be }
10
+ its(:possible?) { should be }
11
+ its(:raw_number) { should == '+49 09131/76352435' }
12
+ its(:country_code) { should == 'DE' }
13
+ its(:normalize) { should == '+49913176352435' }
14
+ its(:format_national) { should == '09131 76352435' }
15
+ its(:type) { should == 'fixed line' }
16
+
17
+ end
18
+
19
+
20
+ describe "GPhone.new('09543657 4567474567 4674', 'DE') (ie. with an invalid number)" do
21
+ it { lambda { GPhone.new('09543657 4567474567 4674', 'DE') }.should raise_error }
22
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'gphone'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
metadata ADDED
@@ -0,0 +1,160 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gphone
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Tobias Begalke
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rice
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 2.8.0
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.8.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: rdoc
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '3.12'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '3.12'
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 1.0.0
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: jeweler
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 1.8.4
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.8.4
94
+ - !ruby/object:Gem::Dependency
95
+ name: simplecov
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ description: ruby bindings for Google's libphonenumber (see http://code.google.com/p/libphonenumber/)
111
+ email: tob@spyz.org
112
+ executables: []
113
+ extensions:
114
+ - ext/gphone/extconf.rb
115
+ extra_rdoc_files:
116
+ - LICENSE.txt
117
+ - README.md
118
+ files:
119
+ - .document
120
+ - .rspec
121
+ - Gemfile
122
+ - LICENSE.txt
123
+ - README.md
124
+ - Rakefile
125
+ - VERSION
126
+ - ext/gphone/Makefile
127
+ - ext/gphone/extconf.rb
128
+ - ext/gphone/gphone.cc
129
+ - gphone.gemspec
130
+ - spec/gphone_spec.rb
131
+ - spec/spec_helper.rb
132
+ homepage: http://github.com/elcamino/gphone
133
+ licenses:
134
+ - BSD
135
+ post_install_message:
136
+ rdoc_options: []
137
+ require_paths:
138
+ - ext
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ segments:
146
+ - 0
147
+ hash: -1938156335739255995
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ requirements: []
155
+ rubyforge_project:
156
+ rubygems_version: 1.8.24
157
+ signing_key:
158
+ specification_version: 3
159
+ summary: ruby bindings for Google's libphonenumber
160
+ test_files: []