phonofy 0.1.2 → 0.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 +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +174 -10
- data/README.md +23 -4
- data/lib/model/class_methods.rb +7 -4
- data/lib/phonofy/version.rb +1 -1
- data/lib/phonofy.rb +32 -10
- data/lib/railtie.rb +26 -0
- data/lib/validators/extended_phone_validator.rb +11 -1
- data/sig/phonofy/configuration.rbs +7 -0
- data/sig/phonofy/model/class_methods.rbs +9 -0
- data/sig/phonofy/model/instance_dynamic_methods.rbs +11 -0
- data/sig/phonofy/model.rbs +5 -0
- data/sig/phonofy/railtie.rbs +5 -0
- data/sig/phonofy/validators/extended_phone_validator.rbs +16 -0
- data/sig/phonofy/validators.rbs +4 -0
- data/sig/phonofy.rbs +12 -1
- metadata +37 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6ee55367de1d368ab0abacce9dbabf589f6da2a5a8ed458f1541c75f3f26605
|
4
|
+
data.tar.gz: 05004a1aa71520d8c5303817ce77891f1062ceed4e42a0e04c45af9d692294c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c59eab2f6525b0204123f17b1a7b8a77646ab22820dc8f9d03f17cabfa07eba95fcbb53da2a5b50a751640a629225cf199adbf9a25de39615b139b975a6a115
|
7
|
+
data.tar.gz: 69b17995effa660b2b540dff26449a118f206360d4ef9073fc3dc57ccf003342038e71278f7b3fbf3fdf0e4d3ccf172e2be7e168b7e8c09ef3c39d098f3a2e41
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.2.0] - 2025-04-24
|
4
|
+
|
5
|
+
- Added compatibility with Rails 8.0
|
6
|
+
- Replaced Rails Engine with Railtie for lighter integration
|
7
|
+
- Improved code organization and dependency management
|
8
|
+
- Enhanced test coverage for international phone numbers
|
9
|
+
- Fixed validator loading
|
10
|
+
|
3
11
|
## [0.1.0] - 2023-03-30
|
4
12
|
|
5
13
|
- Initial release
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
phonofy (0.
|
4
|
+
phonofy (0.2.0)
|
5
5
|
activerecord
|
6
6
|
i18n
|
7
7
|
phonelib
|
@@ -9,30 +9,178 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
actioncable (8.0.2)
|
13
|
+
actionpack (= 8.0.2)
|
14
|
+
activesupport (= 8.0.2)
|
15
|
+
nio4r (~> 2.0)
|
16
|
+
websocket-driver (>= 0.6.1)
|
17
|
+
zeitwerk (~> 2.6)
|
18
|
+
actionmailbox (8.0.2)
|
19
|
+
actionpack (= 8.0.2)
|
20
|
+
activejob (= 8.0.2)
|
21
|
+
activerecord (= 8.0.2)
|
22
|
+
activestorage (= 8.0.2)
|
23
|
+
activesupport (= 8.0.2)
|
24
|
+
mail (>= 2.8.0)
|
25
|
+
actionmailer (8.0.2)
|
26
|
+
actionpack (= 8.0.2)
|
27
|
+
actionview (= 8.0.2)
|
28
|
+
activejob (= 8.0.2)
|
29
|
+
activesupport (= 8.0.2)
|
30
|
+
mail (>= 2.8.0)
|
31
|
+
rails-dom-testing (~> 2.2)
|
32
|
+
actionpack (8.0.2)
|
33
|
+
actionview (= 8.0.2)
|
34
|
+
activesupport (= 8.0.2)
|
35
|
+
nokogiri (>= 1.8.5)
|
36
|
+
rack (>= 2.2.4)
|
37
|
+
rack-session (>= 1.0.1)
|
38
|
+
rack-test (>= 0.6.3)
|
39
|
+
rails-dom-testing (~> 2.2)
|
40
|
+
rails-html-sanitizer (~> 1.6)
|
41
|
+
useragent (~> 0.16)
|
42
|
+
actiontext (8.0.2)
|
43
|
+
actionpack (= 8.0.2)
|
44
|
+
activerecord (= 8.0.2)
|
45
|
+
activestorage (= 8.0.2)
|
46
|
+
activesupport (= 8.0.2)
|
47
|
+
globalid (>= 0.6.0)
|
48
|
+
nokogiri (>= 1.8.5)
|
49
|
+
actionview (8.0.2)
|
50
|
+
activesupport (= 8.0.2)
|
51
|
+
builder (~> 3.1)
|
52
|
+
erubi (~> 1.11)
|
53
|
+
rails-dom-testing (~> 2.2)
|
54
|
+
rails-html-sanitizer (~> 1.6)
|
55
|
+
activejob (8.0.2)
|
56
|
+
activesupport (= 8.0.2)
|
57
|
+
globalid (>= 0.3.6)
|
58
|
+
activemodel (8.0.2)
|
59
|
+
activesupport (= 8.0.2)
|
60
|
+
activerecord (8.0.2)
|
61
|
+
activemodel (= 8.0.2)
|
62
|
+
activesupport (= 8.0.2)
|
63
|
+
timeout (>= 0.4.0)
|
64
|
+
activestorage (8.0.2)
|
65
|
+
actionpack (= 8.0.2)
|
66
|
+
activejob (= 8.0.2)
|
67
|
+
activerecord (= 8.0.2)
|
68
|
+
activesupport (= 8.0.2)
|
69
|
+
marcel (~> 1.0)
|
70
|
+
activesupport (8.0.2)
|
71
|
+
base64
|
72
|
+
benchmark (>= 0.3)
|
73
|
+
bigdecimal
|
74
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
75
|
+
connection_pool (>= 2.2.5)
|
76
|
+
drb
|
19
77
|
i18n (>= 1.6, < 2)
|
78
|
+
logger (>= 1.4.2)
|
20
79
|
minitest (>= 5.1)
|
21
|
-
|
80
|
+
securerandom (>= 0.3)
|
81
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
82
|
+
uri (>= 0.13.1)
|
22
83
|
ast (2.4.2)
|
23
|
-
|
84
|
+
base64 (0.2.0)
|
85
|
+
benchmark (0.4.0)
|
86
|
+
bigdecimal (3.1.9)
|
87
|
+
builder (3.3.0)
|
88
|
+
concurrent-ruby (1.3.5)
|
89
|
+
connection_pool (2.5.1)
|
90
|
+
crass (1.0.6)
|
91
|
+
date (3.4.1)
|
24
92
|
diff-lcs (1.5.0)
|
93
|
+
drb (2.2.1)
|
94
|
+
erubi (1.13.1)
|
95
|
+
globalid (1.2.1)
|
96
|
+
activesupport (>= 6.1)
|
25
97
|
i18n (1.12.0)
|
26
98
|
concurrent-ruby (~> 1.0)
|
99
|
+
io-console (0.8.0)
|
100
|
+
irb (1.15.2)
|
101
|
+
pp (>= 0.6.0)
|
102
|
+
rdoc (>= 4.0.0)
|
103
|
+
reline (>= 0.4.2)
|
27
104
|
json (2.6.3)
|
105
|
+
logger (1.7.0)
|
106
|
+
loofah (2.24.0)
|
107
|
+
crass (~> 1.0.2)
|
108
|
+
nokogiri (>= 1.12.0)
|
109
|
+
mail (2.8.1)
|
110
|
+
mini_mime (>= 0.1.1)
|
111
|
+
net-imap
|
112
|
+
net-pop
|
113
|
+
net-smtp
|
114
|
+
marcel (1.0.4)
|
115
|
+
mini_mime (1.1.5)
|
28
116
|
minitest (5.18.0)
|
117
|
+
net-imap (0.5.6)
|
118
|
+
date
|
119
|
+
net-protocol
|
120
|
+
net-pop (0.1.2)
|
121
|
+
net-protocol
|
122
|
+
net-protocol (0.2.2)
|
123
|
+
timeout
|
124
|
+
net-smtp (0.5.1)
|
125
|
+
net-protocol
|
126
|
+
nio4r (2.7.4)
|
127
|
+
nokogiri (1.18.7-arm64-darwin)
|
128
|
+
racc (~> 1.4)
|
29
129
|
parallel (1.22.1)
|
30
130
|
parser (3.2.1.1)
|
31
131
|
ast (~> 2.4.1)
|
32
132
|
phonelib (0.7.7)
|
133
|
+
pp (0.6.2)
|
134
|
+
prettyprint
|
135
|
+
prettyprint (0.2.0)
|
136
|
+
psych (5.2.3)
|
137
|
+
date
|
138
|
+
stringio
|
139
|
+
racc (1.8.1)
|
140
|
+
rack (3.1.13)
|
141
|
+
rack-session (2.1.0)
|
142
|
+
base64 (>= 0.1.0)
|
143
|
+
rack (>= 3.0.0)
|
144
|
+
rack-test (2.2.0)
|
145
|
+
rack (>= 1.3)
|
146
|
+
rackup (2.2.1)
|
147
|
+
rack (>= 3)
|
148
|
+
rails (8.0.2)
|
149
|
+
actioncable (= 8.0.2)
|
150
|
+
actionmailbox (= 8.0.2)
|
151
|
+
actionmailer (= 8.0.2)
|
152
|
+
actionpack (= 8.0.2)
|
153
|
+
actiontext (= 8.0.2)
|
154
|
+
actionview (= 8.0.2)
|
155
|
+
activejob (= 8.0.2)
|
156
|
+
activemodel (= 8.0.2)
|
157
|
+
activerecord (= 8.0.2)
|
158
|
+
activestorage (= 8.0.2)
|
159
|
+
activesupport (= 8.0.2)
|
160
|
+
bundler (>= 1.15.0)
|
161
|
+
railties (= 8.0.2)
|
162
|
+
rails-dom-testing (2.2.0)
|
163
|
+
activesupport (>= 5.0.0)
|
164
|
+
minitest
|
165
|
+
nokogiri (>= 1.6)
|
166
|
+
rails-html-sanitizer (1.6.2)
|
167
|
+
loofah (~> 2.21)
|
168
|
+
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
169
|
+
railties (8.0.2)
|
170
|
+
actionpack (= 8.0.2)
|
171
|
+
activesupport (= 8.0.2)
|
172
|
+
irb (~> 1.13)
|
173
|
+
rackup (>= 1.0.0)
|
174
|
+
rake (>= 12.2)
|
175
|
+
thor (~> 1.0, >= 1.2.2)
|
176
|
+
zeitwerk (~> 2.6)
|
33
177
|
rainbow (3.1.1)
|
34
178
|
rake (13.0.6)
|
179
|
+
rdoc (6.13.1)
|
180
|
+
psych (>= 4.0.0)
|
35
181
|
regexp_parser (2.7.0)
|
182
|
+
reline (0.6.1)
|
183
|
+
io-console (~> 0.5)
|
36
184
|
rexml (3.2.5)
|
37
185
|
rspec (3.12.0)
|
38
186
|
rspec-core (~> 3.12.0)
|
@@ -60,18 +208,34 @@ GEM
|
|
60
208
|
rubocop-ast (1.28.0)
|
61
209
|
parser (>= 3.2.1.0)
|
62
210
|
ruby-progressbar (1.13.0)
|
211
|
+
securerandom (0.4.1)
|
212
|
+
sqlite3 (2.6.0-arm64-darwin)
|
213
|
+
stringio (3.1.6)
|
214
|
+
thor (1.3.2)
|
215
|
+
timeout (0.4.3)
|
63
216
|
tzinfo (2.0.6)
|
64
217
|
concurrent-ruby (~> 1.0)
|
65
218
|
unicode-display_width (2.4.2)
|
219
|
+
uri (1.0.3)
|
220
|
+
useragent (0.16.11)
|
221
|
+
websocket-driver (0.7.7)
|
222
|
+
base64
|
223
|
+
websocket-extensions (>= 0.1.0)
|
224
|
+
websocket-extensions (0.1.5)
|
225
|
+
zeitwerk (2.7.2)
|
66
226
|
|
67
227
|
PLATFORMS
|
68
228
|
arm64-darwin-22
|
229
|
+
arm64-darwin-24
|
69
230
|
|
70
231
|
DEPENDENCIES
|
232
|
+
activerecord
|
71
233
|
phonofy!
|
234
|
+
rails (>= 6.0, < 9.0)
|
72
235
|
rake (~> 13.0)
|
73
236
|
rspec (~> 3.0)
|
74
237
|
rubocop (~> 1.21)
|
238
|
+
sqlite3 (~> 2.6)
|
75
239
|
|
76
240
|
BUNDLED WITH
|
77
241
|
2.4.10
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Phonofy
|
2
2
|
|
3
|
-
Phonofy is a Ruby gem that simplifies phone number formatting in
|
3
|
+
Phonofy is a Ruby gem that simplifies phone number formatting in Ruby applications using the Phonelib library. It integrates seamlessly with Rails applications (compatible with Rails 6.0 through 8.0) but can also be used in non-Rails environments. With Phonofy, you can easily parse and format phone number data according to international standards, ensuring that your phone number data is consistent and valid across your application.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -31,7 +31,7 @@ class User < ApplicationRecord
|
|
31
31
|
end
|
32
32
|
```
|
33
33
|
|
34
|
-
This will add phone number validation and formatting to the **phone_number** attribute of the **
|
34
|
+
This will add phone number validation and formatting to the **phone_number** attribute of the **User** model.
|
35
35
|
|
36
36
|
You can also specify a custom attribute name for the phone number:
|
37
37
|
|
@@ -62,11 +62,30 @@ You can configure phonofy by creating an initializer file in your Rails applicat
|
|
62
62
|
# config/initializers/phonofy.rb
|
63
63
|
Phonofy.configure do |config|
|
64
64
|
config.default_phonelib_options = { countries: [:us, :ca], types: [:mobile] }
|
65
|
-
config.default_twilio_options = { lookup: { type: :carrier_type } }
|
66
65
|
end
|
67
66
|
```
|
68
67
|
|
69
|
-
This will set the default options for phonofy to validate only US and Canada mobile phone numbers using the Phonelib library
|
68
|
+
This will set the default options for phonofy to validate only US and Canada mobile phone numbers using the Phonelib library.
|
69
|
+
|
70
|
+
## **International Phone Number Support**
|
71
|
+
|
72
|
+
Phonofy supports international phone numbers through the Phonelib gem. You can validate and format phone numbers for specific countries by including the country codes in the countries option:
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
class User < ApplicationRecord
|
76
|
+
phonofy :phone, phonelib: { countries: [:us, :gb, :fr] }
|
77
|
+
end
|
78
|
+
```
|
79
|
+
|
80
|
+
Example usage:
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
user = User.new(phone: "+14155552671")
|
84
|
+
user.phone(:e164) # => "+14155552671"
|
85
|
+
user.phone(:international) # => "+1 415-555-2671"
|
86
|
+
user.phone(:national) # => "(415) 555-2671"
|
87
|
+
user.phone_is_valid? # => true
|
88
|
+
```
|
70
89
|
|
71
90
|
## **Contributing**
|
72
91
|
|
data/lib/model/class_methods.rb
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# require_relative "phonofy/fy/version"
|
3
2
|
|
4
3
|
module Phonofy
|
5
4
|
module Model
|
6
5
|
module ClassMethods
|
7
|
-
|
8
|
-
|
6
|
+
DEFAULTS = {
|
7
|
+
phonelib: {
|
8
|
+
allow_blank: true,
|
9
|
+
validation_options: {}
|
10
|
+
}
|
11
|
+
}.deep_merge(Phonofy.config.default_phonelib_options || {}).freeze
|
9
12
|
|
10
13
|
def phonofy(column_name = :phone_number, **options)
|
11
14
|
options = DEFAULTS.deep_merge(options)
|
@@ -15,7 +18,7 @@ module Phonofy
|
|
15
18
|
self.phonofy_configs = { _counter: {} }
|
16
19
|
end
|
17
20
|
|
18
|
-
counter
|
21
|
+
counter = (phonofy_configs[:_counter][column_name] ||= 0)
|
19
22
|
phonofy_configs[:_counter][column_name] += 1
|
20
23
|
|
21
24
|
phonofy_configs["#{column_name}_#{counter}"] = options.dup
|
data/lib/phonofy/version.rb
CHANGED
data/lib/phonofy.rb
CHANGED
@@ -1,22 +1,44 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "phonofy/version"
|
4
|
-
|
5
|
-
require "active_record"
|
6
|
-
require "model/instance_dynamic_methods"
|
7
4
|
require "phonelib"
|
8
|
-
require "model"
|
9
5
|
|
10
6
|
module Phonofy
|
11
7
|
class Error < StandardError; end
|
12
8
|
|
13
|
-
class
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
9
|
+
class << self
|
10
|
+
attr_accessor :configuration
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.configure
|
14
|
+
self.configuration ||= Configuration.new
|
15
|
+
yield(configuration)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.config
|
19
|
+
configuration
|
20
|
+
end
|
21
|
+
|
22
|
+
class Configuration
|
23
|
+
attr_accessor :default_phonelib_options
|
18
24
|
|
19
|
-
|
25
|
+
def initialize
|
26
|
+
@default_phonelib_options = {}
|
20
27
|
end
|
21
28
|
end
|
29
|
+
|
30
|
+
# Initialize default configuration
|
31
|
+
self.configuration = Configuration.new
|
22
32
|
end
|
33
|
+
|
34
|
+
# Load ActiveRecord-related code
|
35
|
+
require "active_record"
|
36
|
+
require_relative "model/instance_dynamic_methods"
|
37
|
+
require_relative "model"
|
38
|
+
|
39
|
+
# Only load the Railtie if Rails is available
|
40
|
+
if defined?(Rails)
|
41
|
+
require_relative "railtie"
|
42
|
+
end
|
43
|
+
|
44
|
+
# Model is already required above
|
data/lib/railtie.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails"
|
4
|
+
require "pathname"
|
5
|
+
require_relative "model"
|
6
|
+
|
7
|
+
module Phonofy
|
8
|
+
class Railtie < Rails::Railtie
|
9
|
+
initializer "phonofy.initialize" do
|
10
|
+
ActiveSupport.on_load(:active_record) do
|
11
|
+
include Phonofy::Model
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
initializer "phonofy.load_translations" do
|
16
|
+
# Use Rails.root if available, otherwise use the gem's path
|
17
|
+
if defined?(Rails.root) && Rails.root
|
18
|
+
config.i18n.load_path += Dir[Rails.root.join("config", "locales", "**", "*.{rb,yml}")]
|
19
|
+
else
|
20
|
+
# Fallback to the gem's own translations
|
21
|
+
gem_root = Pathname.new(File.expand_path("../", __dir__))
|
22
|
+
config.i18n.load_path += Dir[gem_root.join("config", "locales", "**", "*.{rb,yml}")]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require_relative "../validators"
|
4
4
|
require "#{Gem::Specification.find_by_name("phonelib").gem_dir}/lib/validators/phone_validator"
|
5
|
+
require "active_model/version"
|
5
6
|
|
6
7
|
module Phonofy
|
7
8
|
module Validators
|
@@ -13,7 +14,16 @@ module Phonofy
|
|
13
14
|
valid = countries.present? ? valid_country? : phone_valid?
|
14
15
|
valid = valid && valid_types? && valid_extensions?
|
15
16
|
|
16
|
-
|
17
|
+
unless valid
|
18
|
+
# Rails 8.0+ compatibility - errors.add no longer accepts options as a third argument
|
19
|
+
if ActiveModel.version >= Gem::Version.new('8.0.0')
|
20
|
+
# For Rails 8.0+, use the new API
|
21
|
+
record.errors.add(attribute, message(error_message), **options)
|
22
|
+
else
|
23
|
+
# For older Rails versions, use the old API
|
24
|
+
record.errors.add(attribute, message(error_message), options)
|
25
|
+
end
|
26
|
+
end
|
17
27
|
end
|
18
28
|
|
19
29
|
private
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Phonofy
|
2
|
+
module Model
|
3
|
+
class InstanceDynamicMethods < Module
|
4
|
+
DEFAULT_PHONE_FORMAT: Symbol
|
5
|
+
SUPPORTED_FORMATS: Array[Symbol]
|
6
|
+
|
7
|
+
def initialize: (Symbol column_name, Hash[Symbol, untyped] options) -> void
|
8
|
+
def included: (Class base) -> void
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Phonofy
|
2
|
+
module Validators
|
3
|
+
class ExtendedPhoneValidator < PhoneValidator
|
4
|
+
def validate_each: (untyped record, Symbol attribute, untyped value) -> void
|
5
|
+
def check_rails_version: () -> bool
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def message: (?Symbol custom) -> Symbol
|
10
|
+
|
11
|
+
def error_message: () -> Symbol
|
12
|
+
|
13
|
+
def valid_country?: () -> bool
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/sig/phonofy.rbs
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
module Phonofy
|
2
2
|
VERSION: String
|
3
|
-
|
3
|
+
|
4
|
+
class Error < StandardError
|
5
|
+
end
|
6
|
+
|
7
|
+
class << self
|
8
|
+
attr_accessor configuration: Configuration
|
9
|
+
end
|
10
|
+
|
11
|
+
# These methods are already defined by the attr_accessor above
|
12
|
+
|
13
|
+
def self.configure: () { (Configuration) -> void } -> void
|
14
|
+
def self.config: () -> Configuration
|
4
15
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phonofy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Khaled AbuShqear
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-04-23 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: i18n
|
@@ -52,10 +51,31 @@ dependencies:
|
|
52
51
|
- - ">="
|
53
52
|
- !ruby/object:Gem::Version
|
54
53
|
version: '0'
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: rails
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '6.0'
|
61
|
+
- - "<"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '9.0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '6.0'
|
71
|
+
- - "<"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '9.0'
|
74
|
+
description: Phonofy is a Ruby gem that simplifies phone number formatting in Ruby
|
75
|
+
applications using the Phonelib library. It integrates seamlessly with Rails applications
|
76
|
+
but can also be used in non-Rails environments. With Phonofy, you can easily parse
|
77
|
+
and format phone number data according to international standards, ensuring that
|
78
|
+
your phone number data is consistent and valid across your application.
|
59
79
|
email:
|
60
80
|
- qmax93@gmail.com
|
61
81
|
executables: []
|
@@ -78,9 +98,17 @@ files:
|
|
78
98
|
- lib/model/instance_dynamic_methods.rb
|
79
99
|
- lib/phonofy.rb
|
80
100
|
- lib/phonofy/version.rb
|
101
|
+
- lib/railtie.rb
|
81
102
|
- lib/validators.rb
|
82
103
|
- lib/validators/extended_phone_validator.rb
|
83
104
|
- sig/phonofy.rbs
|
105
|
+
- sig/phonofy/configuration.rbs
|
106
|
+
- sig/phonofy/model.rbs
|
107
|
+
- sig/phonofy/model/class_methods.rbs
|
108
|
+
- sig/phonofy/model/instance_dynamic_methods.rbs
|
109
|
+
- sig/phonofy/railtie.rbs
|
110
|
+
- sig/phonofy/validators.rbs
|
111
|
+
- sig/phonofy/validators/extended_phone_validator.rbs
|
84
112
|
homepage: https://github.com/shqear93/phonofy
|
85
113
|
licenses:
|
86
114
|
- MIT
|
@@ -88,7 +116,6 @@ metadata:
|
|
88
116
|
homepage_uri: https://github.com/shqear93/phonofy
|
89
117
|
source_code_uri: https://github.com/shqear93/phonofy
|
90
118
|
changelog_uri: https://github.com/shqear93/phonofy/blob/master/CHANGELOG.md
|
91
|
-
post_install_message:
|
92
119
|
rdoc_options: []
|
93
120
|
require_paths:
|
94
121
|
- lib
|
@@ -103,8 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
130
|
- !ruby/object:Gem::Version
|
104
131
|
version: '0'
|
105
132
|
requirements: []
|
106
|
-
rubygems_version: 3.
|
107
|
-
signing_key:
|
133
|
+
rubygems_version: 3.6.2
|
108
134
|
specification_version: 4
|
109
|
-
summary: Phonofy integrates with
|
135
|
+
summary: Phonofy integrates with ActiveRecord to provide phone number formatting functionalities.
|
110
136
|
test_files: []
|