client_side_validations 3.1.4 → 3.1.5
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/client_side_validations.gemspec +2 -9
- data/lib/client_side_validations/action_view/form_builder.rb +1 -1
- data/lib/client_side_validations/active_model.rb +1 -0
- data/lib/client_side_validations/active_record/uniqueness.rb +1 -0
- data/lib/client_side_validations/mongo_mapper/uniqueness.rb +1 -0
- data/lib/client_side_validations/mongoid.rb +1 -1
- data/lib/client_side_validations/mongoid/format.rb +10 -0
- data/lib/client_side_validations/mongoid/length.rb +24 -0
- data/lib/client_side_validations/mongoid/presence.rb +10 -0
- data/lib/client_side_validations/mongoid/uniqueness.rb +1 -0
- data/lib/client_side_validations/version.rb +1 -1
- data/test/active_model/cases/test_presence_validator.rb +1 -1
- data/test/active_record/cases/test_uniqueness_validator.rb +6 -0
- data/test/base_helper.rb +14 -0
- data/test/middleware/cases/helper.rb +0 -11
- data/test/mongo_mapper/cases/test_uniqueness_validator.rb +7 -2
- data/test/mongoid/cases/helper.rb +2 -6
- data/test/mongoid/cases/test_format_validator.rb +21 -0
- data/test/mongoid/cases/test_length_validator.rb +60 -0
- data/test/mongoid/cases/test_presence_validator.rb +16 -0
- data/test/mongoid/cases/test_uniqueness_validator.rb +6 -1
- data/vendor/assets/javascripts/rails.validations.js +1 -1
- metadata +195 -124
@@ -20,23 +20,16 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.add_development_dependency 'rails', '~> 3.1.0'
|
21
21
|
s.add_development_dependency 'sqlite3'
|
22
22
|
s.add_development_dependency 'bson_ext'
|
23
|
-
s.add_development_dependency 'mongoid', '~> 2.
|
23
|
+
s.add_development_dependency 'mongoid', '~> 2.4.0'
|
24
24
|
s.add_development_dependency 'mongo_mapper','~> 0.9.0'
|
25
25
|
s.add_development_dependency 'mocha'
|
26
26
|
s.add_development_dependency 'simple_form', '~> 1.5.0'
|
27
27
|
s.add_development_dependency 'formtastic', '~> 2.0.0'
|
28
|
+
s.add_development_dependency 'm'
|
28
29
|
|
29
30
|
# For QUnit testing
|
30
31
|
s.add_development_dependency 'sinatra', '~> 1.0'
|
31
32
|
s.add_development_dependency 'shotgun'
|
32
33
|
s.add_development_dependency 'thin'
|
33
34
|
s.add_development_dependency 'json'
|
34
|
-
|
35
|
-
ruby_minor_version = RUBY_VERSION.split('.')[1].to_i
|
36
|
-
if ruby_minor_version == 8
|
37
|
-
s.add_development_dependency 'minitest'
|
38
|
-
s.add_development_dependency 'ruby-debug'
|
39
|
-
elsif ruby_minor_version == 9
|
40
|
-
s.add_development_dependency 'ruby-debug19'
|
41
|
-
end
|
42
35
|
end
|
@@ -72,7 +72,7 @@ module ClientSideValidations::ActionView::Helpers
|
|
72
72
|
|
73
73
|
def time_zone_select_with_client_side_validations(method, priority_zones = nil, options = {}, html_options = {})
|
74
74
|
apply_client_side_validators(method, html_options)
|
75
|
-
time_zone_select_without_client_side_validations(method, priority_zones
|
75
|
+
time_zone_select_without_client_side_validations(method, priority_zones, options, html_options)
|
76
76
|
end
|
77
77
|
|
78
78
|
private
|
@@ -5,6 +5,7 @@ module ClientSideValidations::ActiveModel
|
|
5
5
|
|
6
6
|
def client_side_hash(model, attribute)
|
7
7
|
options = self.options.dup
|
8
|
+
# debugger
|
8
9
|
{ :message => model.errors.generate_message(attribute, message_type, options) }.merge(options.except(*::ActiveModel::Errors::CALLBACKS_OPTIONS - [:allow_blank, :if, :unless]))
|
9
10
|
end
|
10
11
|
|
@@ -4,6 +4,7 @@ module ClientSideValidations::ActiveRecord
|
|
4
4
|
hash = {}
|
5
5
|
hash[:message] = model.errors.generate_message(attribute, message_type, options.except(:scope))
|
6
6
|
hash[:case_sensitive] = options[:case_sensitive]
|
7
|
+
hash[:allow_blank] = options[:allow_blank] if options.key?(:allow_blank)
|
7
8
|
hash[:id] = model.id unless model.new_record?
|
8
9
|
if options.key?(:scope) && options[:scope].present?
|
9
10
|
hash[:scope] = Array.wrap(options[:scope]).inject({}) do |scope_hash, scope_item|
|
@@ -4,6 +4,7 @@ module ClientSideValidations::MongoMapper
|
|
4
4
|
hash = {}
|
5
5
|
hash[:message] = model.errors.generate_message(attribute, message_type, options.except(:scope))
|
6
6
|
hash[:case_sensitive] = options[:case_sensitive] if options.key?(:case_sensitive)
|
7
|
+
hash[:allow_blank] = options[:allow_blank] if options.key?(:allow_blank)
|
7
8
|
hash[:id] = model.id unless model.new_record?
|
8
9
|
if options.key?(:scope) && options[:scope].present?
|
9
10
|
hash[:scope] = Array.wrap(options[:scope]).inject({}) do |scope_hash, scope_item|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'client_side_validations/active_model'
|
2
2
|
require 'client_side_validations/mongoid/middleware'
|
3
3
|
|
4
|
-
%w{uniqueness}.each do |validator|
|
4
|
+
%w{format length presence uniqueness}.each do |validator|
|
5
5
|
require "client_side_validations/mongoid/#{validator}"
|
6
6
|
validator.capitalize!
|
7
7
|
eval "Mongoid::Validations::#{validator}Validator.send(:include, ClientSideValidations::Mongoid::#{validator})"
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module ClientSideValidations::Mongoid
|
2
|
+
module Length
|
3
|
+
|
4
|
+
def client_side_hash(model, attribute)
|
5
|
+
options = self.options.dup
|
6
|
+
hash = { :messages => {} }
|
7
|
+
hash[:js_tokenizer] = options[:js_tokenizer] if options[:js_tokenizer]
|
8
|
+
hash[:allow_blank] = true if options[:allow_blank]
|
9
|
+
|
10
|
+
self.class::MESSAGES.each do |option, message_type|
|
11
|
+
if count = options[option]
|
12
|
+
options[:message] = options[message_type]
|
13
|
+
options.delete(:message) if options[:message].nil?
|
14
|
+
hash[:messages][option] = model.errors.generate_message(attribute, message_type, options.merge(:count => count))
|
15
|
+
hash[option] = count
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
hash
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -4,6 +4,7 @@ module ClientSideValidations::Mongoid
|
|
4
4
|
hash = {}
|
5
5
|
hash[:message] = model.errors.generate_message(attribute, message_type, options.except(:scope))
|
6
6
|
hash[:case_sensitive] = options[:case_sensitive] if options.key?(:case_sensitive)
|
7
|
+
hash[:allow_blank] = options[:allow_blank] if options.key?(:allow_blank)
|
7
8
|
hash[:id] = model.id unless model.new_record?
|
8
9
|
if options.key?(:scope) && options[:scope].present?
|
9
10
|
hash[:scope] = Array.wrap(options[:scope]).inject({}) do |scope_hash, scope_item|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'active_model/cases/test_base'
|
2
2
|
|
3
|
-
class ActiveModel::
|
3
|
+
class ActiveModel::PresenceValidatorTest < ClientSideValidations::ActiveModelTestBase
|
4
4
|
|
5
5
|
def test_presence_client_side_hash
|
6
6
|
expected_hash = { :message => "can't be blank" }
|
@@ -46,5 +46,11 @@ class ActiveRecord::UniquenessValidatorTest < ClientSideValidations::ActiveRecor
|
|
46
46
|
expected_hash = { :message => "has already been taken", :case_sensitive => true, :class => 'active_record_test_module/user2' }
|
47
47
|
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name]).client_side_hash(@user, :name)
|
48
48
|
end
|
49
|
+
|
50
|
+
def test_uniqueness_client_side_hash_with_allow_blank
|
51
|
+
expected_hash = { :message => "has already been taken", :case_sensitive => true, :allow_blank => true }
|
52
|
+
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name], :allow_blank => true).client_side_hash(@user, :name)
|
53
|
+
end
|
54
|
+
|
49
55
|
end
|
50
56
|
|
data/test/base_helper.rb
CHANGED
@@ -2,6 +2,20 @@ require 'rubygems'
|
|
2
2
|
require 'bundler'
|
3
3
|
Bundler.setup
|
4
4
|
require 'test/unit'
|
5
|
+
if RUBY_VERSION >= '1.9.3'
|
6
|
+
require 'debugger'
|
7
|
+
end
|
5
8
|
require 'mocha'
|
9
|
+
require 'rails'
|
10
|
+
|
11
|
+
# Pulled from railties/test/abstract_unit in Rails 3.1
|
12
|
+
module TestApp
|
13
|
+
class Application < Rails::Application
|
14
|
+
config.root = File.dirname(__FILE__)
|
15
|
+
config.active_support.deprecation = :log
|
16
|
+
config.logger = Logger.new(STDOUT)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
6
20
|
|
7
21
|
module ClientSideValidations; end
|
@@ -1,17 +1,6 @@
|
|
1
1
|
require 'base_helper'
|
2
2
|
require 'action_controller'
|
3
3
|
require 'action_controller/railtie'
|
4
|
-
require 'rails'
|
5
|
-
|
6
|
-
# Pulled from railties/test/abstract_unit in Rails 3.1
|
7
|
-
module TestApp
|
8
|
-
class Application < Rails::Application
|
9
|
-
config.root = File.dirname(__FILE__)
|
10
|
-
config.active_support.deprecation = :log
|
11
|
-
config.logger = Logger.new(STDOUT)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
4
|
require 'client_side_validations/middleware'
|
16
5
|
require 'client_side_validations/engine'
|
17
6
|
|
@@ -3,7 +3,7 @@ require 'mongo_mapper/cases/test_base'
|
|
3
3
|
class MongoMapper::UniqunessValidatorTest < ClientSideValidations::MongoMapperTestBase
|
4
4
|
|
5
5
|
def test_uniqueness_client_side_hash
|
6
|
-
expected_hash = { :message => "has already been taken" }
|
6
|
+
expected_hash = { :message => "has already been taken", :case_sensitive => true }
|
7
7
|
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name]).client_side_hash(@magazine, :age)
|
8
8
|
end
|
9
9
|
|
@@ -12,7 +12,7 @@ class MongoMapper::UniqunessValidatorTest < ClientSideValidations::MongoMapperTe
|
|
12
12
|
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name], :message => "is not available").client_side_hash(@magazine, :age)
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
15
|
+
def test_uniqueness_client_side_hash_with_id
|
16
16
|
@magazine.stubs(:new_record?).returns(false)
|
17
17
|
@magazine.stubs(:id).returns(1)
|
18
18
|
expected_hash = { :message => "has already been taken", :case_sensitive => true , :id => 1 }
|
@@ -46,5 +46,10 @@ class MongoMapper::UniqunessValidatorTest < ClientSideValidations::MongoMapperTe
|
|
46
46
|
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name]).client_side_hash(@magazine, :age)
|
47
47
|
end
|
48
48
|
|
49
|
+
def test_uniqueness_client_side_hash_with_custom_message
|
50
|
+
expected_hash = { :message => "has already been taken", :case_sensitive => true, :allow_blank => true }
|
51
|
+
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name], :allow_blank => true).client_side_hash(@magazine, :age)
|
52
|
+
end
|
53
|
+
|
49
54
|
end
|
50
55
|
|
@@ -3,13 +3,9 @@ require 'mongoid'
|
|
3
3
|
require 'client_side_validations/mongoid'
|
4
4
|
|
5
5
|
Mongoid.configure do |config|
|
6
|
-
name =
|
7
|
-
host =
|
6
|
+
name = 'client_side_validations_development'
|
7
|
+
host = 'localhost'
|
8
8
|
config.master = Mongo::Connection.new.db(name)
|
9
|
-
config.slaves = [
|
10
|
-
Mongo::Connection.new(host).db(name)
|
11
|
-
]
|
12
|
-
config.persist_in_safe_mode = false
|
13
9
|
end
|
14
10
|
|
15
11
|
require 'mongoid/models/book'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'mongoid/cases/test_base'
|
2
|
+
|
3
|
+
class Mongoid::UniqunessValidatorTest < ClientSideValidations::MongoidTestBase
|
4
|
+
|
5
|
+
def test_format_client_side_hash
|
6
|
+
expected_hash = { :message => "is invalid", :with => /.+/ }
|
7
|
+
assert_equal expected_hash, FormatValidator.new(:attributes => [:name], :with => /.+/).client_side_hash(@book, :age)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_format_client_side_hash_without
|
11
|
+
expected_hash = { :message => "is invalid", :without => /.+/ }
|
12
|
+
assert_equal expected_hash, FormatValidator.new(:attributes => [:name], :without => /.+/).client_side_hash(@book, :age)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_format_client_side_hash_with_custom_message
|
16
|
+
expected_hash = { :message => "is wrong format", :with => /.+/ }
|
17
|
+
assert_equal expected_hash, FormatValidator.new(:attributes => [:name], :with => /.+/, :message => "is wrong format").client_side_hash(@book, :age)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'mongoid/cases/test_base'
|
2
|
+
|
3
|
+
class Mongoid::UniqunessValidatorTest < ClientSideValidations::MongoidTestBase
|
4
|
+
def test_length_client_side_hash
|
5
|
+
expected_hash = {
|
6
|
+
:messages => {
|
7
|
+
:is => "is the wrong length (should be 10 characters)"
|
8
|
+
},
|
9
|
+
:is => 10
|
10
|
+
}
|
11
|
+
assert_equal expected_hash, LengthValidator.new(:attributes => [:age], :is => 10).client_side_hash(@book, :author_name)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_length_client_side_hash_with_custom_message
|
15
|
+
expected_hash = {
|
16
|
+
:messages => {
|
17
|
+
:is => "is the wrong length (should be 10 words)"
|
18
|
+
},
|
19
|
+
:is => 10
|
20
|
+
}
|
21
|
+
assert_equal expected_hash, LengthValidator.new(:attributes => [:age], :is => 10, :wrong_length => "is the wrong length (should be %{count} words)").client_side_hash(@book, :author_name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_length_client_side_hash_with_js_tokenizer
|
25
|
+
expected_hash = {
|
26
|
+
:messages => {
|
27
|
+
:is => "is the wrong length (should be 10 characters)"
|
28
|
+
},
|
29
|
+
:is => 10,
|
30
|
+
:js_tokenizer => %q{match(/\w+/g)}
|
31
|
+
}
|
32
|
+
assert_equal expected_hash, LengthValidator.new(:attributes => [:age], :is => 10, :tokenizer => proc { |value| value.split(/\w+/) }, :js_tokenizer => %q{match(/\w+/g)}).client_side_hash(@book, :author_name)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_length_client_side_hash_with_minimum_and_maximum
|
36
|
+
expected_hash = {
|
37
|
+
:messages => {
|
38
|
+
:minimum => "is too short (minimum is 5 characters)",
|
39
|
+
:maximum => "is too long (maximum is 10 characters)"
|
40
|
+
},
|
41
|
+
:minimum => 5,
|
42
|
+
:maximum => 10
|
43
|
+
}
|
44
|
+
assert_equal expected_hash, LengthValidator.new(:attributes => [:age], :minimum => 5, :maximum => 10).client_side_hash(@book, :author_name)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_length_client_side_hash_with_range
|
48
|
+
expected_hash = {
|
49
|
+
:messages => {
|
50
|
+
:minimum => "is too short (minimum is 5 characters)",
|
51
|
+
:maximum => "is too long (maximum is 10 characters)"
|
52
|
+
},
|
53
|
+
:minimum => 5,
|
54
|
+
:maximum => 10
|
55
|
+
}
|
56
|
+
assert_equal expected_hash, LengthValidator.new(:attributes => [:age], :within => 5..10).client_side_hash(@book, :author_name)
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'mongoid/cases/test_base'
|
2
|
+
|
3
|
+
class Mongoid::UniqunessValidatorTest < ClientSideValidations::MongoidTestBase
|
4
|
+
|
5
|
+
def test_presence_client_side_hash
|
6
|
+
expected_hash = { :message => "can't be blank" }
|
7
|
+
assert_equal expected_hash, PresenceValidator.new(:attributes => [:name]).client_side_hash(@book, :age)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_presence_client_side_hash_with_custom_message
|
11
|
+
expected_hash = { :message => "is required" }
|
12
|
+
assert_equal expected_hash, PresenceValidator.new(:attributes => [:name], :message => "is required").client_side_hash(@book, :age)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
@@ -12,7 +12,7 @@ class Mongoid::UniqunessValidatorTest < ClientSideValidations::MongoidTestBase
|
|
12
12
|
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name], :message => "is not available").client_side_hash(@book, :age)
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
15
|
+
def test_uniqueness_client_side_hash_with_id
|
16
16
|
@book.stubs(:new_record?).returns(false)
|
17
17
|
@book.stubs(:id).returns(1)
|
18
18
|
expected_hash = { :message => "is already taken", :id => 1 }
|
@@ -45,5 +45,10 @@ class Mongoid::UniqunessValidatorTest < ClientSideValidations::MongoidTestBase
|
|
45
45
|
expected_hash = { :message => "is already taken", :class => 'mongoid_test_module/book2' }
|
46
46
|
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name]).client_side_hash(@book, :age)
|
47
47
|
end
|
48
|
+
|
49
|
+
def test_uniqueness_client_side_hash_with_allow_blank
|
50
|
+
expected_hash = { :message => "is already taken", :allow_blank => true }
|
51
|
+
assert_equal expected_hash, UniquenessValidator.new(:attributes => [:name], :allow_blank => true).client_side_hash(@book, :age)
|
52
|
+
end
|
48
53
|
end
|
49
54
|
|
metadata
CHANGED
@@ -1,171 +1,231 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: client_side_validations
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.1.5
|
4
5
|
prerelease:
|
5
|
-
version: 3.1.4
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Brian Cardarella
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-10-02 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: rails
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
20
17
|
none: false
|
21
|
-
requirements:
|
18
|
+
requirements:
|
22
19
|
- - ~>
|
23
|
-
- !ruby/object:Gem::Version
|
20
|
+
- !ruby/object:Gem::Version
|
24
21
|
version: 3.1.0
|
25
22
|
type: :development
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: sqlite3
|
29
23
|
prerelease: false
|
30
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.1.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: sqlite3
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
31
33
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
36
38
|
type: :development
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: bson_ext
|
40
39
|
prerelease: false
|
41
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: bson_ext
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
42
49
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version:
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
47
54
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: mongoid
|
51
55
|
prerelease: false
|
52
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: mongoid
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
53
65
|
none: false
|
54
|
-
requirements:
|
66
|
+
requirements:
|
55
67
|
- - ~>
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: 2.
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 2.4.0
|
58
70
|
type: :development
|
59
|
-
version_requirements: *id004
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: mongo_mapper
|
62
71
|
prerelease: false
|
63
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 2.4.0
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: mongo_mapper
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
64
81
|
none: false
|
65
|
-
requirements:
|
82
|
+
requirements:
|
66
83
|
- - ~>
|
67
|
-
- !ruby/object:Gem::Version
|
84
|
+
- !ruby/object:Gem::Version
|
68
85
|
version: 0.9.0
|
69
86
|
type: :development
|
70
|
-
version_requirements: *id005
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: mocha
|
73
87
|
prerelease: false
|
74
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
89
|
none: false
|
76
|
-
requirements:
|
77
|
-
- -
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version:
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.9.0
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: mocha
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
80
102
|
type: :development
|
81
|
-
version_requirements: *id006
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: simple_form
|
84
103
|
prerelease: false
|
85
|
-
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: simple_form
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
86
113
|
none: false
|
87
|
-
requirements:
|
114
|
+
requirements:
|
88
115
|
- - ~>
|
89
|
-
- !ruby/object:Gem::Version
|
116
|
+
- !ruby/object:Gem::Version
|
90
117
|
version: 1.5.0
|
91
118
|
type: :development
|
92
|
-
version_requirements: *id007
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
|
-
name: formtastic
|
95
119
|
prerelease: false
|
96
|
-
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.5.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: formtastic
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
97
129
|
none: false
|
98
|
-
requirements:
|
130
|
+
requirements:
|
99
131
|
- - ~>
|
100
|
-
- !ruby/object:Gem::Version
|
132
|
+
- !ruby/object:Gem::Version
|
101
133
|
version: 2.0.0
|
102
134
|
type: :development
|
103
|
-
version_requirements: *id008
|
104
|
-
- !ruby/object:Gem::Dependency
|
105
|
-
name: sinatra
|
106
135
|
prerelease: false
|
107
|
-
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
137
|
none: false
|
109
|
-
requirements:
|
138
|
+
requirements:
|
110
139
|
- - ~>
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version:
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 2.0.0
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: m
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
113
150
|
type: :development
|
114
|
-
version_requirements: *id009
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: shotgun
|
117
151
|
prerelease: false
|
118
|
-
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: sinatra
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
119
161
|
none: false
|
120
|
-
requirements:
|
121
|
-
- -
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version:
|
162
|
+
requirements:
|
163
|
+
- - ~>
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '1.0'
|
124
166
|
type: :development
|
125
|
-
version_requirements: *id010
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: thin
|
128
167
|
prerelease: false
|
129
|
-
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ~>
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '1.0'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: shotgun
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
130
177
|
none: false
|
131
|
-
requirements:
|
132
|
-
- -
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version:
|
178
|
+
requirements:
|
179
|
+
- - ! '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
135
182
|
type: :development
|
136
|
-
version_requirements: *id011
|
137
|
-
- !ruby/object:Gem::Dependency
|
138
|
-
name: json
|
139
183
|
prerelease: false
|
140
|
-
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
185
|
none: false
|
142
|
-
requirements:
|
143
|
-
- -
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version:
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: thin
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
194
|
+
requirements:
|
195
|
+
- - ! '>='
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
146
198
|
type: :development
|
147
|
-
version_requirements: *id012
|
148
|
-
- !ruby/object:Gem::Dependency
|
149
|
-
name: ruby-debug19
|
150
199
|
prerelease: false
|
151
|
-
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
206
|
+
- !ruby/object:Gem::Dependency
|
207
|
+
name: json
|
208
|
+
requirement: !ruby/object:Gem::Requirement
|
152
209
|
none: false
|
153
|
-
requirements:
|
154
|
-
- -
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
version:
|
210
|
+
requirements:
|
211
|
+
- - ! '>='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
157
214
|
type: :development
|
158
|
-
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
159
222
|
description: Client Side Validations
|
160
|
-
email:
|
223
|
+
email:
|
161
224
|
- bcardarella@gmail.com
|
162
225
|
executables: []
|
163
|
-
|
164
226
|
extensions: []
|
165
|
-
|
166
227
|
extra_rdoc_files: []
|
167
|
-
|
168
|
-
files:
|
228
|
+
files:
|
169
229
|
- client_side_validations.gemspec
|
170
230
|
- lib/client_side_validations.rb
|
171
231
|
- lib/client_side_validations/action_view.rb
|
@@ -194,7 +254,10 @@ files:
|
|
194
254
|
- lib/client_side_validations/mongo_mapper/middleware.rb
|
195
255
|
- lib/client_side_validations/mongo_mapper/uniqueness.rb
|
196
256
|
- lib/client_side_validations/mongoid.rb
|
257
|
+
- lib/client_side_validations/mongoid/format.rb
|
258
|
+
- lib/client_side_validations/mongoid/length.rb
|
197
259
|
- lib/client_side_validations/mongoid/middleware.rb
|
260
|
+
- lib/client_side_validations/mongoid/presence.rb
|
198
261
|
- lib/client_side_validations/mongoid/uniqueness.rb
|
199
262
|
- lib/client_side_validations/simple_form.rb
|
200
263
|
- lib/client_side_validations/version.rb
|
@@ -273,42 +336,47 @@ files:
|
|
273
336
|
- test/mongo_mapper/models/magazine.rb
|
274
337
|
- test/mongoid/cases/helper.rb
|
275
338
|
- test/mongoid/cases/test_base.rb
|
339
|
+
- test/mongoid/cases/test_format_validator.rb
|
340
|
+
- test/mongoid/cases/test_length_validator.rb
|
276
341
|
- test/mongoid/cases/test_middleware.rb
|
342
|
+
- test/mongoid/cases/test_presence_validator.rb
|
277
343
|
- test/mongoid/cases/test_uniqueness_validator.rb
|
278
344
|
- test/mongoid/models/book.rb
|
279
345
|
- test/simple_form/cases/helper.rb
|
280
346
|
- test/simple_form/cases/test_form_builder.rb
|
281
347
|
- test/simple_form/cases/test_form_helper.rb
|
282
348
|
- test/test_loader.rb
|
283
|
-
has_rdoc: true
|
284
349
|
homepage: https://github.com/bcardarella/client_side_validations
|
285
350
|
licenses: []
|
286
|
-
|
287
351
|
post_install_message:
|
288
352
|
rdoc_options: []
|
289
|
-
|
290
|
-
require_paths:
|
353
|
+
require_paths:
|
291
354
|
- lib
|
292
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
355
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
293
356
|
none: false
|
294
|
-
requirements:
|
295
|
-
- -
|
296
|
-
- !ruby/object:Gem::Version
|
297
|
-
version:
|
298
|
-
|
357
|
+
requirements:
|
358
|
+
- - ! '>='
|
359
|
+
- !ruby/object:Gem::Version
|
360
|
+
version: '0'
|
361
|
+
segments:
|
362
|
+
- 0
|
363
|
+
hash: -1444017508037657570
|
364
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
299
365
|
none: false
|
300
|
-
requirements:
|
301
|
-
- -
|
302
|
-
- !ruby/object:Gem::Version
|
303
|
-
version:
|
366
|
+
requirements:
|
367
|
+
- - ! '>='
|
368
|
+
- !ruby/object:Gem::Version
|
369
|
+
version: '0'
|
370
|
+
segments:
|
371
|
+
- 0
|
372
|
+
hash: -1444017508037657570
|
304
373
|
requirements: []
|
305
|
-
|
306
374
|
rubyforge_project:
|
307
|
-
rubygems_version: 1.
|
375
|
+
rubygems_version: 1.8.23
|
308
376
|
signing_key:
|
309
377
|
specification_version: 3
|
310
378
|
summary: Client Side Validations
|
311
|
-
test_files:
|
379
|
+
test_files:
|
312
380
|
- test/action_view/cases/helper.rb
|
313
381
|
- test/action_view/cases/test_helpers.rb
|
314
382
|
- test/action_view/cases/test_legacy_helpers.rb
|
@@ -378,7 +446,10 @@ test_files:
|
|
378
446
|
- test/mongo_mapper/models/magazine.rb
|
379
447
|
- test/mongoid/cases/helper.rb
|
380
448
|
- test/mongoid/cases/test_base.rb
|
449
|
+
- test/mongoid/cases/test_format_validator.rb
|
450
|
+
- test/mongoid/cases/test_length_validator.rb
|
381
451
|
- test/mongoid/cases/test_middleware.rb
|
452
|
+
- test/mongoid/cases/test_presence_validator.rb
|
382
453
|
- test/mongoid/cases/test_uniqueness_validator.rb
|
383
454
|
- test/mongoid/models/book.rb
|
384
455
|
- test/simple_form/cases/helper.rb
|