validates_email_format_of 1.6.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Nzc3NWIyMDUwNDM0NWRiMTViYmE2MjU4MWNiNjQwM2I1MjBiYTZiYw==
4
+ OWRlNjBlN2VmN2QxNmM4ZWYzODA2YTRmNzNlZjg0MTRlZTlhYjVlNw==
5
5
  data.tar.gz: !binary |-
6
- MjJiOTNiNzBiNjcyZTlkY2I3NTZjMmRlZjcwZTZiYTNiNDg4ZmE2Yg==
6
+ YTg5ZGY1MWEzYWFkYTUzOTVlYzQ0N2FlZGRjNDY0OWY0ZmU2NTA3OA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NDk4ZmFjYzgzN2Y1N2FiOTE1ZjUwZGU0YjQzOTY4YzE3ZTY5NTYyZDVlNDIw
10
- YTRmN2JjYzQ3N2M3ZDZhOTc4OTU3YjFjMWMyNjY4Mzg5YjkyNmM3ZjFlZWYw
11
- ZDlhNzQ2MTIwNGYyODJiMDA0OWQxODM0ZmM0OGEwMzliMmFlYTI=
9
+ NDdjMTljZWE2ODRkMTk1MzFmY2FkZDkwMzg4NjUzYmFhMjczMDJlYTcxODI2
10
+ YjQyNDI0ZmYyZGRhZmYwN2U0MjEyYzVmYzJmZDk1ZDAwMjcwOWZhOGU2YTZl
11
+ MjdjNmIyNDE3ZjE5YzJmOGI2ZGVjZWRiMWI5ZDFkNjQ1NzRiYjg=
12
12
  data.tar.gz: !binary |-
13
- N2Q1OTQyMjQ4ZWFkMWMzODU2MmMxMTc0MmZmYzhhMzY2ZTU3ZjhkMWQzZDY2
14
- Y2VmYjZmMzRkY2I4NzEzYjAwN2Y4YmZmMjIzM2U0MDkwNjMzNDBkZWRkMzFj
15
- NjU4NTMzODU3OTkyMzRiMTM5OWVhNzc5ZWUxZGUyZWJkYjAyMTA=
13
+ YTI2Zjg0ZjQ3MzRlZTE2MjEzOTI2NjkwZDUzYjk3MjRmYmYzZDJhNmYzOTUz
14
+ YWM2MDJiZjkxOGQyNmU2ZDVlZTZiNDMwYWY2YzcwMzU3ZWYyNjVmYmQ1Mzc3
15
+ MzY1YTgxZmJlMDBiODgyYjVmYmZlZDM0NDhlZGQwYmIyOWM0NTU=
data/CHANGELOG ADDED
@@ -0,0 +1,3 @@
1
+ == 1.6.1 (8 Sept 2014)
2
+
3
+ * In a Rails context, this gem now uses ActiveModel's default logic for constructing I18n keys, to make it easier to override them on a model/attribute basis.
data/README.rdoc CHANGED
@@ -46,6 +46,8 @@ Or in your Gemfile:
46
46
  Maximum number of characters allowed in the local part (everything before the '@') (default is 64)
47
47
  :domain_length
48
48
  Maximum number of characters allowed in the domain part (everything after the '@') (default is 255)
49
+ :generate_message
50
+ Boolean. Return the I18n key of the error message instead of the error message itself (default is false)
49
51
  :with
50
52
  Specify a custom Regex as the valid email format.
51
53
  :on, :if, :unless, :allow_nil, :allow_blank, :strict
@@ -1,6 +1,8 @@
1
1
  en:
2
- activemodel:
2
+ activemodel: &errors
3
3
  errors:
4
4
  messages:
5
5
  invalid_email_address: 'does not appear to be a valid e-mail address'
6
6
  email_address_not_routable: 'is not routable'
7
+ activerecord:
8
+ <<: *errors
@@ -1,6 +1,8 @@
1
1
  pl:
2
- activemodel:
2
+ activemodel: &errors
3
3
  errors:
4
4
  messages:
5
5
  invalid_email_address: 'nieprawidłowy adres e-mail'
6
6
  email_address_not_routable: 'jest nieosiągalny'
7
+ activerecord:
8
+ <<: *errors
@@ -19,6 +19,15 @@ module ValidatesEmailFormatOf
19
19
  @mx.size > 0 ? true : false
20
20
  end
21
21
 
22
+ DEFAULT_MESSAGE = "does not appear to be valid"
23
+ DEFAULT_MX_MESSAGE = "is not routable"
24
+ ERROR_MESSAGE_I18N_KEY = :invalid_email_address
25
+ ERROR_MX_MESSAGE_I18N_KEY = :email_address_not_routable
26
+
27
+ def self.default_message
28
+ defined?(I18n) ? I18n.t(ERROR_MESSAGE_I18N_KEY, :scope => [:activemodel, :errors, :messages], :default => DEFAULT_MESSAGE) : DEFAULT_MESSAGE
29
+ end
30
+
22
31
  # Validates whether the specified value is a valid email address. Returns nil if the value is valid, otherwise returns an array
23
32
  # containing one or more validation error messages.
24
33
  #
@@ -29,18 +38,14 @@ module ValidatesEmailFormatOf
29
38
  # * <tt>with</tt> The regex to use for validating the format of the email address (deprecated)
30
39
  # * <tt>local_length</tt> Maximum number of characters allowed in the local part (default is 64)
31
40
  # * <tt>domain_length</tt> Maximum number of characters allowed in the domain part (default is 255)
32
- DEFAULT_MESSAGE = "does not appear to be valid"
33
- DEFAULT_MX_MESSAGE = "is not routable"
34
- def self.default_message
35
- defined?(I18n) ? I18n.t(:invalid_email_address, :scope => [:activemodel, :errors, :messages], :default => DEFAULT_MESSAGE) : DEFAULT_MESSAGE
36
- end
37
-
41
+ # * <tt>generate_message</tt> Return the I18n key of the error message instead of the error message itself (default is false)
38
42
  def self.validate_email_format(email, options={})
39
- default_options = { :message => default_message,
43
+ default_options = { :message => options[:generate_message] ? ERROR_MESSAGE_I18N_KEY : default_message,
40
44
  :check_mx => false,
41
- :mx_message => defined?(I18n) ? I18n.t(:email_address_not_routable, :scope => [:activemodel, :errors, :messages], :default => DEFAULT_MX_MESSAGE) : DEFAULT_MX_MESSAGE,
45
+ :mx_message => options[:generate_message] ? ERROR_MX_MESSAGE_I18N_KEY : (defined?(I18n) ? I18n.t(ERROR_MX_MESSAGE_I18N_KEY, :scope => [:activemodel, :errors, :messages], :default => DEFAULT_MX_MESSAGE) : DEFAULT_MX_MESSAGE),
42
46
  :domain_length => 255,
43
- :local_length => 64
47
+ :local_length => 64,
48
+ :generate_message => false
44
49
  }
45
50
  opts = options.merge(default_options) {|key, old, new| old} # merge the default options into the specified options, retaining all specified options
46
51
 
@@ -9,7 +9,7 @@ module ActiveModel
9
9
  module Validations
10
10
  class EmailFormatValidator < EachValidator
11
11
  def validate_each(record, attribute, value)
12
- (ValidatesEmailFormatOf::validate_email_format(value, options) || []).each do |error|
12
+ (ValidatesEmailFormatOf::validate_email_format(value, options.merge(:generate_message => true)) || []).each do |error|
13
13
  record.errors.add(attribute, error)
14
14
  end
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module ValidatesEmailFormatOf
2
- VERSION = '1.6.0'
2
+ VERSION = '1.6.1'
3
3
  end
@@ -205,17 +205,21 @@ describe ValidatesEmailFormatOf do
205
205
  end
206
206
  end
207
207
  describe "i18n" do
208
- before(:each) { allow(I18n.config).to receive(:locale).and_return(locale) }
208
+ before(:each) do
209
+ allow(I18n.config).to receive(:locale).and_return(locale)
210
+ end
209
211
  describe "present locale" do
210
212
  let(:locale) { :pl }
211
213
  describe email do
212
214
  it { should have_errors_on_email.because("jest nieosiągalny") }
213
215
  end
214
216
  end
215
- describe email do
216
- let(:locale) { :ir }
217
+ unless defined?(ActiveModel)
217
218
  describe email do
218
- it { should have_errors_on_email.because("is not routable") }
219
+ let(:locale) { :ir }
220
+ describe email do
221
+ it { should have_errors_on_email.because("is not routable") }
222
+ end
219
223
  end
220
224
  end
221
225
  end
@@ -262,17 +266,21 @@ describe ValidatesEmailFormatOf do
262
266
  end
263
267
 
264
268
  describe "i18n" do
265
- before(:each) { allow(I18n.config).to receive(:locale).and_return(locale) }
269
+ before(:each) do
270
+ allow(I18n.config).to receive(:locale).and_return(locale)
271
+ end
266
272
  describe "present locale" do
267
273
  let(:locale) { :pl }
268
274
  describe "invalid@exmaple." do
269
275
  it { should have_errors_on_email.because("nieprawidłowy adres e-mail") }
270
276
  end
271
277
  end
272
- describe "missing locale" do
273
- let(:locale) { :ir }
274
- describe "invalid@exmaple." do
275
- it { should have_errors_on_email.because("does not appear to be valid") }
278
+ unless defined?(ActiveModel)
279
+ describe "missing locale" do
280
+ let(:locale) { :ir }
281
+ describe "invalid@exmaple." do
282
+ it { should have_errors_on_email.because("does not appear to be valid") }
283
+ end
276
284
  end
277
285
  end
278
286
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validates_email_format_of
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Dunae
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-21 00:00:00.000000000 Z
12
+ date: 2014-09-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
@@ -64,6 +64,7 @@ files:
64
64
  - .gitignore
65
65
  - .rspec
66
66
  - .travis.yml
67
+ - CHANGELOG
67
68
  - Gemfile
68
69
  - MIT-LICENSE
69
70
  - README.rdoc