mongomatic 0.0.2 → 0.0.3
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/lib/mongomatic/base.rb +1 -1
- data/lib/mongomatic/validatable/child_validation.rb +17 -0
- data/lib/mongomatic/validatable/errors.rb +108 -0
- data/lib/mongomatic/validatable/included_validation.rb +11 -0
- data/lib/mongomatic/validatable/macros.rb +316 -0
- data/lib/{validatable → mongomatic/validatable}/object_extension.rb +0 -0
- data/lib/mongomatic/validatable/requireable.rb +28 -0
- data/lib/mongomatic/validatable/understandable.rb +33 -0
- data/lib/mongomatic/validatable/validatable_class_methods.rb +89 -0
- data/lib/mongomatic/validatable/validatable_instance_methods.rb +108 -0
- data/lib/mongomatic/validatable/validations/validates_acceptance_of.rb +16 -0
- data/lib/mongomatic/validatable/validations/validates_associated.rb +15 -0
- data/lib/mongomatic/validatable/validations/validates_confirmation_of.rb +25 -0
- data/lib/mongomatic/validatable/validations/validates_each.rb +16 -0
- data/lib/mongomatic/validatable/validations/validates_exclusion_of.rb +19 -0
- data/lib/mongomatic/validatable/validations/validates_format_of.rb +18 -0
- data/lib/mongomatic/validatable/validations/validates_inclusion_of.rb +19 -0
- data/lib/mongomatic/validatable/validations/validates_length_of.rb +32 -0
- data/lib/mongomatic/validatable/validations/validates_numericality_of.rb +28 -0
- data/lib/mongomatic/validatable/validations/validates_presence_of.rb +18 -0
- data/lib/mongomatic/validatable/validations/validates_true_for.rb +15 -0
- data/lib/mongomatic/validatable/validations/validation_base.rb +93 -0
- data/lib/{validatable.rb → mongomatic/validatable.rb} +4 -2
- data/lib/mongomatic.rb +1 -1
- metadata +26 -35
- data/lib/validatable/child_validation.rb +0 -15
- data/lib/validatable/errors.rb +0 -106
- data/lib/validatable/included_validation.rb +0 -9
- data/lib/validatable/macros.rb +0 -314
- data/lib/validatable/requireable.rb +0 -26
- data/lib/validatable/understandable.rb +0 -31
- data/lib/validatable/validatable_class_methods.rb +0 -87
- data/lib/validatable/validatable_instance_methods.rb +0 -106
- data/lib/validatable/validations/validates_acceptance_of.rb +0 -14
- data/lib/validatable/validations/validates_associated.rb +0 -13
- data/lib/validatable/validations/validates_confirmation_of.rb +0 -23
- data/lib/validatable/validations/validates_each.rb +0 -14
- data/lib/validatable/validations/validates_exclusion_of.rb +0 -17
- data/lib/validatable/validations/validates_format_of.rb +0 -16
- data/lib/validatable/validations/validates_inclusion_of.rb +0 -17
- data/lib/validatable/validations/validates_length_of.rb +0 -30
- data/lib/validatable/validations/validates_numericality_of.rb +0 -27
- data/lib/validatable/validations/validates_presence_of.rb +0 -17
- data/lib/validatable/validations/validates_true_for.rb +0 -13
- data/lib/validatable/validations/validation_base.rb +0 -91
@@ -0,0 +1,108 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
def self.included(klass) #:nodoc:
|
4
|
+
klass.extend Validatable::ClassMethods
|
5
|
+
klass.extend Validatable::Macros
|
6
|
+
end
|
7
|
+
|
8
|
+
# call-seq: valid?
|
9
|
+
#
|
10
|
+
# Returns true if no errors were added otherwise false. Only executes validations that have no :groups option specified
|
11
|
+
def valid?
|
12
|
+
valid_for_group?(nil)
|
13
|
+
end
|
14
|
+
|
15
|
+
# call-seq: errors
|
16
|
+
#
|
17
|
+
# Returns the Errors object that holds all information about attribute error messages.
|
18
|
+
def errors
|
19
|
+
@errors ||= Validatable::Errors.new
|
20
|
+
end
|
21
|
+
|
22
|
+
def valid_for_group?(group) #:nodoc:
|
23
|
+
errors.clear
|
24
|
+
run_before_validations
|
25
|
+
self.class.validate_children(self, group)
|
26
|
+
self.validate_group(group)
|
27
|
+
errors.empty?
|
28
|
+
end
|
29
|
+
|
30
|
+
def times_validated(key) #:nodoc:
|
31
|
+
times_validated_hash[key] || 0
|
32
|
+
end
|
33
|
+
|
34
|
+
def increment_times_validated_for(validation) #:nodoc:
|
35
|
+
if validation.key != nil
|
36
|
+
if times_validated_hash[validation.key].nil?
|
37
|
+
times_validated_hash[validation.key] = 1
|
38
|
+
else
|
39
|
+
times_validated_hash[validation.key] += 1
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# call-seq: validate_only(key)
|
45
|
+
#
|
46
|
+
# Only executes a specified validation. The argument should follow a pattern based on the key of the validation.
|
47
|
+
# Examples:
|
48
|
+
# * validates_presence_of :name can be run with obj.validate_only("presence_of/name")
|
49
|
+
# * validates_presence_of :birthday, :key => "a key" can be run with obj.validate_only("presence_of/a key")
|
50
|
+
def validate_only(key)
|
51
|
+
validation_name, attribute_name = key.split("/")
|
52
|
+
validation_name = validation_name.split("_").collect{|word| word.capitalize}.join
|
53
|
+
validation_key = "#{self.class.name}/Validatable::Validates#{validation_name}/#{attribute_name}"
|
54
|
+
validation = self.class.all_validations.find { |validation| validation.key == validation_key }
|
55
|
+
raise ArgumentError.new("validation with key #{validation_key} could not be found") if validation.nil?
|
56
|
+
errors.clear
|
57
|
+
run_validation(validation)
|
58
|
+
end
|
59
|
+
|
60
|
+
protected
|
61
|
+
def times_validated_hash #:nodoc:
|
62
|
+
@times_validated_hash ||= {}
|
63
|
+
end
|
64
|
+
|
65
|
+
def validate_group(group) #:nodoc:
|
66
|
+
validation_levels.each do |level|
|
67
|
+
validations_for_level_and_group(level, group).each do |validation|
|
68
|
+
run_validation(validation) if validation.should_validate?(self)
|
69
|
+
end
|
70
|
+
return unless self.errors.empty?
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def run_validation(validation) #:nodoc:
|
75
|
+
validation_result = validation.valid?(self)
|
76
|
+
add_error(validation.attribute, validation.message(self)) unless validation_result
|
77
|
+
increment_times_validated_for(validation)
|
78
|
+
validation.run_after_validate(validation_result, self, validation.attribute)
|
79
|
+
end
|
80
|
+
|
81
|
+
def run_before_validations #:nodoc:
|
82
|
+
self.class.all_before_validations.each do |block|
|
83
|
+
instance_eval &block
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def add_error(attribute, message) #:nodoc:
|
88
|
+
self.class.add_error(self, attribute, message)
|
89
|
+
end
|
90
|
+
|
91
|
+
def validations_for_level_and_group(level, group) #:nodoc:
|
92
|
+
validations_for_level = self.all_validations.select { |validation| validation.level == level }
|
93
|
+
return validations_for_level.select { |validation| validation.groups.empty? } if group.nil?
|
94
|
+
validations_for_level.select { |validation| validation.groups.include?(group) }
|
95
|
+
end
|
96
|
+
|
97
|
+
def all_validations #:nodoc:
|
98
|
+
res = self.class.validations_to_include.inject(self.class.all_validations) do |result, included_validation_class|
|
99
|
+
result += self.send(included_validation_class.attribute).all_validations
|
100
|
+
result
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def validation_levels #:nodoc:
|
105
|
+
self.class.all_validations.inject([1]) { |result, validation| result << validation.level }.uniq.sort
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesAcceptanceOf < ValidationBase #:nodoc:
|
4
|
+
def valid?(instance)
|
5
|
+
value = instance[self.attribute.to_s]
|
6
|
+
return true if allow_nil && value.nil?
|
7
|
+
return true if allow_blank && value.blank?
|
8
|
+
%w(1 true t).include?(value)
|
9
|
+
end
|
10
|
+
|
11
|
+
def message(instance)
|
12
|
+
super || "must be accepted"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesAssociated < ValidationBase #:nodoc:
|
4
|
+
def valid?(instance)
|
5
|
+
Array(instance.send(attribute)).compact.map do |child|
|
6
|
+
child.valid?
|
7
|
+
end.all?
|
8
|
+
end
|
9
|
+
|
10
|
+
def message(instance)
|
11
|
+
super || "is invalid"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesConfirmationOf < ValidationBase #:nodoc:
|
4
|
+
option :case_sensitive
|
5
|
+
default :case_sensitive => true
|
6
|
+
|
7
|
+
def initialize(klass, attribute, options={})
|
8
|
+
klass.class_eval { attr_accessor "#{attribute}_confirmation" }
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def valid?(instance)
|
13
|
+
confirmation_value = instance.send("#{self.attribute}_confirmation")
|
14
|
+
return true if allow_nil && confirmation_value.nil?
|
15
|
+
return true if allow_blank && confirmation_value.blank?
|
16
|
+
return instance[self.attribute.to_s] == instance.send("#{self.attribute}_confirmation".to_sym) if case_sensitive
|
17
|
+
instance[self.attribute.to_s].to_s.casecmp(instance.send("#{self.attribute}_confirmation".to_sym).to_s) == 0
|
18
|
+
end
|
19
|
+
|
20
|
+
def message(instance)
|
21
|
+
super || "doesn't match confirmation"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesEach < ValidationBase #:nodoc:
|
4
|
+
required_option :logic
|
5
|
+
|
6
|
+
def valid?(instance)
|
7
|
+
instance.instance_eval(&logic)
|
8
|
+
true # return true so no error is added. should look in the future at doing this different.
|
9
|
+
end
|
10
|
+
|
11
|
+
def message(instance)
|
12
|
+
super || "is invalid"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesExclusionOf < ValidationBase #:nodoc:
|
4
|
+
required_option :within
|
5
|
+
|
6
|
+
def valid?(instance)
|
7
|
+
value = instance.send(attribute)
|
8
|
+
return true if allow_nil && value.nil?
|
9
|
+
return true if allow_blank && value.blank?
|
10
|
+
|
11
|
+
!within.include?(value)
|
12
|
+
end
|
13
|
+
|
14
|
+
def message(instance)
|
15
|
+
super || "is reserved"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesFormatOf < ValidationBase #:nodoc:
|
4
|
+
required_option :with
|
5
|
+
|
6
|
+
def valid?(instance)
|
7
|
+
value = instance[self.attribute.to_s]
|
8
|
+
return true if allow_nil && value.nil?
|
9
|
+
return true if allow_blank && value.blank?
|
10
|
+
not (value.to_s =~ self.with).nil?
|
11
|
+
end
|
12
|
+
|
13
|
+
def message(instance)
|
14
|
+
super || "is invalid"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesInclusionOf < ValidationBase
|
4
|
+
required_option :within
|
5
|
+
|
6
|
+
def valid?(instance)
|
7
|
+
value = instance.send(attribute)
|
8
|
+
return true if allow_nil && value.nil?
|
9
|
+
return true if allow_blank && value.blank?
|
10
|
+
|
11
|
+
within.include?(value)
|
12
|
+
end
|
13
|
+
|
14
|
+
def message(instance)
|
15
|
+
super || "is not in the list"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesLengthOf < ValidationBase #:nodoc:
|
4
|
+
option :minimum, :maximum, :is, :within
|
5
|
+
|
6
|
+
def message(instance)
|
7
|
+
super || "is invalid"
|
8
|
+
end
|
9
|
+
|
10
|
+
def valid?(instance)
|
11
|
+
valid = true
|
12
|
+
value = instance[self.attribute.to_s]
|
13
|
+
|
14
|
+
if value.nil?
|
15
|
+
return true if allow_nil
|
16
|
+
value = ''
|
17
|
+
end
|
18
|
+
|
19
|
+
if value.blank?
|
20
|
+
return true if allow_blank
|
21
|
+
value = ''
|
22
|
+
end
|
23
|
+
|
24
|
+
valid &&= value.length <= maximum unless maximum.nil?
|
25
|
+
valid &&= value.length >= minimum unless minimum.nil?
|
26
|
+
valid &&= value.length == is unless is.nil?
|
27
|
+
valid &&= within.include?(value.length) unless within.nil?
|
28
|
+
valid
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesNumericalityOf < ValidationBase #:nodoc:
|
4
|
+
option :only_integer
|
5
|
+
|
6
|
+
def valid?(instance)
|
7
|
+
value = value_for(instance)
|
8
|
+
return true if allow_nil && value.nil?
|
9
|
+
return true if allow_blank && value.blank?
|
10
|
+
|
11
|
+
value = value.to_s
|
12
|
+
regex = self.only_integer ? /\A[+-]?\d+\Z/ : /^\d*\.{0,1}\d+$/
|
13
|
+
not (value =~ regex).nil?
|
14
|
+
end
|
15
|
+
|
16
|
+
def message(instance)
|
17
|
+
super || "must be a number"
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
def value_for(instance)
|
22
|
+
before_typecast_method = "#{self.attribute}_before_typecast"
|
23
|
+
value_method = instance.respond_to?(before_typecast_method.intern) ? before_typecast_method : self.attribute
|
24
|
+
instance.send(value_method)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesPresenceOf < ValidationBase #:nodoc:
|
4
|
+
def valid?(instance)
|
5
|
+
value = instance[self.attribute.to_s]
|
6
|
+
return true if allow_nil && value.nil?
|
7
|
+
return true if allow_blank && value.blank?
|
8
|
+
|
9
|
+
return false if instance[self.attribute.to_s].nil?
|
10
|
+
value.respond_to?(:strip) ? instance[self.attribute.to_s].strip.length != 0 : true
|
11
|
+
end
|
12
|
+
|
13
|
+
def message(instance)
|
14
|
+
super || "can't be empty"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidatesTrueFor < ValidationBase #:nodoc:
|
4
|
+
required_option :logic
|
5
|
+
|
6
|
+
def valid?(instance)
|
7
|
+
instance.instance_eval(&logic) == true
|
8
|
+
end
|
9
|
+
|
10
|
+
def message(instance)
|
11
|
+
super || "is invalid"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
module Mongomatic
|
2
|
+
module Validatable
|
3
|
+
class ValidationBase #:nodoc:
|
4
|
+
def self.required_option(*args)
|
5
|
+
option(*args)
|
6
|
+
requires(*args)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.option(*args)
|
10
|
+
attr_accessor(*args)
|
11
|
+
understands(*args)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.default(hash)
|
15
|
+
defaults.merge! hash
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.defaults
|
19
|
+
@defaults ||= {}
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.all_defaults
|
23
|
+
return defaults.merge(self.superclass.all_defaults) if self.superclass.respond_to? :all_defaults
|
24
|
+
defaults
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.after_validate(&block)
|
28
|
+
after_validations << block
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.after_validations
|
32
|
+
@after_validations ||= []
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.all_after_validations
|
36
|
+
return after_validations + self.superclass.all_after_validations if self.superclass.respond_to? :all_after_validations
|
37
|
+
after_validations
|
38
|
+
end
|
39
|
+
|
40
|
+
include Understandable
|
41
|
+
include Requireable
|
42
|
+
|
43
|
+
option :message, :if, :times, :level, :groups, :key, :after_validate, :allow_nil, :allow_blank
|
44
|
+
default :level => 1, :groups => []
|
45
|
+
attr_accessor :attribute
|
46
|
+
|
47
|
+
def initialize(klass, attribute, options={})
|
48
|
+
must_understand options
|
49
|
+
requires options
|
50
|
+
self.class.all_understandings.each do |understanding|
|
51
|
+
options[understanding] = self.class.all_defaults[understanding] unless options.has_key? understanding
|
52
|
+
self.instance_variable_set("@#{understanding}", options[understanding])
|
53
|
+
end
|
54
|
+
self.attribute = attribute
|
55
|
+
self.groups = [self.groups] unless self.groups.is_a?(Array)
|
56
|
+
self.key = "#{klass.name}/#{self.class.name}/#{self.key || self.attribute}"
|
57
|
+
raise_error_if_key_is_dup(klass)
|
58
|
+
end
|
59
|
+
|
60
|
+
def raise_error_if_key_is_dup(klass)
|
61
|
+
message = "key #{self.key} must be unique, provide the :key option to specify a unique key"
|
62
|
+
raise ArgumentError.new(message) if klass.validation_keys_include? self.key
|
63
|
+
end
|
64
|
+
|
65
|
+
def should_validate?(instance)
|
66
|
+
result = validate_this_time?(instance)
|
67
|
+
case self.if
|
68
|
+
when Proc
|
69
|
+
result &&= instance.instance_eval(&self.if)
|
70
|
+
when Symbol, String
|
71
|
+
result &&= instance.instance_eval(self.if.to_s)
|
72
|
+
end
|
73
|
+
result
|
74
|
+
end
|
75
|
+
|
76
|
+
def message(instance)
|
77
|
+
@message.respond_to?(:call) ? instance.instance_eval(&@message) : @message
|
78
|
+
end
|
79
|
+
|
80
|
+
def validate_this_time?(instance)
|
81
|
+
return true if @times.nil?
|
82
|
+
self.times > instance.times_validated(self.key)
|
83
|
+
end
|
84
|
+
|
85
|
+
def run_after_validate(result, instance, attribute)
|
86
|
+
self.class.all_after_validations.each do |block|
|
87
|
+
block.call result, instance, attribute
|
88
|
+
end
|
89
|
+
instance.instance_eval_with_params result, attribute, &self.after_validate unless self.after_validate.nil?
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -24,6 +24,8 @@ require "#{File.dirname(__FILE__)}/validatable/validations/validates_inclusion_o
|
|
24
24
|
require "#{File.dirname(__FILE__)}/validatable/validations/validates_each"
|
25
25
|
require "#{File.dirname(__FILE__)}/validatable/validations/validates_associated"
|
26
26
|
|
27
|
-
module
|
28
|
-
|
27
|
+
module Mongomatic
|
28
|
+
module Validatable
|
29
|
+
Version = "1.8.4"
|
30
|
+
end
|
29
31
|
end
|
data/lib/mongomatic.rb
CHANGED
@@ -27,7 +27,7 @@ module Mongomatic
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
require "#{File.dirname(__FILE__)}/validatable"
|
30
|
+
require "#{File.dirname(__FILE__)}/mongomatic/validatable"
|
31
31
|
|
32
32
|
require "#{File.dirname(__FILE__)}/mongomatic/cursor"
|
33
33
|
require "#{File.dirname(__FILE__)}/mongomatic/modifiers"
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 3
|
9
|
+
version: 0.0.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Ben Myles
|
@@ -14,14 +14,13 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-07-
|
17
|
+
date: 2010-07-08 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: shoulda
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
-
none: false
|
25
24
|
requirements:
|
26
25
|
- - ">="
|
27
26
|
- !ruby/object:Gem::Version
|
@@ -36,7 +35,6 @@ dependencies:
|
|
36
35
|
name: bson
|
37
36
|
prerelease: false
|
38
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
38
|
requirements:
|
41
39
|
- - "="
|
42
40
|
- !ruby/object:Gem::Version
|
@@ -51,7 +49,6 @@ dependencies:
|
|
51
49
|
name: bson_ext
|
52
50
|
prerelease: false
|
53
51
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
52
|
requirements:
|
56
53
|
- - "="
|
57
54
|
- !ruby/object:Gem::Version
|
@@ -66,7 +63,6 @@ dependencies:
|
|
66
63
|
name: mongo
|
67
64
|
prerelease: false
|
68
65
|
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
-
none: false
|
70
66
|
requirements:
|
71
67
|
- - "="
|
72
68
|
- !ruby/object:Gem::Version
|
@@ -81,7 +77,6 @@ dependencies:
|
|
81
77
|
name: activesupport
|
82
78
|
prerelease: false
|
83
79
|
requirement: &id005 !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
80
|
requirements:
|
86
81
|
- - ">="
|
87
82
|
- !ruby/object:Gem::Version
|
@@ -106,32 +101,30 @@ files:
|
|
106
101
|
- lib/mongomatic/base.rb
|
107
102
|
- lib/mongomatic/cursor.rb
|
108
103
|
- lib/mongomatic/modifiers.rb
|
109
|
-
- lib/validatable.rb
|
110
|
-
- lib/validatable/child_validation.rb
|
111
|
-
- lib/validatable/errors.rb
|
112
|
-
- lib/validatable/included_validation.rb
|
113
|
-
- lib/validatable/macros.rb
|
114
|
-
- lib/validatable/object_extension.rb
|
115
|
-
- lib/validatable/requireable.rb
|
116
|
-
- lib/validatable/understandable.rb
|
117
|
-
- lib/validatable/validatable_class_methods.rb
|
118
|
-
- lib/validatable/validatable_instance_methods.rb
|
119
|
-
- lib/validatable/validations/validates_acceptance_of.rb
|
120
|
-
- lib/validatable/validations/validates_associated.rb
|
121
|
-
- lib/validatable/validations/validates_confirmation_of.rb
|
122
|
-
- lib/validatable/validations/validates_each.rb
|
123
|
-
- lib/validatable/validations/validates_exclusion_of.rb
|
124
|
-
- lib/validatable/validations/validates_format_of.rb
|
125
|
-
- lib/validatable/validations/validates_inclusion_of.rb
|
126
|
-
- lib/validatable/validations/validates_length_of.rb
|
127
|
-
- lib/validatable/validations/validates_numericality_of.rb
|
128
|
-
- lib/validatable/validations/validates_presence_of.rb
|
129
|
-
- lib/validatable/validations/validates_true_for.rb
|
130
|
-
- lib/validatable/validations/validation_base.rb
|
104
|
+
- lib/mongomatic/validatable.rb
|
105
|
+
- lib/mongomatic/validatable/child_validation.rb
|
106
|
+
- lib/mongomatic/validatable/errors.rb
|
107
|
+
- lib/mongomatic/validatable/included_validation.rb
|
108
|
+
- lib/mongomatic/validatable/macros.rb
|
109
|
+
- lib/mongomatic/validatable/object_extension.rb
|
110
|
+
- lib/mongomatic/validatable/requireable.rb
|
111
|
+
- lib/mongomatic/validatable/understandable.rb
|
112
|
+
- lib/mongomatic/validatable/validatable_class_methods.rb
|
113
|
+
- lib/mongomatic/validatable/validatable_instance_methods.rb
|
114
|
+
- lib/mongomatic/validatable/validations/validates_acceptance_of.rb
|
115
|
+
- lib/mongomatic/validatable/validations/validates_associated.rb
|
116
|
+
- lib/mongomatic/validatable/validations/validates_confirmation_of.rb
|
117
|
+
- lib/mongomatic/validatable/validations/validates_each.rb
|
118
|
+
- lib/mongomatic/validatable/validations/validates_exclusion_of.rb
|
119
|
+
- lib/mongomatic/validatable/validations/validates_format_of.rb
|
120
|
+
- lib/mongomatic/validatable/validations/validates_inclusion_of.rb
|
121
|
+
- lib/mongomatic/validatable/validations/validates_length_of.rb
|
122
|
+
- lib/mongomatic/validatable/validations/validates_numericality_of.rb
|
123
|
+
- lib/mongomatic/validatable/validations/validates_presence_of.rb
|
124
|
+
- lib/mongomatic/validatable/validations/validates_true_for.rb
|
125
|
+
- lib/mongomatic/validatable/validations/validation_base.rb
|
131
126
|
- LICENSE
|
132
127
|
- README.rdoc
|
133
|
-
- test/helper.rb
|
134
|
-
- test/test_meta_mongo.rb
|
135
128
|
has_rdoc: true
|
136
129
|
homepage: http://github.com/benmyles/mongomatic
|
137
130
|
licenses: []
|
@@ -142,7 +135,6 @@ rdoc_options:
|
|
142
135
|
require_paths:
|
143
136
|
- lib
|
144
137
|
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
138
|
requirements:
|
147
139
|
- - ">="
|
148
140
|
- !ruby/object:Gem::Version
|
@@ -150,7 +142,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
142
|
- 0
|
151
143
|
version: "0"
|
152
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
145
|
requirements:
|
155
146
|
- - ">="
|
156
147
|
- !ruby/object:Gem::Version
|
@@ -160,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
151
|
requirements: []
|
161
152
|
|
162
153
|
rubyforge_project:
|
163
|
-
rubygems_version: 1.3.
|
154
|
+
rubygems_version: 1.3.6
|
164
155
|
signing_key:
|
165
156
|
specification_version: 3
|
166
157
|
summary: Mongomatic is a simple Ruby object mapper for Mongo
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module Validatable
|
2
|
-
class ChildValidation #:nodoc:
|
3
|
-
attr_accessor :attribute, :map, :should_validate_proc
|
4
|
-
|
5
|
-
def initialize(attribute, map, should_validate_proc)
|
6
|
-
@attribute = attribute
|
7
|
-
@map = map
|
8
|
-
@should_validate_proc = should_validate_proc
|
9
|
-
end
|
10
|
-
|
11
|
-
def should_validate?(instance)
|
12
|
-
instance.instance_eval &should_validate_proc
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|