phony_rails 0.1.7 → 0.1.8

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- phony_rails (0.1.6)
4
+ phony_rails (0.1.8)
5
5
  activerecord (~> 3.0)
6
6
  countries (~> 0.8.2)
7
7
  phony (~> 1.7.7)
data/README.md CHANGED
@@ -62,6 +62,8 @@ so we can use:
62
62
  validates_plausible_phone :phone_number, :without => /^\+\d+/
63
63
  validates_plausible_phone :phone_number, :presence => true, :with => /^\+\d+/
64
64
 
65
+ the i18n key is `:improbable_phone`
66
+
65
67
  ### Display / Views
66
68
 
67
69
  In your views use:
@@ -76,6 +78,9 @@ Say you want to find a record by a phone number. Best is to normalize user input
76
78
 
77
79
  ## Changelog
78
80
 
81
+ 0.1.8
82
+ * Improved validation methods by ddidier.
83
+
79
84
  0.1.6
80
85
  * Added :as option to phony_normalize.
81
86
 
data/lib/phony_rails.rb CHANGED
@@ -40,8 +40,8 @@ module PhonyRails
40
40
  end
41
41
 
42
42
  module InstanceMethods
43
-
44
- private
43
+
44
+ private
45
45
 
46
46
  # This methods sets the attribute to the normalized version.
47
47
  # It also adds the country_code (number), eg. 31 for NL numbers.
@@ -70,7 +70,7 @@ module PhonyRails
70
70
  attributes.each do |attribute|
71
71
  raise ArgumentError, "No attribute #{attribute} found on #{self.class.name} (PhonyRails)" if not self.attribute_method?(attribute)
72
72
  # Add before validation that saves a normalized version of the phone number
73
- self.before_validation do
73
+ self.before_validation do
74
74
  set_phony_normalized_numbers(attributes, options)
75
75
  end
76
76
  end
@@ -80,7 +80,7 @@ module PhonyRails
80
80
  # phony_normalized_method :fax_number, :default_country_code => 'US'
81
81
  # Creates a normalized_fax_number method.
82
82
  def phony_normalized_method(*attributes)
83
- main_options = attributes.last.is_a?(Hash) ? attributes.pop : {}
83
+ main_options = attributes.last.is_a?(Hash) ? attributes.pop : {}
84
84
  main_options.assert_valid_keys :country_code, :default_country_code
85
85
  attributes.each do |attribute|
86
86
  raise StandardError, "Instance method normalized_#{attribute} already exists on #{self.name} (PhonyRails)" if self.instance_methods.include?(:"normalized_#{attribute}")
@@ -97,4 +97,9 @@ module PhonyRails
97
97
  end
98
98
 
99
99
  end
100
- ActiveRecord::Base.extend PhonyRails::ActiveRecordExtension
100
+
101
+ ActiveRecord::Base.extend PhonyRails::ActiveRecordExtension
102
+
103
+ Dir["#{File.dirname(__FILE__)}/phony_rails/locales/*.yml"].each do |file|
104
+ I18n.load_path << file
105
+ end
@@ -0,0 +1,6 @@
1
+
2
+ en:
3
+ activerecord:
4
+ errors:
5
+ messages:
6
+ improbable_phone: "is an invalid number"
@@ -0,0 +1,6 @@
1
+
2
+ fr:
3
+ activerecord:
4
+ errors:
5
+ messages:
6
+ improbable_phone: "est un numéro invalide"
@@ -1,3 +1,3 @@
1
1
  module PhonyRails
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -6,7 +6,7 @@ class PhonyPlausibleValidator < ActiveModel::EachValidator
6
6
  # Validates a String using Phony.plausible? method.
7
7
  def validate_each(record, attribute, value)
8
8
  return if value.blank?
9
- record.errors[attribute] << (options[:message] || "is an invalid number") if not Phony.plausible?(value)
9
+ record.errors.add(attribute, options[:message] || :improbable_phone) if not Phony.plausible?(value)
10
10
  end
11
11
 
12
12
  end
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'spec_helper'
2
3
 
3
4
  #-----------------------------------------------------------------------------------------------------------------------
@@ -81,6 +82,7 @@ end
81
82
  # Tests
82
83
  #-----------------------------------------------------------------------------------------------------------------------
83
84
 
85
+ I18n.locale = :en
84
86
  VALID_NUMBER = '123456789'
85
87
  INVALID_NUMBER = '123456789 123456789 123456789 123456789'
86
88
 
@@ -109,6 +111,22 @@ describe PhonyPlausibleValidator do
109
111
  @home.errors.messages.should include(:phone_number => ["is an invalid number"])
110
112
  end
111
113
 
114
+ it "should translate the error message in english" do
115
+ I18n.with_locale(:en) do
116
+ @home.phone_number = INVALID_NUMBER
117
+ @home.valid?
118
+ @home.errors.messages.should include(:phone_number => ["is an invalid number"])
119
+ end
120
+ end
121
+
122
+ it "should translate the error message in french" do
123
+ I18n.with_locale(:fr) do
124
+ @home.phone_number = INVALID_NUMBER
125
+ @home.valid?
126
+ @home.errors.messages.should include(:phone_number => ["est un numéro invalide"])
127
+ end
128
+ end
129
+
112
130
  end
113
131
  end
114
132
 
metadata CHANGED
@@ -1,72 +1,73 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: phony_rails
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.7
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 8
9
+ version: 0.1.8
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Joost Hietbrink
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
- date: 2012-07-26 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
16
+
17
+ date: 2012-07-30 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: phony
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: 1.7.7
22
- type: :runtime
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
27
25
  - - ~>
28
- - !ruby/object:Gem::Version
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 7
30
+ - 7
29
31
  version: 1.7.7
30
- - !ruby/object:Gem::Dependency
31
- name: countries
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: 0.8.2
38
32
  type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: countries
39
36
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
43
39
  - - ~>
44
- - !ruby/object:Gem::Version
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 8
44
+ - 2
45
45
  version: 0.8.2
46
- - !ruby/object:Gem::Dependency
47
- name: activerecord
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: '3.0'
54
46
  type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: activerecord
55
50
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirements:
59
53
  - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '3.0'
62
- description: This Gem adds useful methods to your Rails app to validate, display and
63
- save phone numbers.
64
- email:
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 3
57
+ - 0
58
+ version: "3.0"
59
+ type: :runtime
60
+ version_requirements: *id003
61
+ description: This Gem adds useful methods to your Rails app to validate, display and save phone numbers.
62
+ email:
65
63
  - joost@joopp.com
66
64
  executables: []
65
+
67
66
  extensions: []
67
+
68
68
  extra_rdoc_files: []
69
- files:
69
+
70
+ files:
70
71
  - .gitignore
71
72
  - .rspec
72
73
  - Gemfile
@@ -76,6 +77,8 @@ files:
76
77
  - README.md
77
78
  - Rakefile
78
79
  - lib/phony_rails.rb
80
+ - lib/phony_rails/locales/en.yml
81
+ - lib/phony_rails/locales/fr.yml
79
82
  - lib/phony_rails/string_extensions.rb
80
83
  - lib/phony_rails/version.rb
81
84
  - lib/validators/phony_validator.rb
@@ -83,33 +86,37 @@ files:
83
86
  - spec/lib/phony_rails_spec.rb
84
87
  - spec/lib/validators/phony_validator_spec.rb
85
88
  - spec/spec_helper.rb
89
+ has_rdoc: true
86
90
  homepage: https://github.com/joost/phony_rails
87
91
  licenses: []
92
+
88
93
  post_install_message:
89
94
  rdoc_options: []
90
- require_paths:
95
+
96
+ require_paths:
91
97
  - lib
92
- required_ruby_version: !ruby/object:Gem::Requirement
93
- none: false
94
- requirements:
95
- - - ! '>='
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
- required_rubygems_version: !ruby/object:Gem::Requirement
99
- none: false
100
- requirements:
101
- - - ! '>='
102
- - !ruby/object:Gem::Version
103
- version: '0'
98
+ required_ruby_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ segments:
103
+ - 0
104
+ version: "0"
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ segments:
110
+ - 0
111
+ version: "0"
104
112
  requirements: []
113
+
105
114
  rubyforge_project:
106
- rubygems_version: 1.8.24
115
+ rubygems_version: 1.3.6
107
116
  signing_key:
108
117
  specification_version: 3
109
- summary: This Gem adds useful methods to your Rails app to validate, display and save
110
- phone numbers.
111
- test_files:
118
+ summary: This Gem adds useful methods to your Rails app to validate, display and save phone numbers.
119
+ test_files:
112
120
  - spec/lib/phony_rails_spec.rb
113
121
  - spec/lib/validators/phony_validator_spec.rb
114
122
  - spec/spec_helper.rb
115
- has_rdoc: