dm-is-reflective 0.8.0 → 0.9.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.
Files changed (71) hide show
  1. data/CHANGES +5 -1
  2. data/NOTICE +1 -11
  3. data/README +24 -24
  4. data/README.rdoc +122 -0
  5. data/Rakefile +26 -30
  6. data/TODO +4 -0
  7. data/dm-is-reflective.gemspec +29 -20
  8. data/lib/dm-is-reflective.rb +6 -4
  9. data/lib/dm-is-reflective/is/adapters/{abstract_adapter.rb → data_objects_adapter.rb} +15 -15
  10. data/lib/dm-is-reflective/is/adapters/mysql_adapter.rb +7 -8
  11. data/lib/dm-is-reflective/is/adapters/postgres_adapter.rb +7 -9
  12. data/lib/dm-is-reflective/is/adapters/{sqlite3_adapter.rb → sqlite_adapter.rb} +8 -11
  13. data/lib/dm-is-reflective/is/version.rb +1 -1
  14. data/lib/dm-is-reflective/version.rb +1 -1
  15. data/test/abstract.rb +13 -13
  16. data/test/setup_db.sh +12 -0
  17. data/test/{test_dm-is-reflexible.rb → test_dm-is-reflective.rb} +9 -9
  18. metadata +125 -123
  19. data/.gita/COMMIT_EDITMSG +0 -9
  20. data/.gita/HEAD +0 -1
  21. data/.gita/ORIG_HEAD +0 -1
  22. data/.gita/RENAMED-REF +0 -1
  23. data/.gita/config +0 -9
  24. data/.gita/description +0 -1
  25. data/.gita/gitk.cache +0 -6
  26. data/.gita/hooks/applypatch-msg +0 -15
  27. data/.gita/hooks/commit-msg +0 -24
  28. data/.gita/hooks/post-commit +0 -8
  29. data/.gita/hooks/post-receive +0 -16
  30. data/.gita/hooks/post-update +0 -8
  31. data/.gita/hooks/pre-applypatch +0 -14
  32. data/.gita/hooks/pre-commit +0 -70
  33. data/.gita/hooks/pre-rebase +0 -150
  34. data/.gita/hooks/prepare-commit-msg +0 -36
  35. data/.gita/hooks/update +0 -107
  36. data/.gita/index +0 -0
  37. data/.gita/info/exclude +0 -6
  38. data/.gita/info/refs +0 -26
  39. data/.gita/logs/HEAD +0 -40
  40. data/.gita/logs/refs/heads/dm-mapping +0 -1
  41. data/.gita/logs/refs/heads/master +0 -40
  42. data/.gita/logs/refs/heads/return-symbol +0 -0
  43. data/.gita/logs/refs/remotes/origin/dm-mapping +0 -1
  44. data/.gita/logs/refs/remotes/origin/master +0 -6
  45. data/.gita/logs/refs/remotes/origin/return-symbol +0 -0
  46. data/.gita/objects/5c/91380a1616b7c2d23e14eeb49d9edde58e1f47 +0 -2
  47. data/.gita/objects/63/71947bcb9c0dd1d3b3d6f449b2d4b4c6c81e63 +0 -0
  48. data/.gita/objects/73/23ae22118cc54fb0bbb0d6f51cc99191019b96 +0 -0
  49. data/.gita/objects/81/a0ab6e4dbd148faa0644307b313799027d3344 +0 -2
  50. data/.gita/objects/b2/9571a21e3bccb60079dfca630dac981f623489 +0 -5
  51. data/.gita/objects/cb/138acf9efc0f5b3ff91c644cae4dec868442e4 +0 -5
  52. data/.gita/objects/d5/66699fc7ba5237311cc44648d0cd2abbaa895e +0 -0
  53. data/.gita/objects/info/packs +0 -2
  54. data/.gita/objects/pack/pack-c9156ef3406b98f5f12875b13643df7a5f41e42c.idx +0 -0
  55. data/.gita/objects/pack/pack-c9156ef3406b98f5f12875b13643df7a5f41e42c.pack +0 -0
  56. data/.gita/packed-refs +0 -27
  57. data/.gita/refs/heads/master +0 -1
  58. data/.gita/refs/tags/dm-is-reflective-0.8.0 +0 -1
  59. data/tasks/ann.rake +0 -80
  60. data/tasks/bones.rake +0 -20
  61. data/tasks/gem.rake +0 -201
  62. data/tasks/git.rake +0 -40
  63. data/tasks/notes.rake +0 -27
  64. data/tasks/post_load.rake +0 -34
  65. data/tasks/rdoc.rake +0 -51
  66. data/tasks/rubyforge.rake +0 -55
  67. data/tasks/setup.rb +0 -294
  68. data/tasks/spec.rake +0 -54
  69. data/tasks/svn.rake +0 -47
  70. data/tasks/test.rake +0 -40
  71. data/tasks/zentest.rake +0 -36
data/CHANGES CHANGED
@@ -1,4 +1,8 @@
1
- = dm-mapper changes history
1
+ = dm-is-reflective changes history
2
+
3
+ === dm-is-reflective 0.9.0, 2010-07-05
4
+ * adapted to dm-core 1.0.0
5
+ * reanmed AbstractAdapter to DataObjectsAdapter
2
6
 
3
7
  === dm-is-reflective 0.8.0, 2009-09-16
4
8
  * require dm-core 0.10.0 and above now
data/NOTICE CHANGED
@@ -1,16 +1,12 @@
1
1
  = notice and thanks
2
2
 
3
3
  * dm-is-reflective is a plugin of DataMapper
4
- > sudo gem install dm-core
4
+ > gem install dm-core
5
5
  http://datamapper.org
6
6
 
7
7
  * this project skeleton is built through Mr Bones
8
8
  http://codeforpeople.rubyforge.org/bones/
9
9
 
10
- * thanks to Rails team with ActiveRecord, it's inspiring.
11
- and some SQL snippets are borrowed from it.
12
- http://rubyonrails.org
13
-
14
10
  * Ruby the great language
15
11
  http://www.ruby-lang.org
16
12
 
@@ -20,11 +16,5 @@
20
16
  * Rake the great task automation
21
17
  http://rake.rubyforge.org
22
18
 
23
- * Facets the great ruby library collection
24
- http://facets.rubyforge.org/
25
-
26
- * Rubyforge for distributing ruby gems
27
- http://rubyforge.org
28
-
29
19
  * Github for hosting git
30
20
  http://github.com
data/README CHANGED
@@ -1,12 +1,12 @@
1
- = dm-is-reflective 0.8.0
1
+ = dm-is-reflective 0.9.0
2
2
  by Lin Jen-Shin (aka godfat-真常[http://godfat.org])
3
3
  godfat (XD) godfat.org
4
4
 
5
5
  == LINKS:
6
6
 
7
- * rdoc[http://ludy.rubyforge.org/dm-is-reflective]
8
- * github-project[http://github.com/godfat/dm-is-reflective]
9
- * rubyforge-project[http://rubyforge.org/projects/ludy]
7
+ * {github}[http://github.com/godfat/dm-is-reflective]
8
+ * {rubygems}[http://rubygems.org/gems/dm-is-reflective]
9
+ * {rdoc}[http://rdoc.info/projects/godfat/dm-is-reflective]
10
10
 
11
11
  == DESCRIPTION:
12
12
 
@@ -23,25 +23,25 @@ by Lin Jen-Shin (aka godfat-真常[http://godfat.org])
23
23
  is :reflective
24
24
 
25
25
  # mapping all, returns an array of properties indicating fields it mapped
26
- mapping /.*/ # e.g. => [#<Property:#<Class:0x18f89b8>:id>,
26
+ reflect /.*/ # e.g. => [#<Property:#<Class:0x18f89b8>:id>,
27
27
  # #<Property:#<Class:0x18f89b8>:title>,
28
28
  # #<Property:#<Class:0x18f89b8>:body>,
29
29
  # #<Property:#<Class:0x18f89b8>:user_id>]
30
30
 
31
31
  # mapping all (with no argument at all)
32
- mapping
32
+ reflect
33
33
 
34
34
  # mapping for field name ended with _at, and started with salt_
35
- mapping /_at$/, /^salt_/
35
+ reflect /_at$/, /^salt_/
36
36
 
37
37
  # mapping id and email
38
- mapping :id, :email
38
+ reflect :id, :email
39
39
 
40
40
  # mapping all fields with type String, and id
41
- mapping String, :id
41
+ reflect String, :id
42
42
 
43
43
  # mapping login, and all fields with type Integer
44
- mapping :login, Integer
44
+ reflect :login, Integer
45
45
  end
46
46
 
47
47
  # there's no guarantee of the order in storages array
@@ -50,27 +50,27 @@ by Lin Jen-Shin (aka godfat-真常[http://godfat.org])
50
50
 
51
51
  # there's no guarantee of the order in fields array
52
52
  User.fields
53
- # => [[:created_at, DateTime, {:nullable => true}],
54
- [:email, String, {:nullable => true, :length => 255,
53
+ # => [[:created_at, DateTime, {:required => false}],
54
+ [:email, String, {:required => false, :length => 255,
55
55
  :default => 'nospam@nospam.tw'}],
56
- [:id, Serial, {:nullable => false, :serial => true,
56
+ [:id, Serial, {:required => true, :serial => true,
57
57
  :key => true}],
58
- [:salt_first, String, {:nullable => true, :length => 50}],
59
- [:salt_second, String, {:nullable => true, :length => 50}]]
58
+ [:salt_first, String, {:required => false, :length => 50}],
59
+ [:salt_second, String, {:required => false, :length => 50}]]
60
60
 
61
61
  dm.fields('users').sort_by{ |field| field.first.to_s } ==
62
62
  User.fields.sort_by{ |field| field.first.to_s }
63
63
  # => true
64
64
 
65
65
  dm.storages_and_fields
66
- # => {'users' => [[:id, Serial, {:nullable => false,
66
+ # => {'users' => [[:id, Serial, {:required => true,
67
67
  :serial => true,
68
68
  :key => true}],
69
- [:email, String, {:nullable => true,
69
+ [:email, String, {:required => false,
70
70
  :default => 'nospam@nospam.tw'}],
71
- [:created_at, DateTime, {:nullable => true}],
72
- [:salt_first, String, {:nullable => true, :length => 50}],
73
- [:salt_second, String, {:nullable => true, :length => 50}]]}
71
+ [:created_at, DateTime, {:required => false}],
72
+ [:salt_first, String, {:required => false, :length => 50}],
73
+ [:salt_second, String, {:required => false, :length => 50}]]}
74
74
 
75
75
  # there's no guarantee of the order in returned array
76
76
  dm.auto_genclass!
@@ -96,18 +96,18 @@ by Lin Jen-Shin (aka godfat-真常[http://godfat.org])
96
96
 
97
97
  == REQUIREMENTS:
98
98
 
99
- * dm-core 0.10.0 or later
100
- * at least one do_* adapter
99
+ * dm-core 1.0.0 or later
100
+ * at least one dm-*-adapter
101
101
 
102
102
  == INSTALL:
103
103
 
104
- > sudo gem install dm-is-reflective
104
+ > gem install dm-is-reflective
105
105
 
106
106
  == LICENSE:
107
107
 
108
108
  Apache License 2.0
109
109
 
110
- Copyright (c) 2008, Lin Jen-Shin (aka godfat 真常)
110
+ Copyright (c) 2008-2010, Lin Jen-Shin (aka godfat 真常)
111
111
 
112
112
  Licensed under the Apache License, Version 2.0 (the "License");
113
113
  you may not use this file except in compliance with the License.
data/README.rdoc ADDED
@@ -0,0 +1,122 @@
1
+ = dm-is-reflective 0.9.0
2
+ by Lin Jen-Shin (aka godfat-真常[http://godfat.org])
3
+ godfat (XD) godfat.org
4
+
5
+ == LINKS:
6
+
7
+ * {github}[http://github.com/godfat/dm-is-reflective]
8
+ * {rubygems}[http://rubygems.org/gems/dm-is-reflective]
9
+ * {rdoc}[http://rdoc.info/projects/godfat/dm-is-reflective]
10
+
11
+ == DESCRIPTION:
12
+
13
+ DataMapper plugin that helps you manipulate an existing database.
14
+ It creates mappings between existing columns and model's properties.
15
+
16
+ == SYNOPSIS:
17
+
18
+ require 'dm-is-reflective' # this would require 'dm-core'
19
+ dm = DataMapper.setup :default, 'sqlite3:db/development.sqlite3'
20
+
21
+ class User
22
+ include DataMapper::Resource
23
+ is :reflective
24
+
25
+ # mapping all, returns an array of properties indicating fields it mapped
26
+ reflect /.*/ # e.g. => [#<Property:#<Class:0x18f89b8>:id>,
27
+ # #<Property:#<Class:0x18f89b8>:title>,
28
+ # #<Property:#<Class:0x18f89b8>:body>,
29
+ # #<Property:#<Class:0x18f89b8>:user_id>]
30
+
31
+ # mapping all (with no argument at all)
32
+ reflect
33
+
34
+ # mapping for field name ended with _at, and started with salt_
35
+ reflect /_at$/, /^salt_/
36
+
37
+ # mapping id and email
38
+ reflect :id, :email
39
+
40
+ # mapping all fields with type String, and id
41
+ reflect String, :id
42
+
43
+ # mapping login, and all fields with type Integer
44
+ reflect :login, Integer
45
+ end
46
+
47
+ # there's no guarantee of the order in storages array
48
+ dm.storages
49
+ # => ['users']
50
+
51
+ # there's no guarantee of the order in fields array
52
+ User.fields
53
+ # => [[:created_at, DateTime, {:required => false}],
54
+ [:email, String, {:required => false, :length => 255,
55
+ :default => 'nospam@nospam.tw'}],
56
+ [:id, Serial, {:required => true, :serial => true,
57
+ :key => true}],
58
+ [:salt_first, String, {:required => false, :length => 50}],
59
+ [:salt_second, String, {:required => false, :length => 50}]]
60
+
61
+ dm.fields('users').sort_by{ |field| field.first.to_s } ==
62
+ User.fields.sort_by{ |field| field.first.to_s }
63
+ # => true
64
+
65
+ dm.storages_and_fields
66
+ # => {'users' => [[:id, Serial, {:required => true,
67
+ :serial => true,
68
+ :key => true}],
69
+ [:email, String, {:required => false,
70
+ :default => 'nospam@nospam.tw'}],
71
+ [:created_at, DateTime, {:required => false}],
72
+ [:salt_first, String, {:required => false, :length => 50}],
73
+ [:salt_second, String, {:required => false, :length => 50}]]}
74
+
75
+ # there's no guarantee of the order in returned array
76
+ dm.auto_genclass!
77
+ # => [DataMapper::Is::Reflective::User,
78
+ DataMapper::Is::Reflective::SchemaInfo,
79
+ DataMapper::Is::Reflective::Session]
80
+
81
+ # you can change the scope of generated models:
82
+ dm.auto_genclass! :scope => Object
83
+ # => [User, SchemaInfo, Session]
84
+
85
+ # you can generate classes for tables you specified only:
86
+ dm.auto_genclass! :scope => Object, :storages => /^phpbb_/
87
+ # => [PhpbbUser, PhpbbPost, PhpbbConfig]
88
+
89
+ # you can generate classes with String too:
90
+ dm.auto_genclass! :storages => ['users', 'config'], :scope => Object
91
+ # => [User, Config]
92
+
93
+ # you can generate a class only:
94
+ dm.auto_genclass! :storages => 'users'
95
+ # => [DataMapper::Is::Reflective::User]
96
+
97
+ == REQUIREMENTS:
98
+
99
+ * dm-core 1.0.0 or later
100
+ * at least one dm-*-adapter
101
+
102
+ == INSTALL:
103
+
104
+ > gem install dm-is-reflective
105
+
106
+ == LICENSE:
107
+
108
+ Apache License 2.0
109
+
110
+ Copyright (c) 2008-2010, Lin Jen-Shin (aka godfat 真常)
111
+
112
+ Licensed under the Apache License, Version 2.0 (the "License");
113
+ you may not use this file except in compliance with the License.
114
+ You may obtain a copy of the License at
115
+
116
+ http://www.apache.org/licenses/LICENSE-2.0
117
+
118
+ Unless required by applicable law or agreed to in writing, software
119
+ distributed under the License is distributed on an "AS IS" BASIS,
120
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
121
+ See the License for the specific language governing permissions and
122
+ limitations under the License.
data/Rakefile CHANGED
@@ -1,41 +1,37 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'bones'
4
- Bones.setup
5
-
6
- PROJ.name = 'dm-is-reflective'
7
- PROJ.authors = 'Lin Jen-Shin (aka godfat 真常)'
8
- PROJ.email = 'godfat (XD) godfat.org'
9
- PROJ.url = "http://github.com/godfat/#{PROJ.name}"
10
- PROJ.rubyforge.name = 'ludy'
11
-
12
- PROJ.gem.dependencies << ['dm-core', '>=0.10.0'] << ['extlib', '>=0.9.13']
13
- # PROJ.gem.development_dependencies << ['minitest', '>=1.3.0']
14
- # PROJ.gem.executables = ["bin/#{PROJ.name}"]
15
-
16
- PROJ.ruby_opts.delete '-w' # too many warnings in addressable, dm-core, extlib...
3
+ begin
4
+ require 'bones'
5
+ rescue LoadError
6
+ abort '### Please install the "bones" gem ###'
7
+ end
17
8
 
18
- PROJ.description = PROJ.summary = paragraphs_of('README', 'description').join("\n\n")
19
- PROJ.changes = paragraphs_of('CHANGES', 0..1).join("\n\n")
20
- PROJ.version = File.read("lib/#{PROJ.name}/version.rb").gsub(/.*VERSION = '(.*)'.*/m, '\1')
9
+ ensure_in_path 'lib'
10
+ proj = 'dm-is-reflective'
11
+ require "#{proj}/version"
21
12
 
22
- PROJ.exclude += ['^tmp', 'tmp$', '^pkg', '^\.gitignore$',
23
- '^ann-', '\.sqlite3$', '\.db$']
13
+ Bones{
14
+ version DataMapper::Is::Reflective::VERSION
24
15
 
25
- PROJ.rdoc.remote_dir = PROJ.name
16
+ ruby_opts [''] # silence warning, too many in addressable and/or dm-core
17
+ depend_on 'dm-core' , :version => '>=1.0.0'
18
+ depend_on 'dm-do-adapter', :version => '>=1.0.0'
26
19
 
27
- PROJ.readme_file = 'README'
28
- PROJ.rdoc.main = 'README'
29
- PROJ.rdoc.exclude += ['Rakefile', '^tasks', '^test']
30
- PROJ.rdoc.include << '\w+'
31
- # PROJ.rdoc.opts << '--diagram' if !Rake::WIN32 and `which dot` =~ %r/\/dot/
32
- PROJ.rdoc.opts += ['--charset=utf-8', '--inline-source',
33
- '--line-numbers', '--promiscuous']
20
+ %w[dm-migrations dm-sqlite-adapter
21
+ dm-mysql-adapter dm-postgres-adapter].each{ |lib|
22
+ depend_on lib, :development => true, :version => '>=1.0.0'
23
+ }
34
24
 
35
- PROJ.spec.opts << '--color'
25
+ name proj
26
+ url "http://github.com/godfat/#{proj}"
27
+ authors 'Lin Jen-Shin (aka godfat 真常)'
28
+ email 'godfat (XD) godfat.org'
36
29
 
37
- PROJ.ann.file = "ann-#{PROJ.name}-#{PROJ.version}"
38
- PROJ.ann.paragraphs.concat %w[LINKS SYNOPSIS REQUIREMENTS INSTALL LICENSE]
30
+ history_file 'CHANGES'
31
+ readme_file 'README'
32
+ ignore_file '.gitignore'
33
+ rdoc.include ['\w+']
34
+ }
39
35
 
40
36
  CLEAN.include Dir['**/*.rbc']
41
37
 
data/TODO CHANGED
@@ -1,5 +1,9 @@
1
1
  = dm-is-reflective todo list
2
2
 
3
+ * use extlib to type check args, sorry that i want to sleep right now
4
+ * deal with require order problem
5
+ * extract some types to data_objects_adapter
6
+
3
7
  * test Model#fields with different repo
4
8
 
5
9
  * better doc...
@@ -2,40 +2,49 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{dm-is-reflective}
5
- s.version = "0.8.0"
5
+ s.version = "0.9.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Lin Jen-Shin (aka godfat \347\234\237\345\270\270)"]
9
- s.date = %q{2009-06-21}
8
+ s.authors = ["Lin Jen-Shin (aka godfat 真常)"]
9
+ s.date = %q{2010-07-05}
10
10
  s.description = %q{ DataMapper plugin that helps you manipulate an existing database.
11
11
  It creates mappings between existing columns and model's properties.}
12
12
  s.email = %q{godfat (XD) godfat.org}
13
- s.extra_rdoc_files = ["CHANGES", "LICENSE", "NOTICE", "README", "TODO"]
14
- s.files = ["CHANGES", "LICENSE", "NOTICE", "README", "Rakefile", "TODO", "lib/dm-is-reflective.rb", "lib/dm-is-reflective/is/adapters/abstract_adapter.rb", "lib/dm-is-reflective/is/adapters/mysql_adapter.rb", "lib/dm-is-reflective/is/adapters/postgres_adapter.rb", "lib/dm-is-reflective/is/adapters/sqlite3_adapter.rb", "lib/dm-is-reflective/is/reflective.rb", "lib/dm-is-reflective/is/version.rb", "lib/dm-is-reflective/version.rb", "test/abstract.rb", "test/test_dm-is-reflexible.rb"]
13
+ s.extra_rdoc_files = ["CHANGES", "LICENSE", "NOTICE", "README", "Rakefile", "TODO", "dm-is-reflective.gemspec", "test/setup_db.sh"]
14
+ s.files = ["CHANGES", "LICENSE", "NOTICE", "README", "Rakefile", "TODO", "dm-is-reflective.gemspec", "lib/dm-is-reflective.rb", "lib/dm-is-reflective/is/adapters/abstract_adapter.rb", "lib/dm-is-reflective/is/adapters/data_objects_adapter.rb", "lib/dm-is-reflective/is/adapters/mysql_adapter.rb", "lib/dm-is-reflective/is/adapters/postgres_adapter.rb", "lib/dm-is-reflective/is/adapters/sqlite_adapter.rb", "lib/dm-is-reflective/is/reflective.rb", "lib/dm-is-reflective/is/version.rb", "lib/dm-is-reflective/version.rb", "test/abstract.rb", "test/setup_db.sh", "test/test_dm-is-reflective.rb"]
15
15
  s.homepage = %q{http://github.com/godfat/dm-is-reflective}
16
- s.rdoc_options = ["--charset=utf-8", "--inline-source", "--line-numbers", "--promiscuous", "--main", "README"]
16
+ s.rdoc_options = ["--main", "README"]
17
17
  s.require_paths = ["lib"]
18
- s.rubyforge_project = %q{ludy}
19
- s.rubygems_version = %q{1.3.4}
20
- s.summary = %q{DataMapper plugin that helps you manipulate an existing database. It creates mappings between existing columns and model's properties.}
21
- s.test_files = ["test/test_dm-is-reflexible.rb"]
18
+ s.rubyforge_project = %q{dm-is-reflective}
19
+ s.rubygems_version = %q{1.3.7}
20
+ s.summary = %q{DataMapper plugin that helps you manipulate an existing database}
21
+ s.test_files = ["test/test_dm-is-reflective.rb"]
22
22
 
23
23
  if s.respond_to? :specification_version then
24
24
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
25
  s.specification_version = 3
26
26
 
27
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
28
- s.add_runtime_dependency(%q<dm-core>, [">= 0.10.0"])
29
- s.add_runtime_dependency(%q<extlib>, [">= 0.9.13"])
30
- s.add_development_dependency(%q<bones>, [">= 2.5.1"])
27
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
+ s.add_runtime_dependency(%q<dm-core>, [">= 1.0.0"])
29
+ s.add_development_dependency(%q<dm-migrations>, [">= 1.0.0"])
30
+ s.add_development_dependency(%q<dm-sqlite-adapter>, [">= 1.0.0"])
31
+ s.add_development_dependency(%q<dm-mysql-adapter>, [">= 1.0.0"])
32
+ s.add_development_dependency(%q<dm-postgres-adapter>, [">= 1.0.0"])
33
+ s.add_development_dependency(%q<bones>, [">= 3.4.7"])
31
34
  else
32
- s.add_dependency(%q<dm-core>, [">= 0.10.0"])
33
- s.add_dependency(%q<extlib>, [">= 0.9.13"])
34
- s.add_dependency(%q<bones>, [">= 2.5.1"])
35
+ s.add_dependency(%q<dm-core>, [">= 1.0.0"])
36
+ s.add_dependency(%q<dm-migrations>, [">= 1.0.0"])
37
+ s.add_dependency(%q<dm-sqlite-adapter>, [">= 1.0.0"])
38
+ s.add_dependency(%q<dm-mysql-adapter>, [">= 1.0.0"])
39
+ s.add_dependency(%q<dm-postgres-adapter>, [">= 1.0.0"])
40
+ s.add_dependency(%q<bones>, [">= 3.4.7"])
35
41
  end
36
42
  else
37
- s.add_dependency(%q<dm-core>, [">= 0.10.0"])
38
- s.add_dependency(%q<extlib>, [">= 0.9.13"])
39
- s.add_dependency(%q<bones>, [">= 2.5.1"])
43
+ s.add_dependency(%q<dm-core>, [">= 1.0.0"])
44
+ s.add_dependency(%q<dm-migrations>, [">= 1.0.0"])
45
+ s.add_dependency(%q<dm-sqlite-adapter>, [">= 1.0.0"])
46
+ s.add_dependency(%q<dm-mysql-adapter>, [">= 1.0.0"])
47
+ s.add_dependency(%q<dm-postgres-adapter>, [">= 1.0.0"])
48
+ s.add_dependency(%q<bones>, [">= 3.4.7"])
40
49
  end
41
50
  end
@@ -1,10 +1,12 @@
1
1
 
2
- gem 'dm-core', '>=0.10.0'
2
+ gem 'dm-core', '>=1.0.0'
3
3
  require 'dm-core'
4
+ require 'dm-do-adapter'
4
5
 
5
6
  require 'dm-is-reflective/is/reflective'
7
+ require 'dm-is-reflective/is/adapters/data_objects_adapter'
8
+
6
9
  DataMapper::Model.append_extensions(DataMapper::Is::Reflective)
7
10
 
8
- require 'dm-is-reflective/is/adapters/abstract_adapter'
9
- DataMapper::Adapters::AbstractAdapter.__send__(:include,
10
- DataMapper::Is::Reflective::AbstractAdapter)
11
+ DataMapper::Adapters::DataObjectsAdapter.__send__(:include,
12
+ DataMapper::Is::Reflective::DataObjectsAdapter)
@@ -1,7 +1,7 @@
1
1
 
2
2
  module DataMapper
3
3
  module Is::Reflective
4
- module AbstractAdapter
4
+ module DataObjectsAdapter
5
5
  # returns all tables' name in the repository.
6
6
  # e.g.
7
7
  # ['comments', 'users']
@@ -12,19 +12,19 @@ module DataMapper
12
12
 
13
13
  # returns all fields, with format [[name, type, attrs]]
14
14
  # e.g.
15
- # [[:created_at, DateTime, {:nullable => true}],
16
- # [:email, String, {:nullable => true, :size => 255,
15
+ # [[:created_at, DateTime, {:required => false}],
16
+ # [:email, String, {:required => false, :size => 255,
17
17
  # :default => 'nospam@nospam.tw'}],
18
- # [:id, DataMapper::Types::Serial, {:nullable => false, :serial => true,
18
+ # [:id, DataMapper::Property::Serial, {:required => true, :serial => true,
19
19
  # :key => true}],
20
- # [:salt_first, String, {:nullable => true, :size => 50}],
21
- # [:salt_second, String, {:nullable => true, :size => 50}]]
20
+ # [:salt_first, String, {:required => false, :size => 50}],
21
+ # [:salt_second, String, {:required => false, :size => 50}]]
22
22
  def fields storage
23
23
  reflective_query_storage(storage).map{ |field|
24
24
  primitive = reflective_primitive(field)
25
25
 
26
26
  type = self.class.type_map.find{ |klass, attrs|
27
- next false if [DataMapper::Types::Object, Time].include?(klass)
27
+ next false if [Object, Time].include?(klass)
28
28
  attrs[:primitive] == primitive
29
29
  }
30
30
  type = type ? type.first : reflective_lookup_primitive(primitive)
@@ -32,10 +32,10 @@ module DataMapper
32
32
  attrs = reflective_attributes(field)
33
33
 
34
34
  type = if attrs[:serial] && type == Integer
35
- DataMapper::Types::Serial
35
+ DataMapper::Property::Serial
36
36
 
37
37
  elsif type == TrueClass
38
- DataMapper::Types::Boolean
38
+ DataMapper::Property::Boolean
39
39
 
40
40
  else
41
41
  type
@@ -47,15 +47,15 @@ module DataMapper
47
47
 
48
48
  # returns a hash with storage names in keys and
49
49
  # corresponded fields in values. e.g.
50
- # {'users' => [[:id, Integer, {:nullable => false,
50
+ # {'users' => [[:id, Integer, {:required => true,
51
51
  # :serial => true,
52
52
  # :key => true}],
53
- # [:email, String, {:nullable => true,
53
+ # [:email, String, {:required => false,
54
54
  # :default => 'nospam@nospam.tw'}],
55
- # [:created_at, DateTime, {:nullable => true}],
56
- # [:salt_first, String, {:nullable => true, :size => 50}],
57
- # [:salt_second, String, {:nullable => true, :size => 50}]]}
58
- # see Migration#storages and Migration#fields for detail
55
+ # [:created_at, DateTime, {:required => false}],
56
+ # [:salt_first, String, {:required => false, :size => 50}],
57
+ # [:salt_second, String, {:required => false, :size => 50}]]}
58
+ # see AbstractAdapter#storages and AbstractAdapter#fields for detail
59
59
  def storages_and_fields
60
60
  storages.inject({}){ |result, storage|
61
61
  result[storage] = fields(storage)