dm-mapping 0.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.
data/tasks/spec.rake ADDED
@@ -0,0 +1,55 @@
1
+ # $Id$
2
+
3
+ if HAVE_SPEC_RAKE_SPECTASK
4
+ require 'spec/rake/verify_rcov'
5
+
6
+ namespace :spec do
7
+
8
+ desc 'Run all specs with basic output'
9
+ Spec::Rake::SpecTask.new(:run) do |t|
10
+ t.ruby_opts = PROJ.ruby_opts
11
+ t.spec_opts = PROJ.spec.opts
12
+ t.spec_files = PROJ.spec.files
13
+ t.libs += PROJ.libs
14
+ end
15
+
16
+ desc 'Run all specs with text output'
17
+ Spec::Rake::SpecTask.new(:specdoc) do |t|
18
+ t.ruby_opts = PROJ.ruby_opts
19
+ t.spec_opts = PROJ.spec.opts + ['--format', 'specdoc']
20
+ t.spec_files = PROJ.spec.files
21
+ t.libs += PROJ.libs
22
+ end
23
+
24
+ if HAVE_RCOV
25
+ desc 'Run all specs with RCov'
26
+ Spec::Rake::SpecTask.new(:rcov) do |t|
27
+ t.ruby_opts = PROJ.ruby_opts
28
+ t.spec_opts = PROJ.spec.opts
29
+ t.spec_files = PROJ.spec.files
30
+ t.libs += PROJ.libs
31
+ t.rcov = true
32
+ t.rcov_dir = PROJ.rcov.dir
33
+ t.rcov_opts = PROJ.rcov.opts + ['--exclude', 'spec']
34
+ end
35
+
36
+ RCov::VerifyTask.new(:verify) do |t|
37
+ t.threshold = PROJ.rcov.threshold
38
+ t.index_html = File.join(PROJ.rcov.dir, 'index.html')
39
+ t.require_exact_threshold = PROJ.rcov.threshold_exact
40
+ end
41
+
42
+ task :verify => :rcov
43
+ remove_desc_for_task %w(spec:clobber_rcov)
44
+ end
45
+
46
+ end # namespace :spec
47
+
48
+ desc 'Alias to spec:run'
49
+ task :spec => 'spec:run'
50
+
51
+ task :clobber => 'spec:clobber_rcov' if HAVE_RCOV
52
+
53
+ end # if HAVE_SPEC_RAKE_SPECTASK
54
+
55
+ # EOF
data/tasks/svn.rake ADDED
@@ -0,0 +1,48 @@
1
+ # $Id$
2
+
3
+ if HAVE_SVN
4
+
5
+ unless PROJ.svn.root
6
+ info = %x/svn info ./
7
+ m = %r/^Repository Root:\s+(.*)$/.match(info)
8
+ PROJ.svn.root = (m.nil? ? '' : m[1])
9
+ end
10
+ PROJ.svn.root = File.join(PROJ.svn.root, PROJ.svn.path) unless PROJ.svn.path.empty?
11
+
12
+ namespace :svn do
13
+
14
+ # A prerequisites task that all other tasks depend upon
15
+ task :prereqs
16
+
17
+ desc 'Show tags from the SVN repository'
18
+ task :show_tags => 'svn:prereqs' do |t|
19
+ tags = %x/svn list #{File.join(PROJ.svn.root, PROJ.svn.tags)}/
20
+ tags.gsub!(%r/\/$/, '')
21
+ tags = tags.split("\n").sort {|a,b| b <=> a}
22
+ puts tags
23
+ end
24
+
25
+ desc 'Create a new tag in the SVN repository'
26
+ task :create_tag => 'svn:prereqs' do |t|
27
+ v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
28
+ abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
29
+
30
+ svn = PROJ.svn
31
+ trunk = File.join(svn.root, svn.trunk)
32
+ tag = "%s-%s" % [PROJ.name, PROJ.version]
33
+ tag = File.join(svn.root, svn.tags, tag)
34
+ msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
35
+
36
+ puts "Creating SVN tag '#{tag}'"
37
+ unless system "svn cp -m '#{msg}' #{trunk} #{tag}"
38
+ abort "Tag creation failed"
39
+ end
40
+ end
41
+
42
+ end # namespace :svn
43
+
44
+ task 'gem:release' => 'svn:create_tag'
45
+
46
+ end # if PROJ.svn.path
47
+
48
+ # EOF
data/tasks/test.rake ADDED
@@ -0,0 +1,38 @@
1
+ # $Id$
2
+
3
+ require 'rake/testtask'
4
+
5
+ namespace :test do
6
+
7
+ Rake::TestTask.new(:run) do |t|
8
+ t.libs = PROJ.libs
9
+ t.test_files = if test(?f, PROJ.test.file) then [PROJ.test.file]
10
+ else PROJ.test.files end
11
+ t.ruby_opts += PROJ.ruby_opts
12
+ t.ruby_opts += PROJ.test.opts
13
+ end
14
+
15
+ if HAVE_RCOV
16
+ desc 'Run rcov on the unit tests'
17
+ task :rcov => :clobber_rcov do
18
+ opts = PROJ.rcov.opts.dup << '-o' << PROJ.rcov.dir
19
+ opts = opts.join(' ')
20
+ files = if test(?f, PROJ.test.file) then [PROJ.test.file]
21
+ else PROJ.test.files end
22
+ files = files.join(' ')
23
+ sh "#{RCOV} #{files} #{opts}"
24
+ end
25
+
26
+ task :clobber_rcov do
27
+ rm_r 'coverage' rescue nil
28
+ end
29
+ end
30
+
31
+ end # namespace :test
32
+
33
+ desc 'Alias to test:run'
34
+ task :test => 'test:run'
35
+
36
+ task :clobber => 'test:clobber_rcov' if HAVE_RCOV
37
+
38
+ # EOF
@@ -0,0 +1,62 @@
1
+
2
+ require 'test/unit'
3
+
4
+ require 'rubygems'
5
+ require 'data_mapper'
6
+
7
+ class DMMTest < Test::Unit::TestCase
8
+ class User
9
+ include DataMapper::Resource
10
+ has n, :comments
11
+
12
+ property :id, Integer, :serial => true
13
+ property :login, String
14
+ property :sig, Text
15
+ property :created_at, DateTime
16
+ end
17
+
18
+ class Comment
19
+ include DataMapper::Resource
20
+ belongs_to :user
21
+
22
+ property :id, Integer, :serial => true
23
+ property :title, String
24
+ property :body, Text
25
+ end
26
+
27
+ class Tmp; end
28
+
29
+ def test_storages
30
+ @dm = DataMapper.setup :default, 'sqlite3:tmp.db'
31
+ require 'dm-mapping'
32
+ DataMapper.auto_migrate!
33
+
34
+ assert_equal ['dmm_test_comments', 'dmm_test_users'], @dm.storages.sort
35
+ comment_fields = [["body", DataMapper::Types::Text, {}],
36
+ ["id", Integer, {}],
37
+ ["title", String, {}],
38
+ ["user_id", Integer, {}]]
39
+
40
+ assert_equal comment_fields, @dm.fields('dmm_test_comments').sort
41
+
42
+ Comment.create(:title => 'XD')
43
+ assert_equal 1, Comment.first.id
44
+ assert_equal 'XD', Comment.first.title
45
+
46
+ #
47
+
48
+ Tmp.send :include, DataMapper::Resource
49
+ @dm = DataMapper.setup :default, 'sqlite3:tmp.db'
50
+ assert_equal ['dmm_test_comments', 'dmm_test_users'], @dm.storages.sort
51
+
52
+ Tmp.storage_names[:default] = 'dmm_test_comments'
53
+ assert_equal 'dmm_test_comments', Tmp.storage_name
54
+
55
+ assert_equal 1, Tmp.count
56
+ assert_equal comment_fields, Tmp.fields.sort
57
+
58
+ Tmp.mapping
59
+ assert_equal 'XD', Tmp.first.title
60
+ assert_equal 1, Tmp.first.id
61
+ end
62
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dm-mapping
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - "Lin Jen-Shin (a.k.a. godfat \xE7\x9C\x9F\xE5\xB8\xB8)"
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-08-03 00:00:00 +08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: dm-core
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ description: placeholder
26
+ email: "strip any number: 18god29fat7029 (at] godfat32 -dooot- 20org"
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - .gitignore
33
+ - CHANGES
34
+ - LICENSE
35
+ - NOTICE
36
+ - README
37
+ - TODO
38
+ - dm-mapping.gemspec
39
+ - tasks/ann.rake
40
+ - tasks/bones.rake
41
+ - tasks/gem.rake
42
+ - tasks/git.rake
43
+ - tasks/manifest.rake
44
+ - tasks/notes.rake
45
+ - tasks/post_load.rake
46
+ - tasks/rdoc.rake
47
+ - tasks/rubyforge.rake
48
+ - tasks/spec.rake
49
+ - tasks/svn.rake
50
+ - tasks/test.rake
51
+ files:
52
+ - .gitignore
53
+ - CHANGES
54
+ - LICENSE
55
+ - NOTICE
56
+ - README
57
+ - Rakefile
58
+ - TODO
59
+ - dm-mapping.gemspec
60
+ - lib/dm-mapping.rb
61
+ - lib/dm-mapping/adapters/sqlite3adapter.rb
62
+ - lib/dm-mapping/model.rb
63
+ - lib/dm-mapping/type_map.rb
64
+ - lib/dm-mapping/version.rb
65
+ - tasks/ann.rake
66
+ - tasks/bones.rake
67
+ - tasks/gem.rake
68
+ - tasks/git.rake
69
+ - tasks/manifest.rake
70
+ - tasks/notes.rake
71
+ - tasks/post_load.rake
72
+ - tasks/rdoc.rake
73
+ - tasks/rubyforge.rake
74
+ - tasks/setup.rb
75
+ - tasks/spec.rake
76
+ - tasks/svn.rake
77
+ - tasks/test.rake
78
+ - test/test_dm-mapping.rb
79
+ has_rdoc: true
80
+ homepage: http://github.com/godfat/dm-mapping
81
+ post_install_message:
82
+ rdoc_options:
83
+ - --diagram
84
+ - --charset=utf-8
85
+ - --inline-source
86
+ - --line-numbers
87
+ - --promiscuous
88
+ - --main
89
+ - README
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: "0"
97
+ version:
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: "0"
103
+ version:
104
+ requirements: []
105
+
106
+ rubyforge_project: ludy
107
+ rubygems_version: 1.2.0
108
+ signing_key:
109
+ specification_version: 2
110
+ summary: placeholder
111
+ test_files:
112
+ - test/test_dm-mapping.rb