merb_datamapper 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/History.txt +1 -0
  2. data/Manifest.txt +33 -0
  3. data/README.txt +13 -0
  4. data/Rakefile +47 -35
  5. data/TODO +10 -4
  6. data/datamapper_generators/migration/USAGE +2 -3
  7. data/datamapper_generators/migration/migration_generator.rb +6 -6
  8. data/datamapper_generators/migration/templates/new_migration.erb +3 -3
  9. data/datamapper_generators/model/model_generator.rb +17 -10
  10. data/datamapper_generators/model/templates/app/models/%model_file_name%.rb +7 -5
  11. data/datamapper_generators/resource_controller/resource_controller_generator.rb +62 -27
  12. data/datamapper_generators/resource_controller/templates/app/controllers/%controller_file_name%.rb +6 -6
  13. data/datamapper_generators/resource_controller/templates/app/helpers/%controller_file_name%_helper.rb +1 -1
  14. data/datamapper_generators/resource_controller/templates/app/views/%controller_file_name%/edit.html.erb +19 -1
  15. data/datamapper_generators/resource_controller/templates/app/views/%controller_file_name%/index.html.erb +22 -1
  16. data/datamapper_generators/resource_controller/templates/app/views/%controller_file_name%/new.html.erb +18 -1
  17. data/datamapper_generators/resource_controller/templates/app/views/%controller_file_name%/show.html.erb +12 -1
  18. data/datamapper_generators/resource_migration/USAGE +4 -0
  19. data/datamapper_generators/resource_migration/resource_migration_generator.rb +122 -0
  20. data/datamapper_generators/resource_migration/templates/class_migration.erb +13 -0
  21. data/lib/merb/orms/data_mapper/connection.rb +61 -26
  22. data/lib/merb/orms/data_mapper/database.yml.sample +32 -12
  23. data/lib/merb/orms/data_mapper/resource.rb +12 -0
  24. data/lib/merb/session/data_mapper_session.rb +47 -40
  25. data/lib/merb_datamapper.rb +15 -11
  26. data/lib/merb_datamapper/merbtasks.rb +42 -13
  27. data/lib/merb_datamapper/version.rb +5 -0
  28. data/spec/connection_spec.rb +67 -0
  29. data/spec/spec.opts +2 -0
  30. data/spec/spec_helper.rb +15 -0
  31. metadata +58 -45
  32. data/README +0 -10
  33. data/lib/merb/orms/data_mapper/base.rb +0 -6
  34. data/specs/merb_sequel_spec.rb +0 -0
  35. data/specs/spec_helper.rb +0 -2
@@ -1,16 +1,20 @@
1
1
  if defined?(Merb::Plugins)
2
- require File.join(File.dirname(__FILE__) / "merb" / "orms" / "data_mapper" / "connection")
3
- require File.join(File.dirname(__FILE__) / "merb" / "orms" / "data_mapper" / "base")
4
- Merb::Plugins.add_rakefiles "merb_datamapper" / "merbtasks"
5
-
6
- class Merb::Orms::DataMapper::Connect < Merb::BootLoader
2
+ require 'rubygems'
3
+ require 'merb_datamapper/version'
7
4
 
8
- after BeforeAppRuns
5
+ gem 'dm-core', DataMapper::MerbDataMapper::VERSION
6
+ require 'dm-core'
9
7
 
10
- def self.run
11
- Merb::Orms::DataMapper.connect
12
- Merb::Orms::DataMapper.register_session_type
13
- end
8
+ if File.file?(Merb.dir_for(:config) / "database.yml")
9
+ require File.join(File.dirname(__FILE__) / "merb" / "orms" / "data_mapper" / "connection")
14
10
 
11
+ Merb::Orms::DataMapper.connect
12
+ Merb::Orms::DataMapper.register_session_type
13
+ else
14
+ Merb.logger.info "No database.yml file found in #{Merb.dir_for(:config)}, assuming database connection(s) established in the environment file in #{Merb.dir_for(:config)}/environments"
15
15
  end
16
- end
16
+
17
+ require File.join(File.dirname(__FILE__) / "merb" / "orms" / "data_mapper" / "resource")
18
+
19
+ Merb::Plugins.add_rakefiles "merb_datamapper" / "merbtasks"
20
+ end
@@ -1,31 +1,60 @@
1
1
  require 'fileutils'
2
2
 
3
3
  namespace :dm do
4
-
4
+
5
5
  task :merb_start do
6
- Merb.start :adapter => 'runner',
7
- :environment => ENV['MERB_ENV'] || 'development'
6
+ Merb.start_environment :adapter => 'runner',
7
+ :environment => ENV['MERB_ENV'] || 'development'
8
8
  end
9
-
9
+
10
10
  namespace :db do
11
+ desc "Create a sample database.yml file"
12
+ task :database_yaml => :merb_start do
13
+ sample_location = File.join(File.dirname(__FILE__), "..", "merb", "orms", "data_mapper", "database.yml.sample")
14
+ target_location = Merb.dir_for(:config)
15
+ FileUtils.cp sample_location, target_location
16
+ end
11
17
  desc "Perform automigration"
12
18
  task :automigrate => :merb_start do
13
- DataMapper::Persistence.auto_migrate!
19
+ ::DataMapper::AutoMigrator.auto_migrate
20
+ end
21
+ desc "Perform non destructive automigration"
22
+ task :autoupgrade => :merb_start do
23
+ ::DataMapper::AutoMigrator.auto_upgrade
24
+ end
25
+
26
+ namespace :migrate do
27
+ task :load => :merb_start do
28
+ gem 'dm-migrations'
29
+ require 'migration_runner'
30
+ FileList["schema/migrations/*.rb"].each do |migration|
31
+ load migration
32
+ end
33
+ end
34
+
35
+ desc "Migrate up using migrations"
36
+ task :up, :version, :needs => :load do |t, args|
37
+ version = args[:version] || ENV['VERSION']
38
+ migrate_up!(version)
39
+ end
40
+ desc "Migrate down using migrations"
41
+ task :down, :version, :needs => :load do |t, args|
42
+ version = args[:version] || ENV['VERSION']
43
+ migrate_down!(version)
44
+ end
14
45
  end
15
46
  end
16
-
47
+
17
48
  namespace :sessions do
18
- desc "Creates session migration"
49
+ desc "Perform automigration for sessions"
19
50
  task :create => :merb_start do
20
- dest = File.join(Merb.root, "schema", "migrations","001_add_sessions_table.rb")
21
- source = File.join(File.dirname(__FILE__), "merb", "session","001_add_sessions_table.rb")
22
- #FileUtils.cp source, dest unless File.exists?(dest)
51
+ Merb::DataMapperSession.auto_migrate!
23
52
  end
24
-
53
+
25
54
  desc "Clears sessions"
26
55
  task :clear => :merb_start do
27
56
  table_name = ((Merb::Plugins.config[:datamapper] || {})[:session_table_name] || "sessions")
28
- #Merb::Orms::DataMapper.connect.execute("DELETE FROM #{table_name}")
57
+ ::DataMapper.repository.adapter.execute("DELETE FROM #{table_name}")
29
58
  end
30
59
  end
31
- end
60
+ end
@@ -0,0 +1,5 @@
1
+ module DataMapper
2
+ module MerbDataMapper
3
+ VERSION = "0.9.3"
4
+ end
5
+ end
@@ -0,0 +1,67 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'merb', 'orms', 'data_mapper', 'connection')
3
+
4
+ describe 'Merb datamapper' do
5
+ it "should read the configuration file" do
6
+
7
+ end
8
+
9
+ it 'should return an option hash with symbol keys' do
10
+ Merb.should_receive(:environment).once.and_return('development')
11
+
12
+ config = {
13
+ 'development' => {
14
+ 'adapter' => 'myadapter',
15
+ 'more_stuff' => 'more_stuff',
16
+ 'repositories' => {
17
+ 'repo1' => {
18
+ 'adapter' => 'mysql',
19
+ },
20
+ },
21
+ },
22
+ }
23
+
24
+ Merb::Orms::DataMapper.should_receive(:full_config).once.and_return(config)
25
+ Merb::Orms::DataMapper.config.should have_key(:adapter)
26
+ Merb::Orms::DataMapper.config[:adapter].should == 'myadapter'
27
+ Merb::Orms::DataMapper.config.should have_key(:repositories)
28
+ Merb::Orms::DataMapper.config[:repositories].should have_key(:repo1)
29
+ Merb::Orms::DataMapper.config[:repositories][:repo1].should have_key(:adapter)
30
+ Merb::Orms::DataMapper.config[:repositories][:repo1][:adapter].should == 'mysql'
31
+ end
32
+
33
+ it "should create a default repository" do
34
+ config = {
35
+ :adapter => 'mysql',
36
+ :database => 'mydb'
37
+ }
38
+
39
+ Merb::Orms::DataMapper.should_receive(:config).and_return(config)
40
+ DataMapper.should_receive(:setup).with(:default, config)
41
+
42
+ Merb::Orms::DataMapper.setup_connections
43
+ end
44
+
45
+ it "should create additional repositories" do
46
+ conf_mysql = {
47
+ :adapter => "mysql",
48
+ :database => "db"
49
+ }
50
+ conf_postgres = {
51
+ :adapter => "postgres",
52
+ :database => "dbp"
53
+ }
54
+ config = {
55
+ :repositories => {
56
+ :repo1 => conf_mysql,
57
+ :repo2 => conf_postgres
58
+ }
59
+ }
60
+
61
+ Merb::Orms::DataMapper.should_receive(:config).and_return(config)
62
+ DataMapper.should_receive(:setup).with(:repo1, conf_mysql)
63
+ DataMapper.should_receive(:setup).with(:repo2, conf_postgres)
64
+
65
+ Merb::Orms::DataMapper.setup_connections
66
+ end
67
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,2 @@
1
+ --format specdoc
2
+ --colour
@@ -0,0 +1,15 @@
1
+ $TESTING=true
2
+ $:.push File.join(File.dirname(__FILE__), '..', 'lib')
3
+
4
+ require 'rubygems'
5
+
6
+ gem 'dm-core', '=0.9.3'
7
+ require 'dm-core'
8
+
9
+ module Merb
10
+ module Plugins
11
+ def self.config
12
+ @config ||= {}
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,95 +1,108 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb_datamapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Toy
8
- autorequire: merb_datamapper
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-24 00:00:00 -05:00
12
+ date: 2008-07-29 00:00:00 -05:00
13
13
  default_executable:
14
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.9.3
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: dm-migrations
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.3
34
+ version:
15
35
  - !ruby/object:Gem::Dependency
16
36
  name: merb-core
37
+ type: :runtime
17
38
  version_requirement:
18
39
  version_requirements: !ruby/object:Gem::Requirement
19
40
  requirements:
20
41
  - - ">="
21
42
  - !ruby/object:Gem::Version
22
- version: 0.9.2
43
+ version: 0.9.3
23
44
  version:
24
45
  - !ruby/object:Gem::Dependency
25
- name: datamapper
46
+ name: hoe
47
+ type: :runtime
26
48
  version_requirement:
27
49
  version_requirements: !ruby/object:Gem::Requirement
28
50
  requirements:
29
51
  - - ">="
30
52
  - !ruby/object:Gem::Version
31
- version: 0.2.3
53
+ version: 1.6.0
32
54
  version:
33
- description: Merb plugin that provides DataMapper support for Merb
34
- email: jtoy@rubynow.com
55
+ description: DataMapper plugin providing DataMapper support for Merb
56
+ email:
57
+ - jtoy@rubynow.com
35
58
  executables: []
36
59
 
37
60
  extensions: []
38
61
 
39
62
  extra_rdoc_files:
40
- - README
63
+ - README.txt
41
64
  - LICENSE
42
65
  - TODO
43
66
  files:
67
+ - History.txt
44
68
  - LICENSE
45
- - README
69
+ - Manifest.txt
70
+ - README.txt
46
71
  - Rakefile
47
72
  - TODO
48
- - lib/merb
49
- - lib/merb/orms
50
- - lib/merb/orms/data_mapper
51
- - lib/merb/orms/data_mapper/base.rb
52
- - lib/merb/orms/data_mapper/connection.rb
53
- - lib/merb/orms/data_mapper/database.yml.sample
54
- - lib/merb/session
55
- - lib/merb/session/data_mapper_session.rb
56
- - lib/merb_datamapper
57
- - lib/merb_datamapper/merbtasks.rb
58
- - lib/merb_datamapper.rb
59
- - specs/merb_sequel_spec.rb
60
- - specs/spec_helper.rb
61
- - datamapper_generators/migration
73
+ - datamapper_generators/migration/USAGE
62
74
  - datamapper_generators/migration/migration_generator.rb
63
- - datamapper_generators/migration/templates
64
75
  - datamapper_generators/migration/templates/new_migration.erb
65
- - datamapper_generators/migration/USAGE
66
- - datamapper_generators/model
76
+ - datamapper_generators/model/USAGE
67
77
  - datamapper_generators/model/model_generator.rb
68
- - datamapper_generators/model/templates
69
- - datamapper_generators/model/templates/app
70
- - datamapper_generators/model/templates/app/models
71
78
  - datamapper_generators/model/templates/app/models/%model_file_name%.rb
72
- - datamapper_generators/model/USAGE
73
- - datamapper_generators/resource_controller
79
+ - datamapper_generators/resource_controller/USAGE
74
80
  - datamapper_generators/resource_controller/resource_controller_generator.rb
75
- - datamapper_generators/resource_controller/templates
76
- - datamapper_generators/resource_controller/templates/app
77
- - datamapper_generators/resource_controller/templates/app/controllers
78
81
  - datamapper_generators/resource_controller/templates/app/controllers/%controller_file_name%.rb
79
- - datamapper_generators/resource_controller/templates/app/helpers
80
82
  - datamapper_generators/resource_controller/templates/app/helpers/%controller_file_name%_helper.rb
81
- - datamapper_generators/resource_controller/templates/app/views
82
- - datamapper_generators/resource_controller/templates/app/views/%controller_file_name%
83
83
  - datamapper_generators/resource_controller/templates/app/views/%controller_file_name%/edit.html.erb
84
84
  - datamapper_generators/resource_controller/templates/app/views/%controller_file_name%/index.html.erb
85
85
  - datamapper_generators/resource_controller/templates/app/views/%controller_file_name%/new.html.erb
86
86
  - datamapper_generators/resource_controller/templates/app/views/%controller_file_name%/show.html.erb
87
- - datamapper_generators/resource_controller/USAGE
87
+ - datamapper_generators/resource_migration/USAGE
88
+ - datamapper_generators/resource_migration/resource_migration_generator.rb
89
+ - datamapper_generators/resource_migration/templates/class_migration.erb
90
+ - lib/merb/orms/data_mapper/connection.rb
91
+ - lib/merb/orms/data_mapper/database.yml.sample
92
+ - lib/merb/orms/data_mapper/resource.rb
93
+ - lib/merb/session/data_mapper_session.rb
94
+ - lib/merb_datamapper.rb
95
+ - lib/merb_datamapper/merbtasks.rb
96
+ - lib/merb_datamapper/version.rb
97
+ - spec/connection_spec.rb
98
+ - spec/spec.opts
99
+ - spec/spec_helper.rb
88
100
  has_rdoc: true
89
- homepage: http://merbivore.com
101
+ homepage: http://github.com/sam/dm-more/tree/master/merb_datamapper
90
102
  post_install_message:
91
- rdoc_options: []
92
-
103
+ rdoc_options:
104
+ - --main
105
+ - README.txt
93
106
  require_paths:
94
107
  - lib
95
108
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -106,10 +119,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
119
  version:
107
120
  requirements: []
108
121
 
109
- rubyforge_project:
110
- rubygems_version: 1.0.1
122
+ rubyforge_project: datamapper
123
+ rubygems_version: 1.2.0
111
124
  signing_key:
112
125
  specification_version: 2
113
- summary: Merb plugin that provides DataMapper support for Merb
126
+ summary: DataMapper plugin providing DataMapper support for Merb
114
127
  test_files: []
115
128
 
data/README DELETED
@@ -1,10 +0,0 @@
1
- merb_datamapper
2
- =================
3
-
4
- A plugin for the Merb framework that provides DataMapper access
5
-
6
- To use sessions:
7
- 1. set the session store to datamapper in merb.yml:
8
- :session_store: datamapper
9
- 2. add the dependency in dependencies.rb:
10
- use_orm :datamapper
@@ -1,6 +0,0 @@
1
- module Merb::Orms::DataMapper::Base
2
- def to_param
3
- key
4
- end
5
- end
6
- DataMapper::Base.send(:include, Merb::Orms::DataMapper::Base)
File without changes
data/specs/spec_helper.rb DELETED
@@ -1,2 +0,0 @@
1
- $TESTING=true
2
- $:.push File.join(File.dirname(__FILE__), '..', 'lib')