mack-data_mapper 0.6.1.2 → 0.7.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/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
|