mack-data_mapper 0.6.1.2 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/classes/Mack.html +6 -6
- data/doc/classes/Mack/Database.html +119 -18
- data/doc/classes/Mack/Database/Generators.html +140 -0
- data/doc/classes/Mack/Database/Migrations.html +206 -0
- data/doc/classes/Mack/Testing/DataMapperHelpers.html +6 -6
- data/doc/classes/Mack/ViewHelpers/DataMapperHelpers.html +30 -124
- data/doc/created.rid +1 -1
- data/doc/files/lib/mack-data_mapper/database_migrations_rb.html +115 -0
- data/doc/files/lib/mack-data_mapper/database_rb.html +1 -1
- data/doc/files/lib/mack-data_mapper/dm_patches/dm-timestamps_rb.html +1 -1
- data/doc/files/lib/mack-data_mapper/dm_patches/migrations_rb.html +1 -1
- data/doc/files/lib/mack-data_mapper/{genosaurus_helpers_rb.html → dm_patches/model_rb.html} +5 -5
- data/doc/files/lib/mack-data_mapper/{scaffold_generator/scaffold_generator_rb.html → dm_patches/property_set_rb.html} +4 -17
- data/doc/{classes/DataMapper/Timestamp.html → files/lib/mack-data_mapper/dm_patches/validations_rb.html} +16 -20
- data/doc/files/lib/mack-data_mapper/{model_column_rb.html → generators_rb.html} +4 -4
- data/doc/files/lib/mack-data_mapper/helpers/orm_helpers_rb.html +1 -1
- data/doc/files/lib/mack-data_mapper/migration_generator/migration_generator_rb.html +1 -1
- data/doc/files/lib/mack-data_mapper/model_generator/model_generator_rb.html +1 -1
- data/doc/files/lib/mack-data_mapper_rb.html +2 -1
- data/doc/files/lib/mack-data_mapper_tasks_rb.html +8 -1
- data/doc/fr_class_index.html +2 -2
- data/doc/fr_file_index.html +5 -3
- data/doc/fr_method_index.html +10 -7
- data/lib/mack-data_mapper.rb +4 -5
- data/lib/mack-data_mapper/database.rb +79 -38
- data/lib/mack-data_mapper/database_migrations.rb +35 -0
- data/lib/mack-data_mapper/dm_patches/dm-timestamps.rb +4 -4
- data/lib/mack-data_mapper/dm_patches/migrations.rb +24 -2
- data/lib/mack-data_mapper/dm_patches/model.rb +48 -0
- data/lib/mack-data_mapper/dm_patches/property_set.rb +15 -0
- data/lib/mack-data_mapper/dm_patches/validations.rb +15 -0
- data/lib/mack-data_mapper/generators.rb +11 -0
- data/lib/mack-data_mapper/helpers/orm_helpers.rb +8 -32
- data/lib/mack-data_mapper/migration_generator/migration_generator.rb +1 -1
- data/lib/mack-data_mapper/model_generator/manifest.yml +2 -2
- data/lib/mack-data_mapper/model_generator/model_generator.rb +1 -1
- data/lib/mack-data_mapper_tasks.rb +1 -0
- metadata +42 -29
- data/doc/classes/ScaffoldGenerator.html +0 -123
- data/lib/mack-data_mapper/genosaurus_helpers.rb +0 -40
- data/lib/mack-data_mapper/model_column.rb +0 -42
- data/lib/mack-data_mapper/scaffold_generator/manifest.yml +0 -35
- data/lib/mack-data_mapper/scaffold_generator/scaffold_generator.rb +0 -41
- data/lib/mack-data_mapper/scaffold_generator/templates/app/helpers/controllers/helper.rb.template +0 -7
- data/lib/mack-data_mapper/scaffold_generator/templates/app/views/edit.html.erb.template +0 -19
- data/lib/mack-data_mapper/scaffold_generator/templates/app/views/index.html.erb.template +0 -41
- data/lib/mack-data_mapper/scaffold_generator/templates/app/views/new.html.erb.template +0 -19
- data/lib/mack-data_mapper/scaffold_generator/templates/app/views/show.html.erb.template +0 -12
- data/lib/mack-data_mapper/scaffold_generator/templates/test/functional/rspec.rb.template +0 -47
- data/lib/mack-data_mapper/scaffold_generator/templates/test/functional/test_case.rb.template +0 -9
- data/lib/mack-data_mapper/tasks/db_create_drop_tasks.rake +0 -57
- data/lib/mack-data_mapper/tasks/db_migration_tasks.rake +0 -46
- data/lib/mack-data_mapper/tasks/test_tasks.rake +0 -12
@@ -1,42 +0,0 @@
|
|
1
|
-
module Mack
|
2
|
-
module Genosaurus # :nodoc:
|
3
|
-
module DataMapper # :nodoc:
|
4
|
-
# Used to represent a 'column' from the param cols or columns for generators.
|
5
|
-
class ModelColumn # :nodoc:
|
6
|
-
|
7
|
-
# The name of the column.
|
8
|
-
attr_accessor :column_name
|
9
|
-
# The type of the column. Ie. string, integer, datetime, etc...
|
10
|
-
attr_accessor :column_type
|
11
|
-
# The name of the model associated with the column. Ie. user, post, etc...
|
12
|
-
attr_accessor :model_name
|
13
|
-
|
14
|
-
# Takes in the model_name (user, post, etc...) and the column (username:string, body:text, etc...)
|
15
|
-
def initialize(model_name, column_unsplit)
|
16
|
-
self.model_name = model_name.singular.underscore
|
17
|
-
cols = column_unsplit.split(":")
|
18
|
-
self.column_name = cols.first#.underscore
|
19
|
-
self.column_type = cols.last#.underscore
|
20
|
-
end
|
21
|
-
|
22
|
-
# Generates the appropriate HTML form field for the type of column represented.
|
23
|
-
#
|
24
|
-
# Examples:
|
25
|
-
# Mack::Generator::ColumnObject.new("user", "username:string").form_field
|
26
|
-
# => "<%= model_text_field(@user, :username) %>"
|
27
|
-
# Mack::Generator::ColumnObject.new("Post", "body:text").form_field
|
28
|
-
# => "<%= model_textarea(@user, :username) %>"
|
29
|
-
def form_field
|
30
|
-
case self.column_type
|
31
|
-
when "text"
|
32
|
-
%{<%= model_textarea(@#{self.model_name}, :#{self.column_name}) %>}
|
33
|
-
else
|
34
|
-
%{<%= model_text_field(@#{self.model_name}, :#{self.column_name}) %>}
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end # ModelColumn
|
39
|
-
end # DataMapper
|
40
|
-
|
41
|
-
end # Generator
|
42
|
-
end # Mack
|
@@ -1,35 +0,0 @@
|
|
1
|
-
controller_template:
|
2
|
-
type: file
|
3
|
-
template_path: <%= File.join(templates_directory_path, "app", "controllers", "controller.rb.template") %>
|
4
|
-
output_path: <%= File.join("app", "controllers", "#{@name_plural}_controller.rb") %>
|
5
|
-
edit_template:
|
6
|
-
type: file
|
7
|
-
template_path: <%= File.join(templates_directory_path, "app", "views", "edit.html.erb.template") %>
|
8
|
-
output_path: <%= File.join("app", "views", @name_plural, "edit.html.erb") %>
|
9
|
-
index_template:
|
10
|
-
type: file
|
11
|
-
template_path: <%= File.join(templates_directory_path, "app", "views", "index.html.erb.template") %>
|
12
|
-
output_path: <%= File.join("app", "views", @name_plural, "index.html.erb") %>
|
13
|
-
new_template:
|
14
|
-
type: file
|
15
|
-
template_path: <%= File.join(templates_directory_path, "app", "views", "new.html.erb.template") %>
|
16
|
-
output_path: <%= File.join("app", "views", @name_plural, "new.html.erb") %>
|
17
|
-
show_template:
|
18
|
-
type: file
|
19
|
-
template_path: <%= File.join(templates_directory_path, "app", "views", "show.html.erb.template") %>
|
20
|
-
output_path: <%= File.join("app", "views", @name_plural, "show.html.erb") %>
|
21
|
-
helper_template:
|
22
|
-
type: file
|
23
|
-
template_path: <%= File.join(templates_directory_path, "app", "helpers", "controllers", "helper.rb.template") %>
|
24
|
-
output_path: <%= File.join("app", "helpers", "controllers", "#{@name_plural}_controller_helper.rb") %>
|
25
|
-
<% if app_config.mack.testing_framework == "test_case" -%>
|
26
|
-
functional_test_template:
|
27
|
-
type: file
|
28
|
-
template_path: <%= File.join(templates_directory_path, "test", "functional", "test_case.rb.template") %>
|
29
|
-
output_path: <%= File.join("test", "functional", "#{@name_plural}_controller_test.rb") %>
|
30
|
-
<% elsif app_config.mack.testing_framework == "rspec" -%>
|
31
|
-
functional_test_template:
|
32
|
-
type: file
|
33
|
-
template_path: <%= File.join(templates_directory_path, "test", "functional", "rspec.rb.template") %>
|
34
|
-
output_path: <%= File.join("test", "functional", "#{@name_plural}_controller_spec.rb") %>
|
35
|
-
<% end -%>
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# Generates scaffold for Mack applications.
|
2
|
-
#
|
3
|
-
# Example:
|
4
|
-
# rake generate:scaffold name=post
|
5
|
-
class ScaffoldGenerator < Genosaurus
|
6
|
-
|
7
|
-
require_param :name
|
8
|
-
|
9
|
-
def setup # :nodoc:
|
10
|
-
@name_singular = param(:name).singular.underscore
|
11
|
-
@name_plural = param(:name).plural.underscore
|
12
|
-
@name_singular_camel = @name_singular.camelcase
|
13
|
-
@name_plural_camel = @name_plural.camelcase
|
14
|
-
end
|
15
|
-
|
16
|
-
def after_generate # :nodoc:
|
17
|
-
ModelGenerator.run(@options)
|
18
|
-
update_routes_file
|
19
|
-
end
|
20
|
-
|
21
|
-
def update_routes_file # :nodoc:
|
22
|
-
# update routes.rb
|
23
|
-
routes = File.join(Mack.root, "config", "routes.rb")
|
24
|
-
rf = File.open(routes).read
|
25
|
-
unless rf.match(".resource :#{@name_plural}")
|
26
|
-
puts "Updating routes.rb"
|
27
|
-
nrf = ""
|
28
|
-
rf.each do |line|
|
29
|
-
if line.match("Mack::Routes.build")
|
30
|
-
x = line.match(/\|(.+)\|/).captures
|
31
|
-
line << "\n #{x}.resource :#{@name_plural} # Added by rake generate:scaffold name=#{param(:name)}\n"
|
32
|
-
end
|
33
|
-
nrf << line
|
34
|
-
end
|
35
|
-
File.open(routes, "w") do |f|
|
36
|
-
f.puts nrf
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<h1>Edit <%= @name_singular_camel %></h1>
|
2
|
-
|
3
|
-
<%%= error_messages_for :<%= @name_singular %> %>
|
4
|
-
|
5
|
-
<%% form(<%= @name_singular %>s_update_url(:id => @<%= @name_singular %>), :class => "edit_<%= @name_singular %>", :id => "edit_<%= @name_singular %>", :method => :put) do %>
|
6
|
-
<% for column in columns -%>
|
7
|
-
<% unless column.column_name == "created_at" || column.column_name == "updated_at" -%>
|
8
|
-
<p>
|
9
|
-
<b><%= column.column_name.singular.camelcase %></b><br />
|
10
|
-
<%= column.form_field %>
|
11
|
-
</p>
|
12
|
-
<% end -%>
|
13
|
-
<% end -%>
|
14
|
-
<p>
|
15
|
-
<%%= submit_tag("Update") %>
|
16
|
-
</p>
|
17
|
-
<%% end %>
|
18
|
-
|
19
|
-
<%%= link_to("Back", <%= @name_singular %>s_index_url) %>
|
@@ -1,41 +0,0 @@
|
|
1
|
-
<h1>Listing <%= @name_plural_camel %></h1>
|
2
|
-
|
3
|
-
<table>
|
4
|
-
<tr>
|
5
|
-
<%
|
6
|
-
unless columns.empty?
|
7
|
-
columns.each do |col|
|
8
|
-
-%>
|
9
|
-
<th><%= col.column_name.camelcase %></th>
|
10
|
-
<%
|
11
|
-
end
|
12
|
-
else
|
13
|
-
-%>
|
14
|
-
<th> </th>
|
15
|
-
<%
|
16
|
-
end
|
17
|
-
-%>
|
18
|
-
</tr>
|
19
|
-
|
20
|
-
<%% for <%= @name_singular %> in @<%= @name_plural %> %>
|
21
|
-
<tr>
|
22
|
-
<%
|
23
|
-
unless columns.empty?
|
24
|
-
columns.each do |col| -%>
|
25
|
-
<td><%%= <%= @name_singular %>.<%= col.column_name %> %></td>
|
26
|
-
<%
|
27
|
-
end
|
28
|
-
else
|
29
|
-
-%>
|
30
|
-
<td> </td>
|
31
|
-
<% end -%>
|
32
|
-
<td><%%= link_to("Show", <%= @name_plural %>_show_url(:id => <%= @name_singular %>)) %></td>
|
33
|
-
<td><%%= link_to("Edit", <%= @name_plural %>_edit_url(:id => <%= @name_singular %>)) %></td>
|
34
|
-
<td><%%= link_to("Delete", <%= @name_plural %>_delete_url(:id => <%= @name_singular %>), :method => :delete, :confirm => "Are you sure?") %></td>
|
35
|
-
</tr>
|
36
|
-
<%% end %>
|
37
|
-
</table>
|
38
|
-
|
39
|
-
<br />
|
40
|
-
|
41
|
-
<%%= link_to("New <%= @name_singular_camel %>", <%= @name_plural %>_new_url) %>
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<h1>New <%= @name_singular_camel %></h1>
|
2
|
-
|
3
|
-
<%%= error_messages_for :<%= @name_singular %> %>
|
4
|
-
|
5
|
-
<%% form(<%= @name_singular %>s_create_url, :class => "new_<%= @name_singular %>", :id => "new_<%= @name_singular %>") do %>
|
6
|
-
<% for column in columns -%>
|
7
|
-
<% unless column.column_name == "created_at" || column.column_name == "updated_at" -%>
|
8
|
-
<p>
|
9
|
-
<b><%= column.column_name.singular.camelcase %></b><br />
|
10
|
-
<%= column.form_field %>
|
11
|
-
</p>
|
12
|
-
<% end -%>
|
13
|
-
<% end -%>
|
14
|
-
<p>
|
15
|
-
<%%= submit_tag("Create") %>
|
16
|
-
</p>
|
17
|
-
<%% end %>
|
18
|
-
|
19
|
-
<%%= link_to("Back", <%= @name_singular %>s_index_url) %>
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<p>
|
2
|
-
<h1><%= @name_singular_camel %></h1>
|
3
|
-
</p>
|
4
|
-
<% for column in columns -%>
|
5
|
-
<p>
|
6
|
-
<b><%= column.column_name.singular.camelcase %></b><br />
|
7
|
-
<%%= @<%= @name_singular %>.<%= column.column_name %> %>
|
8
|
-
</p>
|
9
|
-
<% end -%>
|
10
|
-
|
11
|
-
<%%= link_to("Edit", <%= @name_plural %>_edit_url(:id => @<%= @name_singular %>)) %> |
|
12
|
-
<%%= link_to("Back", <%= @name_plural %>_index_url) %>
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
2
|
-
|
3
|
-
describe <%= @name_plural_camel %>Controller do
|
4
|
-
|
5
|
-
describe "index" do
|
6
|
-
|
7
|
-
it "should list <%= @name_plural %>"
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "show" do
|
12
|
-
|
13
|
-
it "should show a <%= @name_singular %>"
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "new" do
|
18
|
-
|
19
|
-
it "should show a form to create a new <%= @name_singular %>"
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "edit" do
|
24
|
-
|
25
|
-
it "should edit a <%= @name_singular %>"
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
describe "create" do
|
30
|
-
|
31
|
-
it "should create a <%= @name_singular %>"
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "update" do
|
36
|
-
|
37
|
-
it "should update a <%= @name_singular %>"
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
describe "delete" do
|
42
|
-
|
43
|
-
it "should delete a <%= @name_singular %>"
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'rake'
|
2
|
-
namespace :db do
|
3
|
-
|
4
|
-
desc "Drops (if it exists) the database and then creates it for your environment."
|
5
|
-
task :recreate => :environment do
|
6
|
-
Mack::Database.drop(Mack.env, repis)
|
7
|
-
Mack::Database.create(Mack.env, repis)
|
8
|
-
end
|
9
|
-
|
10
|
-
desc "Creates the database for your environment."
|
11
|
-
task :create => :environment do
|
12
|
-
Mack::Database.create(Mack.env, repis)
|
13
|
-
end
|
14
|
-
|
15
|
-
desc "Drops the database for your environment."
|
16
|
-
task :drop => :environment do
|
17
|
-
Mack::Database.drop(Mack.env, repis)
|
18
|
-
end
|
19
|
-
|
20
|
-
namespace :create do
|
21
|
-
|
22
|
-
desc "Creates your test and development databases. Does NOT create your production database!"
|
23
|
-
task :all => :environment do
|
24
|
-
Mack::Database.create("test", repis)
|
25
|
-
Mack::Database.create("development", repis)
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
namespace :drop do
|
31
|
-
|
32
|
-
desc "Drops your test and development databases. Does NOT create your production database!"
|
33
|
-
task :all => :environment do
|
34
|
-
Mack::Database.drop("test", repis)
|
35
|
-
Mack::Database.drop("development", repis)
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
namespace :recreate do
|
41
|
-
|
42
|
-
desc "Drops and creates your test and development databases. Does NOT create your production database!"
|
43
|
-
task :all => :environment do
|
44
|
-
Mack::Database.drop("test", repis)
|
45
|
-
Mack::Database.create("test", repis)
|
46
|
-
Mack::Database.drop("development", repis)
|
47
|
-
Mack::Database.create("development", repis)
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
private
|
53
|
-
def repis
|
54
|
-
(ENV["REPO"] ||= "default").to_sym
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'rake'
|
2
|
-
namespace :db do
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
desc "Migrate the database through scripts in db/migrations."
|
7
|
-
task :migrate => "mack:environment" do
|
8
|
-
require 'migration_runner'
|
9
|
-
include DataMapper::Types
|
10
|
-
DataMapper::MigrationRunner.reset!
|
11
|
-
migration_files.each { |mig| load mig }
|
12
|
-
DataMapper::MigrationRunner.migrate_up!
|
13
|
-
end # migrate
|
14
|
-
|
15
|
-
desc "Rolls the schema back to the previous version. Specify the number of steps with STEP=n."
|
16
|
-
task :rollback => ["mack:environment", "db:abort_if_pending_migrations"] do
|
17
|
-
require 'dm-core/types'
|
18
|
-
require 'migration_runner'
|
19
|
-
include DataMapper::Types
|
20
|
-
DataMapper::MigrationRunner.reset!
|
21
|
-
migration_files.each { |mig| load mig }
|
22
|
-
step = (ENV["STEP"] || 1).to_i
|
23
|
-
migrations = DataMapper::MigrationRunner.migrations.sort.reverse
|
24
|
-
step.times do |i|
|
25
|
-
migrations[migrations.size - (i + 1)].perform_down
|
26
|
-
end
|
27
|
-
end # rollback
|
28
|
-
|
29
|
-
desc "Raises an error if there are pending migrations."
|
30
|
-
task :abort_if_pending_migrations do
|
31
|
-
require 'dm-core/types'
|
32
|
-
require 'migration_runner'
|
33
|
-
migration_files.each { |mig| load mig }
|
34
|
-
DataMapper::MigrationRunner.migrations.each do |mig|
|
35
|
-
raise Mack::Errors::UnrunMigrations.new(mig.name) if mig.send("needs_up?")
|
36
|
-
end
|
37
|
-
DataMapper::MigrationRunner.migrations.clear
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def migration_files
|
43
|
-
Dir.glob(File.join(Mack.root, "db", "migrations", "*.rb"))
|
44
|
-
end
|
45
|
-
|
46
|
-
end # db
|