mack 0.4.7 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +21 -2
- data/README +1 -4
- data/bin/mack +2 -2
- data/lib/errors/errors.rb +1 -10
- data/lib/generators/mack_application_generator/manifest.yml +5 -1
- data/lib/generators/mack_application_generator/templates/config/database.yml.template +45 -1
- data/lib/generators/mack_application_generator/templates/test/test_helper.rb.template +1 -1
- data/lib/generators/plugin_generator/templates/vendor/plugins/{<%= @plugin_name %> → %=@plugin_name%}/init.rb.template +0 -0
- data/lib/generators/plugin_generator/templates/vendor/plugins/{<%= @plugin_name %>/lib/<%= @plugin_name %>.rb.template → %=@plugin_name%/lib/%=@plugin_name%.rb.template} +0 -0
- data/lib/generators/plugin_generator/templates/vendor/plugins/{<%= @plugin_name %>/lib/tasks/<%= @plugin_name %>_tasks.rake.template → %=@plugin_name%/lib/tasks/%=@plugin_name%_tasks.rake.template} +0 -0
- data/lib/initialization/configuration.rb +28 -6
- data/lib/initialization/console.rb +2 -0
- data/lib/initialization/initializer.rb +23 -36
- data/lib/initialization/initializers/logging.rb +2 -2
- data/lib/initialization/initializers/orm_support.rb +4 -63
- data/lib/initialization/initializers/plugins.rb +1 -1
- data/lib/initialization/server/simple_server.rb +0 -2
- data/lib/mack.rb +2 -2
- data/lib/mack_tasks.rb +6 -0
- data/lib/rendering/base.rb +1 -1
- data/lib/rendering/classes/action.rb +1 -1
- data/lib/rendering/classes/public.rb +1 -1
- data/lib/rendering/classes/url.rb +1 -0
- data/lib/rendering/classes/xml.rb +1 -1
- data/lib/sea_level/controller_base.rb +19 -10
- data/lib/sea_level/helpers/view_helpers/html_helpers.rb +96 -11
- data/lib/sea_level/helpers/view_helpers/string_helpers.rb +22 -0
- data/lib/sea_level/uploaded_file.rb +1 -0
- data/lib/sea_level/view_binder.rb +14 -11
- data/lib/tasks/cachetastic_tasks.rake +11 -11
- data/lib/tasks/mack_server_tasks.rake +3 -3
- data/lib/tasks/mack_tasks.rake +2 -5
- data/lib/tasks/rake_rules.rake +1 -2
- data/lib/tasks/test_tasks.rake +22 -1
- data/lib/test_extensions/test_case.rb +50 -0
- data/lib/test_extensions/test_helpers.rb +22 -5
- metadata +30 -30
- data/lib/generators/genosaurus_helpers.rb +0 -38
- data/lib/generators/migration_generator/migration_generator.rb +0 -67
- data/lib/generators/migration_generator/templates/db/migrations/<%=@migration_name%>.rb.template +0 -31
- data/lib/generators/model_column.rb +0 -55
- data/lib/generators/model_generator/manifest.yml +0 -11
- data/lib/generators/model_generator/model_generator.rb +0 -93
- data/lib/generators/model_generator/templates/active_record.rb.template +0 -2
- data/lib/generators/model_generator/templates/data_mapper.rb.template +0 -11
- data/lib/generators/model_generator/templates/test.rb.template +0 -9
- data/lib/generators/scaffold_generator/manifest.yml +0 -31
- data/lib/generators/scaffold_generator/scaffold_generator.rb +0 -43
- data/lib/generators/scaffold_generator/templates/generic/app/controllers/controller.rb.template +0 -50
- data/lib/generators/scaffold_generator/templates/generic/app/views/edit.html.erb.template +0 -20
- data/lib/generators/scaffold_generator/templates/generic/app/views/index.html.erb.template +0 -41
- data/lib/generators/scaffold_generator/templates/generic/app/views/new.html.erb.template +0 -19
- data/lib/generators/scaffold_generator/templates/generic/app/views/show.html.erb.template +0 -12
- data/lib/generators/scaffold_generator/templates/no_orm/controller.rb.template +0 -38
- data/lib/generators/scaffold_generator/templates/test.rb.template +0 -9
- data/lib/sea_level/helpers/view_helpers/orm_helpers.rb +0 -87
- data/lib/tasks/db_tasks.rake +0 -94
- data/lib/utils/html.rb +0 -104
data/lib/tasks/db_tasks.rake
DELETED
@@ -1,94 +0,0 @@
|
|
1
|
-
namespace :db do
|
2
|
-
|
3
|
-
desc "Migrate the database through scripts in db/migrations"
|
4
|
-
task :migrate => "db:schema:create" do
|
5
|
-
migration_files.each do |migration|
|
6
|
-
require migration
|
7
|
-
migration = File.basename(migration, ".rb")
|
8
|
-
m_number = migration_number(migration)
|
9
|
-
if m_number > @schema_info.version
|
10
|
-
migration_name(migration).camelcase.constantize.up
|
11
|
-
@schema_info.version += 1
|
12
|
-
@schema_info.save
|
13
|
-
end
|
14
|
-
end # each
|
15
|
-
end # migrate
|
16
|
-
|
17
|
-
desc "Rolls the schema back to the previous version. Specify the number of steps with STEP=n"
|
18
|
-
task :rollback => ["db:schema:create", "db:abort_if_pending_migrations"] do
|
19
|
-
migrations = migration_files.reverse
|
20
|
-
(ENV["STEP"] || 1).to_i.times do |step|
|
21
|
-
migration = migrations[step]
|
22
|
-
require migration
|
23
|
-
migration = File.basename(migration, ".rb")
|
24
|
-
m_number = migration_number(migration)
|
25
|
-
if m_number == @schema_info.version
|
26
|
-
migration_name(migration).camelcase.constantize.down
|
27
|
-
@schema_info.version -= 1
|
28
|
-
@schema_info.save
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end # rollback
|
33
|
-
|
34
|
-
desc "Raises an error if there are pending migrations"
|
35
|
-
task :abort_if_pending_migrations do
|
36
|
-
migrations = migration_files.reverse
|
37
|
-
return if migrations.empty?
|
38
|
-
migration = migrations.first
|
39
|
-
migration = File.basename(migration, ".rb")
|
40
|
-
m_number = migration_number(migration)
|
41
|
-
if m_number > @schema_info.version
|
42
|
-
raise Mack::Errors::UnrunMigrations.new(m_number - @schema_info.version)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
desc "Displays the current schema version of your database"
|
47
|
-
task :version => "db:schema:create" do
|
48
|
-
puts "\nYour database is currently at version: #{@schema_info.version}\n"
|
49
|
-
end
|
50
|
-
|
51
|
-
private
|
52
|
-
namespace :schema do
|
53
|
-
|
54
|
-
task :create => "mack:environment" do
|
55
|
-
if using_data_mapper?
|
56
|
-
require 'data_mapper/migration'
|
57
|
-
unless DmSchemaInfo.table.exists?
|
58
|
-
DmSchemaInfo.table.create!
|
59
|
-
DmSchemaInfo.create(:version => 0)
|
60
|
-
end
|
61
|
-
@schema_info = DmSchemaInfo.first
|
62
|
-
elsif using_active_record?
|
63
|
-
require 'active_record/migration'
|
64
|
-
class CreateArSchemaInfo < ActiveRecord::Migration # :nodoc:
|
65
|
-
def self.up
|
66
|
-
create_table :schema_info do |t|
|
67
|
-
t.column :version, :integer, :default => 0
|
68
|
-
end
|
69
|
-
end # up
|
70
|
-
end # CreateArSchemaInfo
|
71
|
-
unless ArSchemaInfo.table_exists?
|
72
|
-
CreateArSchemaInfo.up
|
73
|
-
ArSchemaInfo.create(:version => 0)
|
74
|
-
end
|
75
|
-
@schema_info = ArSchemaInfo.find(:first)
|
76
|
-
end
|
77
|
-
end # create
|
78
|
-
|
79
|
-
end # schema
|
80
|
-
|
81
|
-
|
82
|
-
def migration_files
|
83
|
-
Dir.glob(File.join(MACK_ROOT, "db", "migrations", "*.rb"))
|
84
|
-
end
|
85
|
-
|
86
|
-
def migration_number(migration)
|
87
|
-
migration.match(/(^\d+)/).captures.last.to_i
|
88
|
-
end
|
89
|
-
|
90
|
-
def migration_name(migration)
|
91
|
-
migration.match(/^\d+_(.+)/).captures.last
|
92
|
-
end
|
93
|
-
|
94
|
-
end # db
|
data/lib/utils/html.rb
DELETED
@@ -1,104 +0,0 @@
|
|
1
|
-
module Mack
|
2
|
-
module Utils
|
3
|
-
# Useful utilities for dealing with HTML.
|
4
|
-
class Html
|
5
|
-
|
6
|
-
class << self
|
7
|
-
|
8
|
-
# Used in views to create href links. It takes link_text, url, and a Hash that gets added
|
9
|
-
# to the href as options.
|
10
|
-
#
|
11
|
-
# Examples:
|
12
|
-
# Mack::Utils::Html.href("http://www.mackframework.com") # => <a href="http://www.mackframework.com">http://www.mackframework.com</a>
|
13
|
-
# Mack::Utils::Html.href("Mack", "http://www.mackframework.com") # => <a href="http://www.mackframework.com">Mack</a>
|
14
|
-
# Mack::Utils::Html.href("Mack", "http://www.mackframework.com", :target => "_blank") # => <a href="http://www.mackframework.com" target="_blank">Mack</a>
|
15
|
-
# Mack::Utils::Html.href("Mack", "http://www.mackframework.com", :target => "_blank", :rel => :nofollow) # => <a href="http://www.mackframework.com" target="_blank" rel="nofollow">Mack</a>
|
16
|
-
# If you pass in :method as an option it will be a JavaScript form that will post to the specified link with the
|
17
|
-
# methd specified.
|
18
|
-
# Mack::Utils::Html.href("Mack", "http://www.mackframework.com", :method => :delete)
|
19
|
-
# If you use the :method option you can also pass in a :confirm option. The :confirm option will generate a
|
20
|
-
# javascript confirmation window. If 'OK' is selected the the form will submit. If 'cancel' is selected, then
|
21
|
-
# nothing will happen. This is extremely useful for 'delete' type of links.
|
22
|
-
# Mack::Utils::Html.href("Mack", "http://www.mackframework.com", :method => :delete, :confirm => "Are you sure?")
|
23
|
-
def href(link_text, url = link_text, html_options = {})
|
24
|
-
if html_options[:method]
|
25
|
-
meth = nil
|
26
|
-
confirm = nil
|
27
|
-
|
28
|
-
meth = %{var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', '_method'); s.setAttribute('value', '#{html_options[:method]}'); f.appendChild(s);f.submit()}
|
29
|
-
html_options.delete(:method)
|
30
|
-
|
31
|
-
if html_options[:confirm]
|
32
|
-
confirm = %{if (confirm('#{html_options[:confirm]}'))}
|
33
|
-
html_options.delete(:confirm)
|
34
|
-
end
|
35
|
-
|
36
|
-
html_options[:onclick] = (confirm ? (confirm + " { ") : "") << meth << (confirm ? (" } ") : "") << ";return false;"
|
37
|
-
end
|
38
|
-
|
39
|
-
html = "<a href=" << '"' << url
|
40
|
-
html << '"'
|
41
|
-
html << " " << html_options.join("%s=\"%s\"", " ") unless html_options.empty?
|
42
|
-
html << ">" << link_text
|
43
|
-
html << "</a>"
|
44
|
-
html
|
45
|
-
end
|
46
|
-
|
47
|
-
alias_method :a, :href
|
48
|
-
|
49
|
-
# A wrapper to generate an auto discovery tag so browsers no the page contains an RSS feed.
|
50
|
-
#
|
51
|
-
# Example:
|
52
|
-
# <%= Mack::Utils::Html.rss(posts_index_url(:format => :xml)) %>
|
53
|
-
def rss(url)
|
54
|
-
"<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"#{url}\">"
|
55
|
-
end
|
56
|
-
|
57
|
-
# Wraps the content_tag method.
|
58
|
-
#
|
59
|
-
# Examples:
|
60
|
-
# Mack::Utils::Html.b("hello") # => <b>hello</b>
|
61
|
-
# Mack::Utils::Html.div("hello world!", :class => :foo)) # => <div class="foo">hello world!</div>
|
62
|
-
def method_missing(sym, *args)
|
63
|
-
ags = args.parse_splat_args
|
64
|
-
|
65
|
-
tag = sym
|
66
|
-
content = nil
|
67
|
-
options = {}
|
68
|
-
|
69
|
-
if ags.is_a?(Array)
|
70
|
-
content = ags[0] if ags[0].is_a?(String)
|
71
|
-
options = ags[1] if ags[1].is_a?(Hash)
|
72
|
-
elsif ags.is_a?(String)
|
73
|
-
content = ags
|
74
|
-
elsif ags.is_a?(Hash)
|
75
|
-
options = ags
|
76
|
-
end
|
77
|
-
|
78
|
-
content = yield if block_given?
|
79
|
-
|
80
|
-
content_tag(tag, content, options)
|
81
|
-
end
|
82
|
-
|
83
|
-
# Builds an HTML tag.
|
84
|
-
#
|
85
|
-
# Examples:
|
86
|
-
# content_tag(:b, "hello") # => <b>hello</b>
|
87
|
-
# content_tag("div", "hello world!", :class => :foo) # => <div class="foo">hello world!</div>
|
88
|
-
def content_tag(tag, content, options = {})
|
89
|
-
html = "<#{tag} #{options.join("%s=\"%s\"", " ")}>#{content}</#{tag}>"
|
90
|
-
end
|
91
|
-
|
92
|
-
# Builds a HTML image tag.
|
93
|
-
#
|
94
|
-
def image_tag(image_src, options = {})
|
95
|
-
html = "<img src=\"#{image_src}\""
|
96
|
-
html << " " << options.join("%s=\"%s\"", " ") unless options.empty?
|
97
|
-
html << ">"
|
98
|
-
end
|
99
|
-
|
100
|
-
end # self
|
101
|
-
|
102
|
-
end # Html
|
103
|
-
end # Utils
|
104
|
-
end # Mack
|