byron-dm-property-validations 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/dm-property-validations.rb +28 -0
  2. metadata +55 -0
@@ -0,0 +1,28 @@
1
+ # TOTAL HACK ... couldn't find a clean way to include this when you include a DM Resource
2
+ $default_datamapper_resource_included_method = DataMapper::Resource.method(:included)
3
+ def (DataMapper::Resource).included base
4
+ base.extend DataMapperPropertyValidations::ClassMethods
5
+ $default_datamapper_resource_included_method.call(base)
6
+ end
7
+
8
+ # Makes validations work the way Byron wants them to
9
+ module DataMapperPropertyValidations
10
+ module ClassMethods
11
+
12
+ # see spec for usage
13
+ def validates_property property_name, method_name = nil, &block
14
+ validates_with_block property_name do
15
+ response = method_name.nil? ? instance_eval(&block) : send(method_name)
16
+ case response
17
+ when String
18
+ [false, "#{ property_name.to_s.capitalize } #{ response }"]
19
+ when false
20
+ [false, "#{ property_name.to_s.capitalize } is not valid"]
21
+ else
22
+ true
23
+ end
24
+ end
25
+ end
26
+
27
+ end
28
+ end
metadata ADDED
@@ -0,0 +1,55 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: byron-dm-property-validations
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors: []
7
+
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-13 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: For making dm-validations work the way Byron expects it will
17
+ email:
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - lib/dm-property-validations.rb
26
+ has_rdoc: true
27
+ homepage:
28
+ licenses: []
29
+
30
+ post_install_message:
31
+ rdoc_options: []
32
+
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: "0"
40
+ version:
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ version:
47
+ requirements: []
48
+
49
+ rubyforge_project:
50
+ rubygems_version: 1.3.5
51
+ signing_key:
52
+ specification_version: 3
53
+ summary: For making dm-validations work the way Byron expects it will
54
+ test_files: []
55
+