dm-is-reflective 1.0.0 → 1.0.1.rc

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/CHANGES CHANGED
@@ -1,5 +1,10 @@
1
1
  = dm-is-reflective changes history
2
2
 
3
+ === dm-is-reflective 1.0.1, ?
4
+ * allow_nil is more close to db's semantics, not required. Thanks miaout17.
5
+ `:allow_nil` allows empty value, but `:required` does not. So here we
6
+ always use `:allow_nil` to match db's semantics.
7
+
3
8
  === dm-is-reflective 1.0.0, 2011-06-16
4
9
  * updated against dm-core 1.1.0
5
10
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{dm-is-reflective}
5
- s.version = "1.0.0"
5
+ s.version = "1.0.1.rc"
6
6
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
7
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = [%q{Lin Jen-Shin (godfat)}]
9
- s.date = %q{2011-06-16}
9
+ s.date = %q{2011-07-19}
10
10
  s.description = %q{DataMapper plugin that helps you manipulate an existing database. It creates mappings between existing columns and model's properties.}
11
11
  s.email = [%q{godfat (XD) godfat.org}]
12
12
  s.extra_rdoc_files = [
@@ -34,7 +34,7 @@ module DataMapper
34
34
  attrs[:serial] = true if field.extra == 'auto_increment'
35
35
  attrs[:key] = true if field.column_key == 'PRI'
36
36
 
37
- attrs[:required] = field.is_nullable != 'YES'
37
+ attrs[:allow_nil] = field.is_nullable == 'YES'
38
38
  attrs[:default] = field.column_default if
39
39
  field.column_default
40
40
 
@@ -53,7 +53,7 @@ module DataMapper
53
53
 
54
54
  attrs[:serial] = true if field.column_default =~ /nextval\('\w+'\)/
55
55
  attrs[:key] = true if field.key?
56
- attrs[:required] = field.is_nullable != 'YES'
56
+ attrs[:allow_nil] = field.is_nullable == 'YES'
57
57
  # strip string quotation
58
58
  attrs[:default] = field.column_default.gsub(/^'(.*?)'$/, '\1') if
59
59
  field.column_default && !attrs[:serial]
@@ -32,7 +32,7 @@ module DataMapper
32
32
  attrs[:key] = true
33
33
  attrs[:serial] = true if supports_serial?
34
34
  end
35
- attrs[:required] = field.notnull == 1
35
+ attrs[:allow_nil] = field.notnull == 0
36
36
  attrs[:default] = field.dflt_value[1..-2] if field.dflt_value
37
37
 
38
38
  if field.type.upcase == 'TEXT'
@@ -2,7 +2,7 @@
2
2
  module DataMapper
3
3
  module Is
4
4
  module Reflective
5
- VERSION = '0.9.0'
5
+ VERSION = '1.0.1.rc'
6
6
  end
7
7
  end
8
8
  end
@@ -2,7 +2,7 @@
2
2
  module DataMapper
3
3
  module Is
4
4
  module Reflective
5
- VERSION = '1.0.0'
5
+ VERSION = '1.0.1.rc'
6
6
  end
7
7
  end
8
8
  end
data/test/abstract.rb CHANGED
@@ -8,8 +8,8 @@ module Abstract
8
8
  raise 'please provide a clean database because it is a destructive test!!'
9
9
  end
10
10
 
11
- AttrCommon = {:required => false}
12
- AttrCommonPK = {:serial => true, :key => true, :required => true}
11
+ AttrCommon = {:allow_nil => true}
12
+ AttrCommonPK = {:serial => true, :key => true, :allow_nil => false}
13
13
  AttrText = {:length => 65535}.merge(AttrCommon)
14
14
 
15
15
  def user_fields
@@ -22,8 +22,8 @@ module Abstract
22
22
  def comment_fields
23
23
  [[:body, DataMapper::Property::Text, AttrText],
24
24
  [:id, DataMapper::Property::Serial, AttrCommonPK],
25
- [:title, String, {:length => 50, :default => 'default title'}.
26
- merge(AttrCommon)],
25
+ [:title, String, {:length => 50, :default => 'default title',
26
+ :allow_nil => false}],
27
27
  [:user_id, Integer, AttrCommon]]
28
28
  end
29
29
 
@@ -67,7 +67,8 @@ module Abstract
67
67
  belongs_to :user, :required => false
68
68
 
69
69
  property :id, Serial
70
- property :title, String, :length => 50, :default => 'default title'
70
+ property :title, String, :length => 50, :default => 'default title',
71
+ :allow_nil => false
71
72
  property :body, Text
72
73
 
73
74
  is :reflective
@@ -196,6 +197,10 @@ module Abstract
196
197
  }
197
198
  end
198
199
 
200
+ def test_allow_empty_string
201
+ assert Comment.new(:title => '').save
202
+ end
203
+
199
204
  def test_auto_genclasses
200
205
  scope = new_scope
201
206
  assert_equal ["#{scope == Object ? '' : "#{scope}::"}AbstractComment",
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-is-reflective
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 1.0.1.rc
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Lin Jen-Shin (godfat)
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-06-16 00:00:00.000000000Z
12
+ date: 2011-07-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dm-core
16
- requirement: &2160101400 !ruby/object:Gem::Requirement
16
+ requirement: &2152609200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2160101400
24
+ version_requirements: *2152609200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: dm-do-adapter
27
- requirement: &2160100780 !ruby/object:Gem::Requirement
27
+ requirement: &2152608560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2160100780
35
+ version_requirements: *2152608560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: dm-migrations
38
- requirement: &2160100040 !ruby/object:Gem::Requirement
38
+ requirement: &2152607860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2160100040
46
+ version_requirements: *2152607860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: dm-sqlite-adapter
49
- requirement: &2160075900 !ruby/object:Gem::Requirement
49
+ requirement: &2152607200 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2160075900
57
+ version_requirements: *2152607200
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: dm-mysql-adapter
60
- requirement: &2160075200 !ruby/object:Gem::Requirement
60
+ requirement: &2152606480 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2160075200
68
+ version_requirements: *2152606480
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: dm-postgres-adapter
71
- requirement: &2160074520 !ruby/object:Gem::Requirement
71
+ requirement: &2152605820 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2160074520
79
+ version_requirements: *2152605820
80
80
  description: DataMapper plugin that helps you manipulate an existing database. It
81
81
  creates mappings between existing columns and model's properties.
82
82
  email:
@@ -130,9 +130,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
130
130
  required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  none: false
132
132
  requirements:
133
- - - ! '>='
133
+ - - ! '>'
134
134
  - !ruby/object:Gem::Version
135
- version: '0'
135
+ version: 1.3.1
136
136
  requirements: []
137
137
  rubyforge_project:
138
138
  rubygems_version: 1.8.5