mack 0.4.7 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/CHANGELOG +21 -2
  2. data/README +1 -4
  3. data/bin/mack +2 -2
  4. data/lib/errors/errors.rb +1 -10
  5. data/lib/generators/mack_application_generator/manifest.yml +5 -1
  6. data/lib/generators/mack_application_generator/templates/config/database.yml.template +45 -1
  7. data/lib/generators/mack_application_generator/templates/test/test_helper.rb.template +1 -1
  8. data/lib/generators/plugin_generator/templates/vendor/plugins/{<%= @plugin_name %> → %=@plugin_name%}/init.rb.template +0 -0
  9. data/lib/generators/plugin_generator/templates/vendor/plugins/{<%= @plugin_name %>/lib/<%= @plugin_name %>.rb.template → %=@plugin_name%/lib/%=@plugin_name%.rb.template} +0 -0
  10. 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
  11. data/lib/initialization/configuration.rb +28 -6
  12. data/lib/initialization/console.rb +2 -0
  13. data/lib/initialization/initializer.rb +23 -36
  14. data/lib/initialization/initializers/logging.rb +2 -2
  15. data/lib/initialization/initializers/orm_support.rb +4 -63
  16. data/lib/initialization/initializers/plugins.rb +1 -1
  17. data/lib/initialization/server/simple_server.rb +0 -2
  18. data/lib/mack.rb +2 -2
  19. data/lib/mack_tasks.rb +6 -0
  20. data/lib/rendering/base.rb +1 -1
  21. data/lib/rendering/classes/action.rb +1 -1
  22. data/lib/rendering/classes/public.rb +1 -1
  23. data/lib/rendering/classes/url.rb +1 -0
  24. data/lib/rendering/classes/xml.rb +1 -1
  25. data/lib/sea_level/controller_base.rb +19 -10
  26. data/lib/sea_level/helpers/view_helpers/html_helpers.rb +96 -11
  27. data/lib/sea_level/helpers/view_helpers/string_helpers.rb +22 -0
  28. data/lib/sea_level/uploaded_file.rb +1 -0
  29. data/lib/sea_level/view_binder.rb +14 -11
  30. data/lib/tasks/cachetastic_tasks.rake +11 -11
  31. data/lib/tasks/mack_server_tasks.rake +3 -3
  32. data/lib/tasks/mack_tasks.rake +2 -5
  33. data/lib/tasks/rake_rules.rake +1 -2
  34. data/lib/tasks/test_tasks.rake +22 -1
  35. data/lib/test_extensions/test_case.rb +50 -0
  36. data/lib/test_extensions/test_helpers.rb +22 -5
  37. metadata +30 -30
  38. data/lib/generators/genosaurus_helpers.rb +0 -38
  39. data/lib/generators/migration_generator/migration_generator.rb +0 -67
  40. data/lib/generators/migration_generator/templates/db/migrations/<%=@migration_name%>.rb.template +0 -31
  41. data/lib/generators/model_column.rb +0 -55
  42. data/lib/generators/model_generator/manifest.yml +0 -11
  43. data/lib/generators/model_generator/model_generator.rb +0 -93
  44. data/lib/generators/model_generator/templates/active_record.rb.template +0 -2
  45. data/lib/generators/model_generator/templates/data_mapper.rb.template +0 -11
  46. data/lib/generators/model_generator/templates/test.rb.template +0 -9
  47. data/lib/generators/scaffold_generator/manifest.yml +0 -31
  48. data/lib/generators/scaffold_generator/scaffold_generator.rb +0 -43
  49. data/lib/generators/scaffold_generator/templates/generic/app/controllers/controller.rb.template +0 -50
  50. data/lib/generators/scaffold_generator/templates/generic/app/views/edit.html.erb.template +0 -20
  51. data/lib/generators/scaffold_generator/templates/generic/app/views/index.html.erb.template +0 -41
  52. data/lib/generators/scaffold_generator/templates/generic/app/views/new.html.erb.template +0 -19
  53. data/lib/generators/scaffold_generator/templates/generic/app/views/show.html.erb.template +0 -12
  54. data/lib/generators/scaffold_generator/templates/no_orm/controller.rb.template +0 -38
  55. data/lib/generators/scaffold_generator/templates/test.rb.template +0 -9
  56. data/lib/sea_level/helpers/view_helpers/orm_helpers.rb +0 -87
  57. data/lib/tasks/db_tasks.rake +0 -94
  58. data/lib/utils/html.rb +0 -104
@@ -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