ardm-validations 1.2.0
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.
- checksums.yaml +7 -0
- data/.gitignore +35 -0
- data/.travis.yml +11 -0
- data/Gemfile +51 -0
- data/LICENSE +21 -0
- data/README.rdoc +122 -0
- data/Rakefile +4 -0
- data/ardm-validations.gemspec +28 -0
- data/lib/ardm-validations.rb +1 -0
- data/lib/dm-validations.rb +169 -0
- data/lib/dm-validations/auto_validate.rb +252 -0
- data/lib/dm-validations/context.rb +66 -0
- data/lib/dm-validations/contextual_validators.rb +220 -0
- data/lib/dm-validations/exceptions.rb +5 -0
- data/lib/dm-validations/formats/email.rb +65 -0
- data/lib/dm-validations/formats/url.rb +27 -0
- data/lib/dm-validations/support/object.rb +18 -0
- data/lib/dm-validations/support/ordered_hash.rb +434 -0
- data/lib/dm-validations/validation_errors.rb +137 -0
- data/lib/dm-validations/validators/absent_field_validator.rb +58 -0
- data/lib/dm-validations/validators/acceptance_validator.rb +79 -0
- data/lib/dm-validations/validators/block_validator.rb +61 -0
- data/lib/dm-validations/validators/confirmation_validator.rb +92 -0
- data/lib/dm-validations/validators/format_validator.rb +124 -0
- data/lib/dm-validations/validators/generic_validator.rb +184 -0
- data/lib/dm-validations/validators/length_validator.rb +249 -0
- data/lib/dm-validations/validators/method_validator.rb +64 -0
- data/lib/dm-validations/validators/numeric_validator.rb +182 -0
- data/lib/dm-validations/validators/primitive_validator.rb +58 -0
- data/lib/dm-validations/validators/required_field_validator.rb +83 -0
- data/lib/dm-validations/validators/uniqueness_validator.rb +67 -0
- data/lib/dm-validations/validators/within_validator.rb +74 -0
- data/lib/dm-validations/version.rb +5 -0
- data/spec/fixtures/barcode.rb +40 -0
- data/spec/fixtures/basketball_court.rb +58 -0
- data/spec/fixtures/basketball_player.rb +34 -0
- data/spec/fixtures/beta_tester_account.rb +33 -0
- data/spec/fixtures/bill_of_landing.rb +47 -0
- data/spec/fixtures/boat_dock.rb +26 -0
- data/spec/fixtures/city.rb +24 -0
- data/spec/fixtures/company.rb +93 -0
- data/spec/fixtures/corporate_world.rb +39 -0
- data/spec/fixtures/country.rb +24 -0
- data/spec/fixtures/ethernet_frame.rb +56 -0
- data/spec/fixtures/event.rb +44 -0
- data/spec/fixtures/g3_concert.rb +57 -0
- data/spec/fixtures/jabberwock.rb +27 -0
- data/spec/fixtures/kayak.rb +28 -0
- data/spec/fixtures/lernean_hydra.rb +39 -0
- data/spec/fixtures/llama_spaceship.rb +15 -0
- data/spec/fixtures/mathematical_function.rb +34 -0
- data/spec/fixtures/memory_object.rb +30 -0
- data/spec/fixtures/mittelschnauzer.rb +39 -0
- data/spec/fixtures/motor_launch.rb +21 -0
- data/spec/fixtures/multibyte.rb +16 -0
- data/spec/fixtures/page.rb +32 -0
- data/spec/fixtures/phone_number.rb +28 -0
- data/spec/fixtures/pirogue.rb +28 -0
- data/spec/fixtures/programming_language.rb +83 -0
- data/spec/fixtures/reservation.rb +38 -0
- data/spec/fixtures/scm_operation.rb +56 -0
- data/spec/fixtures/sms_message.rb +22 -0
- data/spec/fixtures/udp_packet.rb +49 -0
- data/spec/integration/absent_field_validator/absent_field_validator_spec.rb +90 -0
- data/spec/integration/absent_field_validator/spec_helper.rb +7 -0
- data/spec/integration/acceptance_validator/acceptance_validator_spec.rb +196 -0
- data/spec/integration/acceptance_validator/spec_helper.rb +7 -0
- data/spec/integration/automatic_validation/custom_messages_for_inferred_validation_spec.rb +57 -0
- data/spec/integration/automatic_validation/disabling_inferred_validation_spec.rb +49 -0
- data/spec/integration/automatic_validation/inferred_boolean_properties_validation_spec.rb +100 -0
- data/spec/integration/automatic_validation/inferred_float_property_validation_spec.rb +45 -0
- data/spec/integration/automatic_validation/inferred_format_validation_spec.rb +35 -0
- data/spec/integration/automatic_validation/inferred_integer_properties_validation_spec.rb +70 -0
- data/spec/integration/automatic_validation/inferred_length_validation_spec.rb +142 -0
- data/spec/integration/automatic_validation/inferred_presence_validation_spec.rb +45 -0
- data/spec/integration/automatic_validation/inferred_primitive_validation_spec.rb +22 -0
- data/spec/integration/automatic_validation/inferred_uniqueness_validation_spec.rb +52 -0
- data/spec/integration/automatic_validation/inferred_within_validation_spec.rb +39 -0
- data/spec/integration/automatic_validation/spec_helper.rb +57 -0
- data/spec/integration/block_validator/block_validator_spec.rb +32 -0
- data/spec/integration/block_validator/spec_helper.rb +5 -0
- data/spec/integration/conditional_validation/if_condition_spec.rb +63 -0
- data/spec/integration/conditional_validation/spec_helper.rb +5 -0
- data/spec/integration/confirmation_validator/confirmation_validator_spec.rb +76 -0
- data/spec/integration/confirmation_validator/spec_helper.rb +5 -0
- data/spec/integration/datamapper_models/association_validation_spec.rb +29 -0
- data/spec/integration/datamapper_models/inheritance_spec.rb +82 -0
- data/spec/integration/dirty_attributes/dirty_attributes_spec.rb +13 -0
- data/spec/integration/duplicated_validations/duplicated_validations_spec.rb +24 -0
- data/spec/integration/duplicated_validations/spec_helper.rb +5 -0
- data/spec/integration/format_validator/email_format_validator_spec.rb +139 -0
- data/spec/integration/format_validator/format_validator_spec.rb +64 -0
- data/spec/integration/format_validator/regexp_validator_spec.rb +33 -0
- data/spec/integration/format_validator/spec_helper.rb +5 -0
- data/spec/integration/format_validator/url_format_validator_spec.rb +93 -0
- data/spec/integration/length_validator/default_value_spec.rb +14 -0
- data/spec/integration/length_validator/equality_spec.rb +87 -0
- data/spec/integration/length_validator/error_message_spec.rb +22 -0
- data/spec/integration/length_validator/maximum_spec.rb +49 -0
- data/spec/integration/length_validator/minimum_spec.rb +54 -0
- data/spec/integration/length_validator/range_spec.rb +87 -0
- data/spec/integration/length_validator/spec_helper.rb +7 -0
- data/spec/integration/method_validator/method_validator_spec.rb +241 -0
- data/spec/integration/method_validator/spec_helper.rb +5 -0
- data/spec/integration/numeric_validator/equality_with_float_type_spec.rb +65 -0
- data/spec/integration/numeric_validator/equality_with_integer_type_spec.rb +41 -0
- data/spec/integration/numeric_validator/float_type_spec.rb +90 -0
- data/spec/integration/numeric_validator/gt_with_float_type_spec.rb +37 -0
- data/spec/integration/numeric_validator/gte_with_float_type_spec.rb +37 -0
- data/spec/integration/numeric_validator/integer_only_true_spec.rb +91 -0
- data/spec/integration/numeric_validator/integer_type_spec.rb +86 -0
- data/spec/integration/numeric_validator/lt_with_float_type_spec.rb +37 -0
- data/spec/integration/numeric_validator/lte_with_float_type_spec.rb +37 -0
- data/spec/integration/numeric_validator/spec_helper.rb +5 -0
- data/spec/integration/primitive_validator/primitive_validator_spec.rb +92 -0
- data/spec/integration/primitive_validator/spec_helper.rb +5 -0
- data/spec/integration/pure_ruby_objects/plain_old_ruby_object_validation_spec.rb +118 -0
- data/spec/integration/required_field_validator/association_spec.rb +72 -0
- data/spec/integration/required_field_validator/boolean_type_value_spec.rb +155 -0
- data/spec/integration/required_field_validator/date_type_value_spec.rb +127 -0
- data/spec/integration/required_field_validator/datetime_type_value_spec.rb +127 -0
- data/spec/integration/required_field_validator/float_type_value_spec.rb +131 -0
- data/spec/integration/required_field_validator/integer_type_value_spec.rb +99 -0
- data/spec/integration/required_field_validator/plain_old_ruby_object_spec.rb +35 -0
- data/spec/integration/required_field_validator/shared_examples.rb +26 -0
- data/spec/integration/required_field_validator/spec_helper.rb +7 -0
- data/spec/integration/required_field_validator/string_type_value_spec.rb +167 -0
- data/spec/integration/required_field_validator/text_type_value_spec.rb +49 -0
- data/spec/integration/shared/default_validation_context.rb +13 -0
- data/spec/integration/shared/valid_and_invalid_model.rb +35 -0
- data/spec/integration/uniqueness_validator/spec_helper.rb +5 -0
- data/spec/integration/uniqueness_validator/uniqueness_validator_spec.rb +116 -0
- data/spec/integration/within_validator/spec_helper.rb +5 -0
- data/spec/integration/within_validator/within_validator_spec.rb +168 -0
- data/spec/public/resource_spec.rb +105 -0
- data/spec/rcov.opts +6 -0
- data/spec/spec.opts +4 -0
- data/spec/spec_helper.rb +29 -0
- data/spec/unit/contextual_validators/emptiness_spec.rb +50 -0
- data/spec/unit/contextual_validators/execution_spec.rb +48 -0
- data/spec/unit/contextual_validators/spec_helper.rb +37 -0
- data/spec/unit/generic_validator/equality_operator_spec.rb +26 -0
- data/spec/unit/generic_validator/optional_spec.rb +54 -0
- data/spec/unit/validation_errors/adding_spec.rb +54 -0
- data/spec/unit/validation_errors/emptiness_spec.rb +38 -0
- data/spec/unit/validation_errors/enumerable_spec.rb +32 -0
- data/spec/unit/validation_errors/reading_spec.rb +35 -0
- data/spec/unit/validation_errors/respond_to_spec.rb +15 -0
- data/spec/unit/validators/within_validator_spec.rb +23 -0
- data/tasks/spec.rake +38 -0
- data/tasks/yard.rake +9 -0
- data/tasks/yardstick.rake +19 -0
- metadata +256 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
|
|
7
|
+
class Event
|
|
8
|
+
#
|
|
9
|
+
# Behaviors
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
include ::DataMapper::Resource
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# Properties
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
property :id, Serial
|
|
19
|
+
property :name, String, :required => true
|
|
20
|
+
|
|
21
|
+
property :starts_at, DateTime
|
|
22
|
+
property :ends_at, DateTime
|
|
23
|
+
|
|
24
|
+
#
|
|
25
|
+
# Validations
|
|
26
|
+
#
|
|
27
|
+
|
|
28
|
+
validates_with_method :starts_at, :method => :ensure_dates_order_is_correct
|
|
29
|
+
|
|
30
|
+
#
|
|
31
|
+
# API
|
|
32
|
+
#
|
|
33
|
+
|
|
34
|
+
def ensure_dates_order_is_correct
|
|
35
|
+
if starts_at && ends_at && (starts_at <= ends_at)
|
|
36
|
+
true
|
|
37
|
+
else
|
|
38
|
+
[false, "Start time cannot be after end time"]
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end # Event
|
|
42
|
+
end # Fixtures
|
|
43
|
+
end # Validations
|
|
44
|
+
end # DataMapper
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
class G3Concert
|
|
7
|
+
#
|
|
8
|
+
# Bahaviors
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
include ::DataMapper::Validations
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Attributes
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
attr_accessor :year, :participants, :city
|
|
18
|
+
|
|
19
|
+
#
|
|
20
|
+
# Validations
|
|
21
|
+
#
|
|
22
|
+
|
|
23
|
+
validates_with_block :participants do
|
|
24
|
+
if self.class.known_performances.any? { |perf| perf == self }
|
|
25
|
+
true
|
|
26
|
+
else
|
|
27
|
+
[false, "this G3 is probably yet to take place"]
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
#
|
|
32
|
+
# API
|
|
33
|
+
#
|
|
34
|
+
|
|
35
|
+
def initialize(attributes = {})
|
|
36
|
+
attributes.each do |key, value|
|
|
37
|
+
self.send("#{key}=", value)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def ==(other)
|
|
42
|
+
other.year == self.year && other.participants == self.participants && other.city == self.city
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# obvisouly this is intentionally shortened list ;)
|
|
46
|
+
def self.known_performances
|
|
47
|
+
[
|
|
48
|
+
new(:year => 2004, :participants => "Joe Satriani, Steve Vai, Yngwie Malmsteen", :city => "Denver"),
|
|
49
|
+
new(:year => 1996, :participants => "Joe Satriani, Steve Vai, Eric Johnson", :city => "San Francisco"),
|
|
50
|
+
new(:year => 2001, :participants => "Joe Satriani, Steve Vai, John Petrucci", :city => "Los Angeles"),
|
|
51
|
+
new(:year => 2002, :participants => "Joe Satriani, Steve Vai, John Petrucci", :city => "Los Angeles")
|
|
52
|
+
]
|
|
53
|
+
end
|
|
54
|
+
end # G3Concert
|
|
55
|
+
end # Fixtures
|
|
56
|
+
end # Validations
|
|
57
|
+
end # DataMapper
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module DataMapper
|
|
2
|
+
module Validations
|
|
3
|
+
module Fixtures
|
|
4
|
+
|
|
5
|
+
class Jabberwock
|
|
6
|
+
#
|
|
7
|
+
# Behaviors
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
include DataMapper::Resource
|
|
11
|
+
|
|
12
|
+
#
|
|
13
|
+
# Properties
|
|
14
|
+
#
|
|
15
|
+
|
|
16
|
+
property :id, Serial
|
|
17
|
+
property :snickersnack, String
|
|
18
|
+
|
|
19
|
+
#
|
|
20
|
+
# Validations
|
|
21
|
+
#
|
|
22
|
+
|
|
23
|
+
validates_length_of :snickersnack, :within => 3..40, :message => "worble warble"
|
|
24
|
+
end # Jabberwock
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
class Kayak
|
|
7
|
+
#
|
|
8
|
+
# Behaviors
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
include ::DataMapper::Resource
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Properties
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
property :id, Serial
|
|
18
|
+
property :salesman, String, :auto_validation => false
|
|
19
|
+
|
|
20
|
+
#
|
|
21
|
+
# Validations
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
validates_absence_of :salesman, :on => :sale
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
class LerneanHydra
|
|
7
|
+
#
|
|
8
|
+
# Behaviors
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
include DataMapper::Resource
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Properties
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
property :id, Serial
|
|
18
|
+
|
|
19
|
+
without_auto_validations do
|
|
20
|
+
property :head_count, Float
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
#
|
|
24
|
+
# Validations
|
|
25
|
+
#
|
|
26
|
+
|
|
27
|
+
validates_numericality_of :head_count, :eq => 9, :message => "Lernean hydra is said to have exactly 9 heads"
|
|
28
|
+
|
|
29
|
+
def self.valid_instance(overrides = {})
|
|
30
|
+
defaults = {
|
|
31
|
+
:head_count => 9
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
new(defaults.merge(overrides))
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end # Fixtures
|
|
38
|
+
end # Validations
|
|
39
|
+
end # DataMapper
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module DataMapper
|
|
2
|
+
module Validations
|
|
3
|
+
module Fixtures
|
|
4
|
+
class LlamaSpaceship
|
|
5
|
+
include DataMapper::Resource
|
|
6
|
+
|
|
7
|
+
property :id, Serial
|
|
8
|
+
property :type, String
|
|
9
|
+
property :color, String
|
|
10
|
+
|
|
11
|
+
validates_format_of :color, :with => /^red|black$/, :if => Proc.new { |spaceship| spaceship.type == "standard" }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
class MathematicalFunction
|
|
7
|
+
#
|
|
8
|
+
# Behaviors
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
include ::DataMapper::Resource
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Properties
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
property :id, Serial
|
|
18
|
+
property :input, Float, :auto_validation => false
|
|
19
|
+
property :output, Float, :auto_validation => false
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
# Validations
|
|
23
|
+
#
|
|
24
|
+
|
|
25
|
+
# function domain
|
|
26
|
+
# don't ask me what function that is
|
|
27
|
+
validates_within :input, :set => (1..n)
|
|
28
|
+
|
|
29
|
+
# function range
|
|
30
|
+
validates_within :output, :set => (-n..0), :message => "Negative values or zero only, please"
|
|
31
|
+
end # MathematicalFunction
|
|
32
|
+
end # Fixtures
|
|
33
|
+
end # Validations
|
|
34
|
+
end # DataMapper
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
class MemoryObject
|
|
7
|
+
#
|
|
8
|
+
# Behaviors
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
include ::DataMapper::Resource
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Properties
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
property :id, Serial
|
|
18
|
+
property :marked, Boolean, :auto_validation => false
|
|
19
|
+
property :color, String, :auto_validation => false
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
# Validations
|
|
23
|
+
#
|
|
24
|
+
|
|
25
|
+
validates_primitive_type_of :marked
|
|
26
|
+
validates_primitive_type_of :color
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module DataMapper
|
|
2
|
+
module Validations
|
|
3
|
+
module Fixtures
|
|
4
|
+
# Mittelschauzer is a type of dog. The More You Know.
|
|
5
|
+
class Mittelschnauzer
|
|
6
|
+
|
|
7
|
+
#
|
|
8
|
+
# Behaviors
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
include DataMapper::Resource
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Properties
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
without_auto_validations do
|
|
18
|
+
property :name, String, :key => true
|
|
19
|
+
property :height, Float
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
attr_accessor :owner
|
|
23
|
+
|
|
24
|
+
#
|
|
25
|
+
# Validations
|
|
26
|
+
#
|
|
27
|
+
|
|
28
|
+
validates_length_of :name, :min => 2, :allow_nil => false
|
|
29
|
+
validates_length_of :owner, :min => 2
|
|
30
|
+
|
|
31
|
+
validates_numericality_of :height, :lt => 55.2
|
|
32
|
+
|
|
33
|
+
def self.valid_instance
|
|
34
|
+
new(:name => "Roudolf Wilde", :height => 50.4, :owner => 'don')
|
|
35
|
+
end
|
|
36
|
+
end # Mittelschnauzer
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module DataMapper
|
|
2
|
+
module Validations
|
|
3
|
+
module Fixtures
|
|
4
|
+
|
|
5
|
+
class MotorLaunch
|
|
6
|
+
#
|
|
7
|
+
# Behaviors
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
include DataMapper::Resource
|
|
11
|
+
|
|
12
|
+
#
|
|
13
|
+
# Properties
|
|
14
|
+
#
|
|
15
|
+
|
|
16
|
+
property :id, Serial
|
|
17
|
+
property :name, String, :auto_validation => false
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
|
|
7
|
+
# see http://datamapper.lighthouseapp.com/projects/20609/tickets/671
|
|
8
|
+
class Page
|
|
9
|
+
#
|
|
10
|
+
# Behaviors
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
include DataMapper::Resource
|
|
14
|
+
|
|
15
|
+
#
|
|
16
|
+
# Properties
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
property :id, Serial, :key => true
|
|
20
|
+
property :body, Text, :required => true
|
|
21
|
+
|
|
22
|
+
#
|
|
23
|
+
# Validations
|
|
24
|
+
#
|
|
25
|
+
|
|
26
|
+
# duplicates inferred validation for body (caused by
|
|
27
|
+
# :required => true)
|
|
28
|
+
validates_presence_of :body
|
|
29
|
+
end
|
|
30
|
+
end # Fixtures
|
|
31
|
+
end # Validations
|
|
32
|
+
end # DataMapper
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
class PhoneNumber
|
|
7
|
+
#
|
|
8
|
+
# Behaviors
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
include ::DataMapper::Resource
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Properties
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
property :id, Serial
|
|
18
|
+
property :type_of_number, String, :auto_validation => false
|
|
19
|
+
|
|
20
|
+
#
|
|
21
|
+
# Validations
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
validates_within :type_of_number, :set => %w(home work cell), :message => "Should be one of: home, cell or work"
|
|
25
|
+
end # PhoneNumber
|
|
26
|
+
end # Fixtures
|
|
27
|
+
end # Validations
|
|
28
|
+
end # DataMapper
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module DataMapper
|
|
4
|
+
module Validations
|
|
5
|
+
module Fixtures
|
|
6
|
+
class Pirogue
|
|
7
|
+
#
|
|
8
|
+
# Behaviors
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
include DataMapper::Resource
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Properties
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
property :id, Serial
|
|
18
|
+
property :salesman, String, :default => 'Layfayette'
|
|
19
|
+
|
|
20
|
+
#
|
|
21
|
+
# Validations
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
validates_absence_of :salesman, :on => :sale
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|