mack-data_mapper 0.5.0 → 0.5.1
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/lib/helpers/orm_helpers.rb +2 -2
- data/lib/mack-data_mapper.rb +14 -23
- data/lib/scaffold_generator/scaffold_generator.rb +1 -1
- data/lib/tasks/{db_migration_tasks.rake → db_tasks.rake} +3 -8
- data/test/database.yml +1 -1
- data/test/generators/scaffold_generator_test.rb +5 -5
- data/test/tasks/{db_migration_tasks_test.rb → db_tasks_test.rb} +2 -2
- data/test/test_helper.rb +8 -20
- metadata +5 -6
- data/lib/tasks/db_create_drop_tasks.rake +0 -76
data/lib/helpers/orm_helpers.rb
CHANGED
@@ -26,10 +26,10 @@ module Mack
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
app_errors.flatten!
|
29
|
-
File.join(
|
29
|
+
File.join(MACK_VIEWS, "application", "_error_messages.html.erb")
|
30
30
|
unless app_errors.empty?
|
31
31
|
if view_partial.nil?
|
32
|
-
if File.exist?(File.join(
|
32
|
+
if File.exist?(File.join(MACK_VIEWS, "application", "_error_messages.html.erb"))
|
33
33
|
render :partial => "application/error_messages", :locals => {:errors => app_errors}
|
34
34
|
else
|
35
35
|
render :text => DEFAULT_PARTIAL, :locals => {:errors => app_errors}
|
data/lib/mack-data_mapper.rb
CHANGED
@@ -9,33 +9,24 @@ end
|
|
9
9
|
gem("datamapper", "0.3.2")
|
10
10
|
require 'data_mapper'
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
DataMapper::Database.setup(settings)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end # load_database_configurations
|
29
|
-
|
30
|
-
end # Configuration
|
31
|
-
end # Mack
|
32
|
-
|
33
|
-
|
34
|
-
Mack::Configuration.load_database_configurations
|
12
|
+
dbs = YAML::load(Erubis::Eruby.new(IO.read(File.join(MACK_CONFIG, "database.yml"))).result)
|
13
|
+
|
14
|
+
unless dbs.nil?
|
15
|
+
settings = dbs[MACK_ENV]
|
16
|
+
settings.symbolize_keys!
|
17
|
+
if settings[:default]
|
18
|
+
settings.each do |k,v|
|
19
|
+
DataMapper::Database.setup(k, v.symbolize_keys)
|
20
|
+
end
|
21
|
+
else
|
22
|
+
DataMapper::Database.setup(settings)
|
23
|
+
end
|
24
|
+
end
|
35
25
|
|
36
26
|
class SchemaInfo # :nodoc:
|
37
27
|
include DataMapper::Persistence
|
38
28
|
|
29
|
+
set_table_name "schema_info"
|
39
30
|
property :version, :integer, :default => 0
|
40
31
|
end
|
41
32
|
|
@@ -20,7 +20,7 @@ class ScaffoldGenerator < Genosaurus
|
|
20
20
|
|
21
21
|
def update_routes_file
|
22
22
|
# update routes.rb
|
23
|
-
routes = File.join(
|
23
|
+
routes = File.join(MACK_CONFIG, "routes.rb")
|
24
24
|
rf = File.open(routes).read
|
25
25
|
unless rf.match(".resource :#{@name_plural}")
|
26
26
|
puts "Updating routes.rb"
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'rake'
|
2
1
|
namespace :db do
|
3
2
|
|
4
3
|
desc "Migrate the database through scripts in db/migrations"
|
@@ -55,12 +54,8 @@ namespace :db do
|
|
55
54
|
task :create => "mack:environment" do
|
56
55
|
require 'data_mapper/migration'
|
57
56
|
unless SchemaInfo.table.exists?
|
58
|
-
|
59
|
-
|
60
|
-
property :version, :integer
|
61
|
-
end
|
62
|
-
SchemaInfo.auto_migrate!
|
63
|
-
SchemaInfo.create(:version => 0, :id => 1)
|
57
|
+
SchemaInfo.table.create!
|
58
|
+
SchemaInfo.create(:version => 0)
|
64
59
|
end
|
65
60
|
@schema_info = SchemaInfo.first
|
66
61
|
end # create
|
@@ -69,7 +64,7 @@ namespace :db do
|
|
69
64
|
|
70
65
|
|
71
66
|
def migration_files
|
72
|
-
Dir.glob(File.join(
|
67
|
+
Dir.glob(File.join(MACK_ROOT, "db", "migrations", "*.rb"))
|
73
68
|
end
|
74
69
|
|
75
70
|
def migration_number(migration)
|
data/test/database.yml
CHANGED
@@ -4,7 +4,7 @@ class ScaffoldGeneratorTest < Test::Unit::TestCase
|
|
4
4
|
|
5
5
|
def test_generate_data_mapper
|
6
6
|
sg = ScaffoldGenerator.run("name" => "zoo")
|
7
|
-
File.open(File.join(
|
7
|
+
File.open(File.join(MACK_CONFIG, "routes.rb")) do |f|
|
8
8
|
assert_match "r.resource :zoos # Added by rake generate:scaffold name=zoo", f.read
|
9
9
|
end
|
10
10
|
|
@@ -24,7 +24,7 @@ class ScaffoldGeneratorTest < Test::Unit::TestCase
|
|
24
24
|
|
25
25
|
def test_generate_data_mapper_with_columns
|
26
26
|
sg = ScaffoldGenerator.run("name" => "zoo", "cols" => "name:string,description:text,created_at:datetime,updated_at:datetime")
|
27
|
-
File.open(File.join(
|
27
|
+
File.open(File.join(MACK_CONFIG, "routes.rb")) do |f|
|
28
28
|
assert_match "r.resource :zoos # Added by rake generate:scaffold name=zoo", f.read
|
29
29
|
end
|
30
30
|
assert File.exists?(views_directory)
|
@@ -43,15 +43,15 @@ class ScaffoldGeneratorTest < Test::Unit::TestCase
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def views_directory
|
46
|
-
File.join(
|
46
|
+
File.join(MACK_VIEWS, "zoos")
|
47
47
|
end
|
48
48
|
|
49
49
|
def model_file
|
50
|
-
File.join(
|
50
|
+
File.join(MACK_APP, "models", "zoo.rb")
|
51
51
|
end
|
52
52
|
|
53
53
|
def controller_file
|
54
|
-
File.join(
|
54
|
+
File.join(MACK_APP, "controllers", "zoos_controller.rb")
|
55
55
|
end
|
56
56
|
|
57
57
|
def migration_file
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
2
|
|
3
|
-
class
|
3
|
+
class DbTasksTest < Test::Unit::TestCase
|
4
4
|
|
5
|
-
$current_rake_task = File.join(File.dirname(__FILE__), "..", "..", "lib", "tasks", "
|
5
|
+
$current_rake_task = File.join(File.dirname(__FILE__), "..", "..", "lib", "tasks", "db_tasks.rake")
|
6
6
|
|
7
7
|
def test_db_rollback
|
8
8
|
test_db_migrate
|
data/test/test_helper.rb
CHANGED
@@ -1,30 +1,18 @@
|
|
1
1
|
require "test/unit"
|
2
2
|
require File.join(File.dirname(__FILE__), "..", "..", "test_helpers")
|
3
3
|
|
4
|
-
module Mack
|
5
|
-
module Configuration
|
6
|
-
def self.method_missing(sym, *args)
|
7
|
-
ev = "_mack_#{sym}".downcase
|
8
|
-
return ENV[ev]
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.set(name, value)
|
12
|
-
ENV["_mack_#{name.to_s.downcase}"] = value
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
4
|
$genosaurus_output_directory = File.join(File.dirname(__FILE__), "..", "tmp")
|
18
5
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
6
|
+
Object::MACK_CONFIG = File.dirname(__FILE__) unless Object.const_defined?("MACK_CONFIG")
|
7
|
+
Object::MACK_ROOT = $genosaurus_output_directory unless Object.const_defined?("MACK_ROOT")
|
8
|
+
Object::MACK_APP = File.join($genosaurus_output_directory, "app") unless Object.const_defined?("MACK_APP")
|
9
|
+
Object::MACK_ENV = "test" unless Object.const_defined?("MACK_ENV")
|
10
|
+
Object::MACK_VIEWS = File.join(MACK_APP, "views") unless Object.const_defined?("MACK_VIEWS")
|
24
11
|
|
25
12
|
require File.join(File.dirname(__FILE__), "..", "lib", "mack-data_mapper")
|
26
13
|
require File.join(File.dirname(__FILE__), "..", "..", "mack-orm_common", "lib", "mack-orm_common")
|
27
14
|
|
15
|
+
|
28
16
|
load File.join(File.dirname(__FILE__), "lib", "user.rb")
|
29
17
|
|
30
18
|
class Test::Unit::TestCase
|
@@ -35,7 +23,7 @@ class Test::Unit::TestCase
|
|
35
23
|
def cleanup
|
36
24
|
database.adapter.flush_connections!
|
37
25
|
FileUtils.rm_rf($genosaurus_output_directory)
|
38
|
-
FileUtils.rm_rf(File.join(
|
26
|
+
FileUtils.rm_rf(File.join(MACK_CONFIG, "routes.rb"))
|
39
27
|
end
|
40
28
|
|
41
29
|
def teardown
|
@@ -47,7 +35,7 @@ class Test::Unit::TestCase
|
|
47
35
|
[$genosaurus_output_directory, migrations_directory, models_directory].each do |d|
|
48
36
|
FileUtils.mkdir_p(d)
|
49
37
|
end
|
50
|
-
FileUtils.cp(fixture_path("routes.rb"), File.join(
|
38
|
+
FileUtils.cp(fixture_path("routes.rb"), File.join(MACK_CONFIG, "routes.rb"))
|
51
39
|
end
|
52
40
|
|
53
41
|
def migrations_directory
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mack-data_mapper
|
3
3
|
version: &id001 !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- markbates
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-05-
|
12
|
+
date: 2008-05-04 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -55,8 +55,7 @@ files:
|
|
55
55
|
- lib/scaffold_generator/templates/app/views/new.html.erb.template
|
56
56
|
- lib/scaffold_generator/templates/app/views/show.html.erb.template
|
57
57
|
- lib/scaffold_generator/templates/test.rb.template
|
58
|
-
- lib/tasks/
|
59
|
-
- lib/tasks/db_migration_tasks.rake
|
58
|
+
- lib/tasks/db_tasks.rake
|
60
59
|
- README
|
61
60
|
has_rdoc: true
|
62
61
|
homepage:
|
@@ -81,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
80
|
requirements: []
|
82
81
|
|
83
82
|
rubyforge_project: magrathea
|
84
|
-
rubygems_version: 1.
|
83
|
+
rubygems_version: 1.1.1
|
85
84
|
signing_key:
|
86
85
|
specification_version: 2
|
87
86
|
summary: DataMapper ORM support for Mack
|
@@ -113,5 +112,5 @@ test_files:
|
|
113
112
|
- test/lib
|
114
113
|
- test/lib/user.rb
|
115
114
|
- test/tasks
|
116
|
-
- test/tasks/
|
115
|
+
- test/tasks/db_tasks_test.rb
|
117
116
|
- test/test_helper.rb
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'rake'
|
2
|
-
namespace :db do
|
3
|
-
|
4
|
-
desc "Create the database for your environment."
|
5
|
-
task :create => :environment do
|
6
|
-
Mack::Configuration.load_database_configurations(Mack::Configuration.env)
|
7
|
-
database(:default) do
|
8
|
-
drop_create_database
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
namespace :create do
|
13
|
-
|
14
|
-
desc "Creates your Full environment. Does NOT create your production database!"
|
15
|
-
task :all => :environment do
|
16
|
-
Mack::Configuration.load_database_configurations("test")
|
17
|
-
database(:default) do
|
18
|
-
drop_create_database
|
19
|
-
end
|
20
|
-
Mack::Configuration.load_database_configurations("development")
|
21
|
-
database(:default) do
|
22
|
-
drop_create_database
|
23
|
-
end
|
24
|
-
Rake::Task["db:migrate"].invoke
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
def drop_create_database
|
33
|
-
configuration = database.adapter.instance_variable_get('@configuration')
|
34
|
-
case database.adapter.class.name
|
35
|
-
when "DataMapper::Adapters::MysqlAdapter"
|
36
|
-
DataMapper::Database.setup(:tmp, {
|
37
|
-
:adapter => "mysql",
|
38
|
-
:host => "localhost",
|
39
|
-
:database => "mysql",
|
40
|
-
:username => ENV["DB_USERNAME"] || "root",
|
41
|
-
:password => ENV["DB_PASSWORD"] || ""
|
42
|
-
})
|
43
|
-
database(:tmp) do
|
44
|
-
puts "Dropping (MySQL): #{configuration.database}"
|
45
|
-
database.execute "DROP DATABASE IF EXISTS `#{configuration.database}`"
|
46
|
-
puts "Creating (MySQL): #{configuration.database}"
|
47
|
-
database.execute "CREATE DATABASE `#{configuration.database}` DEFAULT CHARACTER SET `utf8`"
|
48
|
-
begin
|
49
|
-
database.adapter.flush_connections!
|
50
|
-
rescue Exception => e
|
51
|
-
end
|
52
|
-
end
|
53
|
-
when "DataMapper::Adapters::PostgresqlAdapter"
|
54
|
-
ENV['PGHOST'] = configuration.host if configuration.host
|
55
|
-
ENV['PGPORT'] = configuration.port.to_s if configuration.port
|
56
|
-
ENV['PGPASSWORD'] = configuration.password.to_s if configuration.password
|
57
|
-
|
58
|
-
database.adapter.flush_connections!
|
59
|
-
begin
|
60
|
-
puts "Dropping (PostgreSQL): #{configuration.database}"
|
61
|
-
`dropdb -U "#{configuration.username}" #{configuration.database}`
|
62
|
-
rescue Exception => e
|
63
|
-
end
|
64
|
-
|
65
|
-
begin
|
66
|
-
puts "Creating (PostgreSQL): #{configuration.database}"
|
67
|
-
`createdb -U "#{configuration.username}" #{configuration.database}`
|
68
|
-
rescue Exception => e
|
69
|
-
end
|
70
|
-
when 'DataMapper::Adapters::Sqlite3Adapter'
|
71
|
-
puts "Dropping (SQLite3): #{configuration.database}"
|
72
|
-
FileUtils.rm_rf(configuration.database)
|
73
|
-
else
|
74
|
-
raise "Task not supported for '#{database.adapter}'"
|
75
|
-
end
|
76
|
-
end
|