custom_validations 0.0.1
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/custom_validations.gemspec +26 -0
- data/lib/custom_validations.rb +11 -0
- data/lib/custom_validations/email_validator.rb +30 -0
- data/lib/custom_validations/engine.rb +11 -0
- data/lib/custom_validations/locale/en.yml +6 -0
- data/lib/custom_validations/version.rb +3 -0
- data/vendor/assets/javascripts/rails.custom_validations.js +30 -0
- metadata +91 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "custom_validations/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.authors = ["Kauplus Social Commerce"]
|
7
|
+
gem.email = ["suporte@kauplus.com.br"]
|
8
|
+
gem.description = %q{Collection of custom validations for Rails}
|
9
|
+
gem.summary = %q{Adds custom validations code for ActiveModel and javascript code for ClientSideValidations (https://github.com/bcardarella/client_side_validations)}
|
10
|
+
gem.homepage = "https://github.com/kauplus/custom_validations"
|
11
|
+
|
12
|
+
gem.files = `git ls-files -- {lib/*,vendor/*,*.gemspec}`.split("\n")
|
13
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
14
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
15
|
+
gem.name = "custom_validations"
|
16
|
+
gem.require_paths = ["lib"]
|
17
|
+
gem.version = CustomValidations::VERSION
|
18
|
+
|
19
|
+
|
20
|
+
#
|
21
|
+
# Dependencies
|
22
|
+
#
|
23
|
+
gem.add_development_dependency 'rails', '>= 3.0'
|
24
|
+
gem.add_development_dependency 'rspec'
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Require dependencies used by many classes of this Gem
|
2
|
+
require 'active_model'
|
3
|
+
|
4
|
+
# Require base code
|
5
|
+
require 'custom_validations/version'
|
6
|
+
require 'custom_validations/engine'
|
7
|
+
require 'custom_validations/email_validator'
|
8
|
+
|
9
|
+
# Load translations
|
10
|
+
require 'active_support/i18n'
|
11
|
+
I18n.load_path << File.dirname(__FILE__) + '/custom_validations/locale/en.yml'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module ActiveModel
|
2
|
+
module Validations
|
3
|
+
|
4
|
+
|
5
|
+
class EmailValidator < ActiveModel::EachValidator
|
6
|
+
|
7
|
+
REGEX = /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
|
8
|
+
|
9
|
+
def validate_each(record, attribute, value)
|
10
|
+
return if value.to_s.blank? # it doesn't validate presence
|
11
|
+
unless value.to_s =~ REGEX
|
12
|
+
record.errors.add(attribute, :email, options)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
module HelperMethods
|
19
|
+
def validates_email_of(*attr_names)
|
20
|
+
validates_with EmailValidator, _merge_attributes(attr_names)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# REGEX taken from:
|
29
|
+
# http://guides.rubyonrails.org/v3.1.3/active_record_validations_callbacks.html#custom-validators
|
30
|
+
#
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
/*
|
3
|
+
# Rails 3 Custom Validations - v0.0.1
|
4
|
+
# https://github.com/kauplus/custom_validations
|
5
|
+
#
|
6
|
+
# Copyright (c) 2013 Kauplus
|
7
|
+
# Licensed under the MIT license
|
8
|
+
# http://www.opensource.org/licenses/mit-license.php
|
9
|
+
*/
|
10
|
+
|
11
|
+
|
12
|
+
(function() {
|
13
|
+
|
14
|
+
jQuery(function() {
|
15
|
+
var is_blank, validators;
|
16
|
+
is_blank = function(element) {
|
17
|
+
return /^\s*$/.test(element.val() || '');
|
18
|
+
};
|
19
|
+
validators = window.ClientSideValidations.validators;
|
20
|
+
return validators.local['email'] = function(element, options) {
|
21
|
+
if (is_blank(element)) {
|
22
|
+
return;
|
23
|
+
}
|
24
|
+
if (!/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i.test(element.val())) {
|
25
|
+
return options.message;
|
26
|
+
}
|
27
|
+
};
|
28
|
+
});
|
29
|
+
|
30
|
+
}).call(this);
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: custom_validations
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Kauplus Social Commerce
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-02-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.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: '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: '0'
|
46
|
+
description: Collection of custom validations for Rails
|
47
|
+
email:
|
48
|
+
- suporte@kauplus.com.br
|
49
|
+
executables: []
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- custom_validations.gemspec
|
54
|
+
- lib/custom_validations.rb
|
55
|
+
- lib/custom_validations/email_validator.rb
|
56
|
+
- lib/custom_validations/engine.rb
|
57
|
+
- lib/custom_validations/locale/en.yml
|
58
|
+
- lib/custom_validations/version.rb
|
59
|
+
- vendor/assets/javascripts/rails.custom_validations.js
|
60
|
+
homepage: https://github.com/kauplus/custom_validations
|
61
|
+
licenses: []
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options: []
|
64
|
+
require_paths:
|
65
|
+
- lib
|
66
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
hash: -2993300514968256952
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ! '>='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
segments:
|
82
|
+
- 0
|
83
|
+
hash: -2993300514968256952
|
84
|
+
requirements: []
|
85
|
+
rubyforge_project:
|
86
|
+
rubygems_version: 1.8.24
|
87
|
+
signing_key:
|
88
|
+
specification_version: 3
|
89
|
+
summary: Adds custom validations code for ActiveModel and javascript code for ClientSideValidations
|
90
|
+
(https://github.com/bcardarella/client_side_validations)
|
91
|
+
test_files: []
|