fakie 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.travis.yml +9 -0
- data/Contributing.markdown +19 -0
- data/Gemfile +18 -0
- data/LICENSE +22 -0
- data/Rakefile +23 -0
- data/Readme.markdown +48 -0
- data/fakie.gemspec +23 -0
- data/lib/fakie/errors.rb +4 -0
- data/lib/fakie/java_script.rb +30 -0
- data/lib/fakie/js/fakie.js +138 -0
- data/lib/fakie/js/libphonenumber.js +749 -0
- data/lib/fakie/phone_number.rb +65 -0
- data/lib/fakie/version.rb +3 -0
- data/lib/fakie.rb +262 -0
- data/tasks/import.rake +47 -0
- data/test/fakie/phone_number_test.rb +39 -0
- data/test/fakie_test.rb +9 -0
- data/test/js.html +13 -0
- data/test/test_helper.rb +17 -0
- metadata +83 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
module Fakie
|
2
|
+
class PhoneNumber
|
3
|
+
include JavaScript
|
4
|
+
|
5
|
+
class << self
|
6
|
+
include JavaScript
|
7
|
+
|
8
|
+
# Parse a phone number
|
9
|
+
# @param phone_number [String] phone number to parse
|
10
|
+
# @option options default_country [String] ISO 3166-1 two-letter country code
|
11
|
+
# @return [PhoneNumber] phone number object
|
12
|
+
def parse(phone_number, options = {})
|
13
|
+
region_code = options[:default_country]
|
14
|
+
self.new(js_call('Fakie.parse', phone_number, region_code))
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
attr_reader :e164
|
19
|
+
attr_reader :country_code
|
20
|
+
attr_reader :national_number
|
21
|
+
attr_reader :raw_input
|
22
|
+
attr_reader :country_code_source
|
23
|
+
attr_reader :preferred_domestic_carrier_code
|
24
|
+
attr_reader :region_code
|
25
|
+
attr_reader :type
|
26
|
+
|
27
|
+
# @param hash [Hash] hash of phone number data
|
28
|
+
def initialize(hash)
|
29
|
+
@e164 = hash['e164']
|
30
|
+
@country_code = hash['country_code']
|
31
|
+
@national_number = hash['national_number']
|
32
|
+
@raw_input = hash['raw_input'].to_s
|
33
|
+
@country_code_source = hash['country_code_source']
|
34
|
+
@preferred_domestic_carrier_code = hash['preferred_domestic_carrier_code']
|
35
|
+
@is_possible = hash['is_possible']
|
36
|
+
@is_valid = hash['is_valid']
|
37
|
+
@region_code = hash['region']
|
38
|
+
@type = hash['type']
|
39
|
+
end
|
40
|
+
|
41
|
+
def is_possible?
|
42
|
+
@is_possible
|
43
|
+
end
|
44
|
+
|
45
|
+
def is_valid?
|
46
|
+
@is_valid
|
47
|
+
end
|
48
|
+
|
49
|
+
def international_format(region = self.region_code)
|
50
|
+
raise InvalidPhoneNumber unless self.is_valid?
|
51
|
+
@international_format ||= js_call('Fakie.formatInternational', region, self.e164)
|
52
|
+
end
|
53
|
+
|
54
|
+
def local_format(region = self.region_code)
|
55
|
+
raise InvalidPhoneNumber unless self.is_valid?
|
56
|
+
@local_format ||= js_call('Fakie.formatLocal', region, self.e164)
|
57
|
+
end
|
58
|
+
|
59
|
+
def country_name
|
60
|
+
return nil unless self.region_code
|
61
|
+
Fakie.country_name_for_region_code(self.region_code)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
data/lib/fakie.rb
ADDED
@@ -0,0 +1,262 @@
|
|
1
|
+
require 'fakie/version'
|
2
|
+
require 'fakie/errors'
|
3
|
+
require 'fakie/java_script'
|
4
|
+
require 'fakie/phone_number'
|
5
|
+
|
6
|
+
module Fakie
|
7
|
+
module_function
|
8
|
+
|
9
|
+
# Parse a phone number
|
10
|
+
# @param phone_number [String] phone number to parse
|
11
|
+
# @option options default_country [String] ISO 3166-1 two-letter country code
|
12
|
+
# @return [PhoneNumber] phone number object
|
13
|
+
def parse(phone_number, options = {})
|
14
|
+
PhoneNumber.parse(phone_number, options)
|
15
|
+
end
|
16
|
+
|
17
|
+
def country_name_for_region_code(region_code)
|
18
|
+
@@_country_name_map ||= {
|
19
|
+
'AF' => "Afghanistan",
|
20
|
+
'AL' => "Albania",
|
21
|
+
'DZ' => "Algeria",
|
22
|
+
'AS' => "American Samoa",
|
23
|
+
'AD' => "Andorra",
|
24
|
+
'AO' => "Angola",
|
25
|
+
'AI' => "Anguilla",
|
26
|
+
'AQ' => "Antarctica",
|
27
|
+
'AG' => "Antigua And Barbuda",
|
28
|
+
'AR' => "Argentina",
|
29
|
+
'AM' => "Armenia",
|
30
|
+
'AW' => "Aruba",
|
31
|
+
'AU' => "Australia",
|
32
|
+
'AT' => "Austria",
|
33
|
+
'AZ' => "Azerbaijan",
|
34
|
+
'BS' => "Bahamas",
|
35
|
+
'BH' => "Bahrain",
|
36
|
+
'BD' => "Bangladesh",
|
37
|
+
'BB' => "Barbados",
|
38
|
+
'BY' => "Belarus",
|
39
|
+
'BE' => "Belgium",
|
40
|
+
'BZ' => "Belize",
|
41
|
+
'BJ' => "Benin",
|
42
|
+
'BM' => "Bermuda",
|
43
|
+
'BT' => "Bhutan",
|
44
|
+
'BO' => "Bolivia",
|
45
|
+
'BA' => "Bosnia And Herzegovina",
|
46
|
+
'BW' => "Botswana",
|
47
|
+
'BV' => "Bouvet Island",
|
48
|
+
'BR' => "Brazil",
|
49
|
+
'IO' => "British Indian Ocean Territory",
|
50
|
+
'BN' => "Brunei",
|
51
|
+
'BG' => "Bulgaria",
|
52
|
+
'BF' => "Burkina Faso",
|
53
|
+
'BI' => "Burundi",
|
54
|
+
'KH' => "Cambodia",
|
55
|
+
'CM' => "Cameroon",
|
56
|
+
'CA' => "Canada",
|
57
|
+
'CV' => "Cape Verde",
|
58
|
+
'KY' => "Cayman Islands",
|
59
|
+
'CF' => "Central African Republic",
|
60
|
+
'TD' => "Chad",
|
61
|
+
'CL' => "Chile",
|
62
|
+
'CN' => "China",
|
63
|
+
'CX' => "Christmas Island",
|
64
|
+
'CC' => "Cocos (Keeling) Islands",
|
65
|
+
'CO' => "Columbia",
|
66
|
+
'KM' => "Comoros",
|
67
|
+
'CG' => "Congo",
|
68
|
+
'CK' => "Cook Islands",
|
69
|
+
'CR' => "Costa Rica",
|
70
|
+
'CI' => "Cote D'Ivorie (Ivory Coast)",
|
71
|
+
'HR' => "Croatia (Hrvatska)",
|
72
|
+
'CU' => "Cuba",
|
73
|
+
'CY' => "Cyprus",
|
74
|
+
'CZ' => "Czech Republic",
|
75
|
+
'CD' => "Democratic Republic Of Congo (Zaire)",
|
76
|
+
'DK' => "Denmark",
|
77
|
+
'DJ' => "Djibouti",
|
78
|
+
'DM' => "Dominica",
|
79
|
+
'DO' => "Dominican Republic",
|
80
|
+
'TP' => "East Timor",
|
81
|
+
'EC' => "Ecuador",
|
82
|
+
'EG' => "Egypt",
|
83
|
+
'SV' => "El Salvador",
|
84
|
+
'GQ' => "Equatorial Guinea",
|
85
|
+
'ER' => "Eritrea",
|
86
|
+
'EE' => "Estonia",
|
87
|
+
'ET' => "Ethiopia",
|
88
|
+
'FK' => "Falkland Islands (Malvinas)",
|
89
|
+
'FO' => "Faroe Islands",
|
90
|
+
'FJ' => "Fiji",
|
91
|
+
'FI' => "Finland",
|
92
|
+
'FR' => "France",
|
93
|
+
'FX' => "France, Metropolitan",
|
94
|
+
'GF' => "French Guinea",
|
95
|
+
'PF' => "French Polynesia",
|
96
|
+
'TF' => "French Southern Territories",
|
97
|
+
'GA' => "Gabon",
|
98
|
+
'GM' => "Gambia",
|
99
|
+
'GE' => "Georgia",
|
100
|
+
'DE' => "Germany",
|
101
|
+
'GH' => "Ghana",
|
102
|
+
'GI' => "Gibraltar",
|
103
|
+
'GR' => "Greece",
|
104
|
+
'GL' => "Greenland",
|
105
|
+
'GD' => "Grenada",
|
106
|
+
'GP' => "Guadeloupe",
|
107
|
+
'GU' => "Guam",
|
108
|
+
'GT' => "Guatemala",
|
109
|
+
'GN' => "Guinea",
|
110
|
+
'GW' => "Guinea-Bissau",
|
111
|
+
'GY' => "Guyana",
|
112
|
+
'HT' => "Haiti",
|
113
|
+
'HM' => "Heard And McDonald Islands",
|
114
|
+
'HN' => "Honduras",
|
115
|
+
'HK' => "Hong Kong",
|
116
|
+
'HU' => "Hungary",
|
117
|
+
'IS' => "Iceland",
|
118
|
+
'IN' => "India",
|
119
|
+
'ID' => "Indonesia",
|
120
|
+
'IR' => "Iran",
|
121
|
+
'IQ' => "Iraq",
|
122
|
+
'IE' => "Ireland",
|
123
|
+
'IL' => "Israel",
|
124
|
+
'IT' => "Italy",
|
125
|
+
'JM' => "Jamaica",
|
126
|
+
'JP' => "Japan",
|
127
|
+
'JO' => "Jordan",
|
128
|
+
'KZ' => "Kazakhstan",
|
129
|
+
'KE' => "Kenya",
|
130
|
+
'KI' => "Kiribati",
|
131
|
+
'KW' => "Kuwait",
|
132
|
+
'KG' => "Kyrgyzstan",
|
133
|
+
'LA' => "Laos",
|
134
|
+
'LV' => "Latvia",
|
135
|
+
'LB' => "Lebanon",
|
136
|
+
'LS' => "Lesotho",
|
137
|
+
'LR' => "Liberia",
|
138
|
+
'LY' => "Libya",
|
139
|
+
'LI' => "Liechtenstein",
|
140
|
+
'LT' => "Lithuania",
|
141
|
+
'LU' => "Luxembourg",
|
142
|
+
'MO' => "Macau",
|
143
|
+
'MK' => "Macedonia",
|
144
|
+
'MG' => "Madagascar",
|
145
|
+
'MW' => "Malawi",
|
146
|
+
'MY' => "Malaysia",
|
147
|
+
'MV' => "Maldives",
|
148
|
+
'ML' => "Mali",
|
149
|
+
'MT' => "Malta",
|
150
|
+
'MH' => "Marshall Islands",
|
151
|
+
'MQ' => "Martinique",
|
152
|
+
'MR' => "Mauritania",
|
153
|
+
'MU' => "Mauritius",
|
154
|
+
'YT' => "Mayotte",
|
155
|
+
'MX' => "Mexico",
|
156
|
+
'FM' => "Micronesia",
|
157
|
+
'MD' => "Moldova",
|
158
|
+
'MC' => "Monaco",
|
159
|
+
'MN' => "Mongolia",
|
160
|
+
'MS' => "Montserrat",
|
161
|
+
'MA' => "Morocco",
|
162
|
+
'MZ' => "Mozambique",
|
163
|
+
'MM' => "Myanmar (Burma)",
|
164
|
+
'NA' => "Namibia",
|
165
|
+
'NR' => "Nauru",
|
166
|
+
'NP' => "Nepal",
|
167
|
+
'NL' => "Netherlands",
|
168
|
+
'AN' => "Netherlands Antilles",
|
169
|
+
'NC' => "New Caledonia",
|
170
|
+
'NZ' => "New Zealand",
|
171
|
+
'NI' => "Nicaragua",
|
172
|
+
'NE' => "Niger",
|
173
|
+
'NG' => "Nigeria",
|
174
|
+
'NU' => "Niue",
|
175
|
+
'NF' => "Norfolk Island",
|
176
|
+
'KP' => "North Korea",
|
177
|
+
'MP' => "Northern Mariana Islands",
|
178
|
+
'NO' => "Norway",
|
179
|
+
'OM' => "Oman",
|
180
|
+
'PK' => "Pakistan",
|
181
|
+
'PW' => "Palau",
|
182
|
+
'PA' => "Panama",
|
183
|
+
'PG' => "Papua New Guinea",
|
184
|
+
'PY' => "Paraguay",
|
185
|
+
'PE' => "Peru",
|
186
|
+
'PH' => "Philippines",
|
187
|
+
'PN' => "Pitcairn",
|
188
|
+
'PL' => "Poland",
|
189
|
+
'PT' => "Portugal",
|
190
|
+
'PR' => "Puerto Rico",
|
191
|
+
'QA' => "Qatar",
|
192
|
+
'RE' => "Reunion",
|
193
|
+
'RO' => "Romania",
|
194
|
+
'RU' => "Russia",
|
195
|
+
'RW' => "Rwanda",
|
196
|
+
'SH' => "Saint Helena",
|
197
|
+
'KN' => "Saint Kitts And Nevis",
|
198
|
+
'LC' => "Saint Lucia",
|
199
|
+
'PM' => "Saint Pierre And Miquelon",
|
200
|
+
'VC' => "Saint Vincent And The Grenadines",
|
201
|
+
'SM' => "San Marino",
|
202
|
+
'ST' => "Sao Tome And Principe",
|
203
|
+
'SA' => "Saudi Arabia",
|
204
|
+
'SN' => "Senegal",
|
205
|
+
'SC' => "Seychelles",
|
206
|
+
'SL' => "Sierra Leone",
|
207
|
+
'SG' => "Singapore",
|
208
|
+
'SK' => "Slovak Republic",
|
209
|
+
'SI' => "Slovenia",
|
210
|
+
'SB' => "Solomon Islands",
|
211
|
+
'SO' => "Somalia",
|
212
|
+
'ZA' => "South Africa",
|
213
|
+
'GS' => "South Georgia And South Sandwich Islands",
|
214
|
+
'KR' => "South Korea",
|
215
|
+
'ES' => "Spain",
|
216
|
+
'LK' => "Sri Lanka",
|
217
|
+
'SD' => "Sudan",
|
218
|
+
'SR' => "Suriname",
|
219
|
+
'SJ' => "Svalbard And Jan Mayen",
|
220
|
+
'SZ' => "Swaziland",
|
221
|
+
'SE' => "Sweden",
|
222
|
+
'CH' => "Switzerland",
|
223
|
+
'SY' => "Syria",
|
224
|
+
'TW' => "Taiwan",
|
225
|
+
'TJ' => "Tajikistan",
|
226
|
+
'TZ' => "Tanzania",
|
227
|
+
'TH' => "Thailand",
|
228
|
+
'TG' => "Togo",
|
229
|
+
'TK' => "Tokelau",
|
230
|
+
'TO' => "Tonga",
|
231
|
+
'TT' => "Trinidad And Tobago",
|
232
|
+
'TN' => "Tunisia",
|
233
|
+
'TR' => "Turkey",
|
234
|
+
'TM' => "Turkmenistan",
|
235
|
+
'TC' => "Turks And Caicos Islands",
|
236
|
+
'TV' => "Tuvalu",
|
237
|
+
'UG' => "Uganda",
|
238
|
+
'UA' => "Ukraine",
|
239
|
+
'AE' => "United Arab Emirates",
|
240
|
+
'GB' => "United Kingdom",
|
241
|
+
'US' => "United States",
|
242
|
+
'UM' => "United States Minor Outlying Islands",
|
243
|
+
'UY' => "Uruguay",
|
244
|
+
'UZ' => "Uzbekistan",
|
245
|
+
'VU' => "Vanuatu",
|
246
|
+
'VA' => "Vatican City (Holy See)",
|
247
|
+
'VE' => "Venezuela",
|
248
|
+
'VN' => "Vietnam",
|
249
|
+
'VG' => "Virgin Islands (British)",
|
250
|
+
'VI' => "Virgin Islands (US)",
|
251
|
+
'WF' => "Wallis And Futuna Islands",
|
252
|
+
'EH' => "Western Sahara",
|
253
|
+
'WS' => "Western Samoa",
|
254
|
+
'YE' => "Yemen",
|
255
|
+
'YU' => "Yugoslavia",
|
256
|
+
'ZM' => "Zambia",
|
257
|
+
'ZW' => "Zimbabwe"
|
258
|
+
}
|
259
|
+
|
260
|
+
@@_country_name_map[region_code.upcase]
|
261
|
+
end
|
262
|
+
end
|
data/tasks/import.rake
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
SRCPATH = 'tmp/libphonenumber/javascript/i18n/phonenumbers'
|
2
|
+
CLOSUREPATH = 'tmp/closure-library/closure/goog'
|
3
|
+
|
4
|
+
desc 'Import and build the latest version of libphonenumber'
|
5
|
+
task :import do
|
6
|
+
unless File.exists?(SRCPATH)
|
7
|
+
puts 'Downloading libphonenumber...'
|
8
|
+
`svn export http://libphonenumber.googlecode.com/svn/trunk tmp/libphonenumber`
|
9
|
+
end
|
10
|
+
|
11
|
+
unless File.exists?(CLOSUREPATH)
|
12
|
+
puts 'Downloading closure-library...'
|
13
|
+
`svn export http://closure-library.googlecode.com/svn/trunk tmp/closure-library`
|
14
|
+
end
|
15
|
+
|
16
|
+
unless `which closure-compiler`.chomp.length > 0
|
17
|
+
puts 'Please `brew install closure-compiler` and then run this again.'
|
18
|
+
exit
|
19
|
+
end
|
20
|
+
|
21
|
+
puts 'Compiling...'
|
22
|
+
system "closure-compiler --jscomp_warning=deprecated \
|
23
|
+
--jscomp_warning=missingProperties \
|
24
|
+
--js #{CLOSUREPATH}/base.js \
|
25
|
+
--js #{CLOSUREPATH}/array/array.js \
|
26
|
+
--js #{CLOSUREPATH}/asserts/asserts.js \
|
27
|
+
--js #{CLOSUREPATH}/debug/error.js \
|
28
|
+
--js #{CLOSUREPATH}/object/object.js \
|
29
|
+
--js #{CLOSUREPATH}/proto2/descriptor.js \
|
30
|
+
--js #{CLOSUREPATH}/proto2/fielddescriptor.js \
|
31
|
+
--js #{CLOSUREPATH}/proto2/lazydeserializer.js \
|
32
|
+
--js #{CLOSUREPATH}/proto2/message.js \
|
33
|
+
--js #{CLOSUREPATH}/proto2/pbliteserializer.js \
|
34
|
+
--js #{CLOSUREPATH}/proto2/objectserializer.js \
|
35
|
+
--js #{CLOSUREPATH}/proto2/serializer.js \
|
36
|
+
--js #{CLOSUREPATH}/proto2/util.js \
|
37
|
+
--js #{CLOSUREPATH}/string/string.js \
|
38
|
+
--js #{CLOSUREPATH}/string/stringbuffer.js \
|
39
|
+
--js #{SRCPATH}/asyoutypeformatter.js \
|
40
|
+
--js #{SRCPATH}/metadata.js \
|
41
|
+
--js #{SRCPATH}/phonemetadata.pb.js \
|
42
|
+
--js #{SRCPATH}/phonenumber.pb.js \
|
43
|
+
--js #{SRCPATH}/phonenumberutil.js \
|
44
|
+
--js_output_file=lib/fakie/js/libphonenumber.js"
|
45
|
+
|
46
|
+
puts 'Done!'
|
47
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Fakie
|
4
|
+
class PhoneNumberTest < TestCase
|
5
|
+
def test_parse
|
6
|
+
phone_number = Fakie.parse('+1 415 555 0123')
|
7
|
+
assert_equal 1, phone_number.country_code
|
8
|
+
assert_equal 4155550123, phone_number.national_number
|
9
|
+
assert_equal '+1 415 555 0123', phone_number.raw_input
|
10
|
+
assert_equal '+14155550123', phone_number.e164
|
11
|
+
assert_equal 'US', phone_number.region_code
|
12
|
+
assert phone_number.is_possible?
|
13
|
+
assert phone_number.is_valid?
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_parse_with_default_country
|
17
|
+
phone_number = Fakie.parse('(415) 555-0123', default_country: 'US')
|
18
|
+
assert_equal 1, phone_number.country_code
|
19
|
+
assert_equal 4155550123, phone_number.national_number
|
20
|
+
assert_equal '(415) 555-0123', phone_number.raw_input
|
21
|
+
assert_equal 'US', phone_number.region_code
|
22
|
+
assert phone_number.is_possible?
|
23
|
+
assert phone_number.is_valid?
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_local_format
|
27
|
+
phone_number = Fakie.parse('+1 415-555-0123')
|
28
|
+
assert_equal '(415) 555-0123', phone_number.local_format
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_international_format
|
32
|
+
phone_number = Fakie.parse('+14155550123')
|
33
|
+
assert_equal '+1 415-555-0123', phone_number.international_format
|
34
|
+
|
35
|
+
phone_number = Fakie.parse('415-555-0123', default_country: 'US')
|
36
|
+
assert_equal '+1 415-555-0123', phone_number.international_format
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/test/fakie_test.rb
ADDED
data/test/js.html
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Fakie</title>
|
6
|
+
</head>
|
7
|
+
<body>
|
8
|
+
<p>libphonenumber.js and fakie.js are loaded into this page. Open the console to play around.</p>
|
9
|
+
|
10
|
+
<script src="../lib/fakie/js/libphonenumber.js"></script>
|
11
|
+
<script src="../lib/fakie/js/fakie.js"></script>
|
12
|
+
</body>
|
13
|
+
</html>
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
Bundler.require :test
|
4
|
+
|
5
|
+
require 'simplecov'
|
6
|
+
SimpleCov.start
|
7
|
+
|
8
|
+
require 'minitest/autorun'
|
9
|
+
require 'fakie'
|
10
|
+
|
11
|
+
# Support files
|
12
|
+
Dir["#{File.expand_path(File.dirname(__FILE__))}/support/*.rb"].each do |file|
|
13
|
+
require file
|
14
|
+
end
|
15
|
+
|
16
|
+
class Fakie::TestCase < MiniTest::Unit::TestCase
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fakie
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sam Soffes
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-03-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: execjs
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: libphonenumber wrapper
|
28
|
+
email:
|
29
|
+
- sam@soff.es
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- .gitignore
|
35
|
+
- .travis.yml
|
36
|
+
- Contributing.markdown
|
37
|
+
- Gemfile
|
38
|
+
- LICENSE
|
39
|
+
- Rakefile
|
40
|
+
- Readme.markdown
|
41
|
+
- fakie.gemspec
|
42
|
+
- lib/fakie.rb
|
43
|
+
- lib/fakie/errors.rb
|
44
|
+
- lib/fakie/java_script.rb
|
45
|
+
- lib/fakie/js/fakie.js
|
46
|
+
- lib/fakie/js/libphonenumber.js
|
47
|
+
- lib/fakie/phone_number.rb
|
48
|
+
- lib/fakie/version.rb
|
49
|
+
- tasks/import.rake
|
50
|
+
- test/fakie/phone_number_test.rb
|
51
|
+
- test/fakie_test.rb
|
52
|
+
- test/js.html
|
53
|
+
- test/test_helper.rb
|
54
|
+
homepage: https://github.com/seesawco/fakie
|
55
|
+
licenses:
|
56
|
+
- MIT
|
57
|
+
metadata: {}
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 1.8.7
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
requirements: []
|
73
|
+
rubyforge_project:
|
74
|
+
rubygems_version: 2.0.0
|
75
|
+
signing_key:
|
76
|
+
specification_version: 4
|
77
|
+
summary: libphonenumber wrapper with ExecJS
|
78
|
+
test_files:
|
79
|
+
- test/fakie/phone_number_test.rb
|
80
|
+
- test/fakie_test.rb
|
81
|
+
- test/js.html
|
82
|
+
- test/test_helper.rb
|
83
|
+
has_rdoc:
|