dm-is-reflective 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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)