mack 0.7.0.1 → 0.7.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/CHANGELOG +34 -0
- data/README +6 -13
- data/bin/env_handler.rb +10 -0
- data/bin/gem_load_path.rb +25 -0
- data/bin/mack +1 -0
- data/bin/mackery +22 -0
- data/bin/mackery-console +16 -0
- data/bin/mackery-server +41 -0
- data/lib/mack.rb +7 -1
- data/lib/mack/controller/controller.rb +5 -4
- data/lib/mack/controller/request.rb +19 -1
- data/lib/mack/errors/errors.rb +8 -8
- data/lib/mack/generators/controller_generator/controller_generator.rb +1 -1
- data/lib/mack/generators/mack_application_generator/templates/app/views/layouts/application.html.erb.template +1 -2
- data/lib/mack/generators/mack_application_generator/templates/config/app_config/default.yml.template +2 -0
- data/lib/mack/generators/mack_application_generator/templates/config/database.yml.template +6 -6
- data/lib/mack/generators/passenger_generator/passenger_generator.rb +2 -0
- data/lib/mack/generators/passenger_generator/templates/config.ru.template +5 -0
- data/lib/mack/generators/passenger_generator/templates/tmp/README.template +2 -0
- data/lib/mack/initialization/application.rb +39 -36
- data/lib/mack/initialization/boot_loader.rb +174 -0
- data/lib/mack/initialization/configuration.rb +83 -95
- data/lib/mack/initialization/console.rb +11 -0
- data/lib/mack/initialization/environment.rb +16 -0
- data/lib/mack/initialization/helpers.rb +26 -24
- data/lib/mack/initialization/logging.rb +81 -81
- data/lib/mack/initialization/plugins.rb +14 -11
- data/lib/mack/initialization/server/simple_server.rb +3 -3
- data/lib/mack/rendering/type/base.rb +1 -1
- data/lib/mack/rendering/type/layout.rb +1 -1
- data/lib/mack/rendering/type/partial.rb +1 -1
- data/lib/mack/rendering/type/public.rb +1 -1
- data/lib/mack/rendering/type/template.rb +1 -1
- data/lib/mack/runner.rb +2 -2
- data/lib/mack/runner_helpers/session.rb +3 -3
- data/lib/mack/sessions/cookie_session_store.rb +44 -0
- data/lib/mack/{controller → sessions}/session.rb +0 -0
- data/lib/mack/sessions/session_store_base.rb +62 -0
- data/lib/mack/sessions/test_session_store.rb +38 -0
- data/lib/mack/tasks/mack_server_tasks.rake +8 -21
- data/lib/mack/tasks/mack_tasks.rake +33 -6
- data/lib/mack/tasks/rake_rules.rake +8 -0
- data/lib/mack/tasks/test_tasks.rake +39 -15
- data/lib/mack/testing/helpers.rb +6 -39
- data/lib/mack/utils/content_length_handler.rb +45 -0
- data/lib/mack/utils/forgery_detector.rb +152 -0
- data/lib/mack/utils/gem_manager.rb +22 -1
- data/lib/mack/utils/paths.rb +154 -0
- data/lib/mack/utils/server.rb +8 -6
- data/lib/mack/version.rb +1 -1
- data/lib/mack/view_helpers/asset_helpers.rb +50 -0
- data/lib/mack/view_helpers/form_helpers.rb +52 -6
- data/lib/mack/view_helpers/link_helpers.rb +6 -3
- data/lib/mack_app.rb +12 -14
- data/lib/mack_core.rb +35 -14
- data/lib/mack_tasks.rb +35 -20
- metadata +23 -27
- data/lib/mack/tasks/cachetastic_tasks.rake +0 -58
data/CHANGELOG
CHANGED
@@ -1,3 +1,37 @@
|
|
1
|
+
=== 0.7.1
|
2
|
+
* [#153] Emails with just a single 'part' are now being sent correctly.
|
3
|
+
* [#147] Added :confirm to button helpers.
|
4
|
+
* [#146] [Diogo Almeida] Added :disable_with to submit_button form helper.
|
5
|
+
* [#145] Added rake generate:<generator_name>:desc task to 'describe' a Genosaurus generator
|
6
|
+
* [#144] INCOMPATIBILITY NOTICE: rake server is no more. Please use mackery server instead.
|
7
|
+
* [#142] INCOMPATIBILITY NOTICE: rake console is no more. Please use mackery console instead.
|
8
|
+
* [#140] Added Mack::BootLoader
|
9
|
+
* [#139] Added ability to change the pattern for test files
|
10
|
+
* [#137] Added subdomains method on request.
|
11
|
+
* [#130] Added ability to 'reload' the console
|
12
|
+
* [#129] DataMapper 0.9.5 support
|
13
|
+
* [#128] Updated json_pure to 1.1.3 and removed ruby-debug dependency
|
14
|
+
* [#127] Moved mack-paths into core
|
15
|
+
* [#126] XSS Prevention
|
16
|
+
* [#125] Cookie store is now the default session store, not cachetastic
|
17
|
+
* [#124] Opened up the session store API
|
18
|
+
* [#122] Added DataMapper session store.
|
19
|
+
* [#121] Cookie session store support.
|
20
|
+
* [#120] Added PassengerGenerator to generate the necessary files to run Mack with Passenger Phusion (mod_rails)
|
21
|
+
* [#118] Mack/mack-more can be loaded from vendor/framework/mack and vendor/framework/mack-more
|
22
|
+
* [#117] Added rake task: mack:freeze:edge
|
23
|
+
* [#107] Updated to Rack 0.4.0
|
24
|
+
* [#95] Removed deprecated model_* methods
|
25
|
+
* [#94] Removed deprecated submit_tag
|
26
|
+
* [#40] Added Mack::Utils::ContentLengthHandler so response will now have 'Content-Length' in its header.
|
27
|
+
* [#21] Asset Hosts
|
28
|
+
* gem: rack 0.4.0
|
29
|
+
* gem: json_pure 1.1.3
|
30
|
+
* gem: data_mapper 0.9.5
|
31
|
+
* gem: genosaurus 1.2.4
|
32
|
+
* gem: ezcrypto 0.7
|
33
|
+
* gem: facets 2.4.4
|
34
|
+
|
1
35
|
=== 0.7.0.1
|
2
36
|
gem: application_configuration 1.5.3
|
3
37
|
gem: cachetastic 1.7.4
|
data/README
CHANGED
@@ -12,23 +12,16 @@ First things first, let's generate your application:
|
|
12
12
|
$ mack <app_name>
|
13
13
|
|
14
14
|
To run a Mack application:
|
15
|
-
$
|
15
|
+
$ mackery server
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
* Mongrel
|
20
|
-
* WEBrick
|
21
|
-
|
22
|
-
rake script:server takes the following options:
|
23
|
-
$ rake server PORT=<port> Mack.env=<environment> HANDLER=<rack_handler>
|
24
|
-
|
25
|
-
The port and rack_handler flags don't apply if you're using Thin[http://code.macournoyer.com/thin] to run the app, which is the default if it is installed. Use the thin.yml file in your application's config directory to configure Thin. The rack_handler one will allow you to switch which server is used to run the app. See Rack for more Rack::Handlers.
|
17
|
+
mackery server takes the following options:
|
18
|
+
$ mackery server -p <port> -e <environment> -h <rack_handler>
|
26
19
|
|
27
|
-
The
|
28
|
-
$ rake mack:server:start#<environment>
|
20
|
+
The rack_handler one will allow you to switch which server is used to run the app. See Rack for more Rack::Handlers.
|
29
21
|
|
30
22
|
You can also run:
|
31
|
-
$
|
23
|
+
$ mackery console
|
24
|
+
|
32
25
|
This will give you console level access to your application.
|
33
26
|
|
34
27
|
|
data/bin/env_handler.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
if ARGV.include?("-e")
|
2
|
+
ENV["MACK_ENV"] = ARGV[ARGV.index("-e") + 1] unless ENV["MACK_ENV"]
|
3
|
+
end
|
4
|
+
|
5
|
+
@mack_gem_version = nil
|
6
|
+
begin
|
7
|
+
rakefile = File.read(File.join(FileUtils.pwd, 'Rakefile'))
|
8
|
+
@mack_gem_version = rakefile.match(/gem.['"]mack['"].+['"](.+)['"]/).captures.first
|
9
|
+
rescue Exception => e
|
10
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require File.join(File.dirname(__FILE__), "env_handler")
|
3
|
+
|
4
|
+
vendor_path = File.join(FileUtils.pwd, 'vendor')
|
5
|
+
|
6
|
+
mack_path = File.join(vendor_path, 'framework', 'mack', 'lib')
|
7
|
+
mack_more_path = File.join(vendor_path, 'framework', 'mack-more')
|
8
|
+
# gem_path = File.join(vendor_path, 'gems')
|
9
|
+
|
10
|
+
if File.exists?(mack_path)
|
11
|
+
$:.insert(0, File.expand_path(mack_path))
|
12
|
+
else
|
13
|
+
require 'rubygems'
|
14
|
+
if @mack_gem_version
|
15
|
+
gem 'mack', @mack_gem_version
|
16
|
+
else
|
17
|
+
gem 'mack'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
if File.exists?(mack_more_path)
|
22
|
+
Dir.glob(File.join(mack_more_path, '*')).each_with_index do |d, i|
|
23
|
+
$:.insert(i+1, File.expand_path(File.join(d, 'lib')))
|
24
|
+
end
|
25
|
+
end
|
data/bin/mack
CHANGED
data/bin/mackery
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
|
3
|
+
@app = ARGV[0]
|
4
|
+
if @app.nil?
|
5
|
+
@app = "server"
|
6
|
+
end
|
7
|
+
|
8
|
+
ARGV.shift # get rid of the app name, cause we don't need it.
|
9
|
+
@app = @app.strip.downcase
|
10
|
+
|
11
|
+
case @app
|
12
|
+
when "start"
|
13
|
+
@app = "server"
|
14
|
+
else
|
15
|
+
end
|
16
|
+
|
17
|
+
require File.join(File.dirname(__FILE__), "env_handler")
|
18
|
+
|
19
|
+
cmd = "mackery-#{@app} #{ARGV.join(" ")}"
|
20
|
+
cmd << " _#{@mack_gem_version}_" if @mack_gem_version
|
21
|
+
# puts cmd
|
22
|
+
system cmd
|
data/bin/mackery-console
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
# require File.join(File.dirname(__FILE__), "options_handler")
|
3
|
+
|
4
|
+
require File.join(File.dirname(__FILE__), "env_handler")
|
5
|
+
|
6
|
+
require File.join(File.dirname(__FILE__), "gem_load_path")
|
7
|
+
|
8
|
+
libs = []
|
9
|
+
libs << "-r irb/completion"
|
10
|
+
mack_lib_path = File.join(FileUtils.pwd, 'vendor', 'framework', 'mack', 'lib', 'mack')
|
11
|
+
if File.exists?(mack_lib_path)
|
12
|
+
libs << "-r #{File.join(mack_lib_path, 'initialization', 'console')}"
|
13
|
+
else
|
14
|
+
libs << "-r #{File.join(File.dirname(__FILE__), '..', 'lib', 'mack', 'initialization', 'console')}"
|
15
|
+
end
|
16
|
+
system "irb #{libs.join(" ")} --simple-prompt"
|
data/bin/mackery-server
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
# require File.join(File.dirname(__FILE__), "options_handler")
|
3
|
+
|
4
|
+
require File.join(File.dirname(__FILE__), "env_handler")
|
5
|
+
|
6
|
+
require File.join(File.dirname(__FILE__), "gem_load_path")
|
7
|
+
|
8
|
+
require 'rubygems'
|
9
|
+
|
10
|
+
require 'fileutils'
|
11
|
+
require 'thin'
|
12
|
+
|
13
|
+
require 'mack'
|
14
|
+
|
15
|
+
handler = "thin"
|
16
|
+
|
17
|
+
if ARGV.include?("-h")
|
18
|
+
handler = ARGV[ARGV.index("-h") + 1]
|
19
|
+
ARGV.delete("-h")
|
20
|
+
ARGV.delete(handler)
|
21
|
+
end
|
22
|
+
|
23
|
+
if handler == "thin"
|
24
|
+
# thin_opts = ["start", ARGV]
|
25
|
+
thin_opts = []
|
26
|
+
if ARGV[0] == "start" || ARGV[0] == "stop" || ARGV[0] == "restart"
|
27
|
+
thin_opts << ARGV[0]
|
28
|
+
ARGV.shift
|
29
|
+
else
|
30
|
+
thin_opts << "start"
|
31
|
+
end
|
32
|
+
thin_opts << ARGV
|
33
|
+
# puts "thin_opts: #{thin_opts.flatten.inspect}"
|
34
|
+
Thin::Runner.new(thin_opts.flatten.reject{|a| a.match(/^_[\d\.]+_$/)}).run!
|
35
|
+
else
|
36
|
+
port = 3000
|
37
|
+
if ARGV.include?("-p")
|
38
|
+
port = ARGV[ARGV.index("-p") + 1]
|
39
|
+
end
|
40
|
+
Mack::SimpleServer.run(:handler => handler, :port => port, :environment => ENV["MACK_ENV"])
|
41
|
+
end
|
data/lib/mack.rb
CHANGED
@@ -348,9 +348,7 @@ module Mack
|
|
348
348
|
# end
|
349
349
|
# end
|
350
350
|
#
|
351
|
-
# The default layout is "#{Mack.root}/app/views/layouts/application
|
352
|
-
#
|
353
|
-
# If a layout is specified, and it doesn't exist a Mack::Errors::UnknownLayout error will be raised.
|
351
|
+
# The default layout is "#{Mack.root}/app/views/layouts/application.<format>.erb".
|
354
352
|
def layout(lay)
|
355
353
|
self.class_eval do
|
356
354
|
define_method(:layout) do
|
@@ -367,11 +365,14 @@ module Mack
|
|
367
365
|
def self.included(base)
|
368
366
|
Mack::Controller::Registry.add(base)
|
369
367
|
base.extend(ClassMethods)
|
368
|
+
base.extend(Mack::Utils::ForgeryDetector::ClassMethods)
|
369
|
+
base.before_filter :detect_forgery
|
370
370
|
end
|
371
371
|
|
372
372
|
# Houses a repository of all the controllers in the system.
|
373
373
|
class Registry < Mack::Utils::RegistryList
|
374
|
-
end
|
374
|
+
end
|
375
375
|
|
376
|
+
include Mack::Utils::ForgeryDetector
|
376
377
|
end # Controller
|
377
378
|
end # Mack
|
@@ -51,12 +51,26 @@ module Mack
|
|
51
51
|
u
|
52
52
|
end
|
53
53
|
|
54
|
+
# Returns all the subdomains as an array, so ["dev", "www"] would be returned for
|
55
|
+
# "dev.www.mackframework.com". You can specify a different tld_length, such as 2
|
56
|
+
# to catch ["www"] instead of ["www", "mackframework"] in "www.mackframework.co.uk".
|
57
|
+
#
|
58
|
+
# Thanks Ruby on Rails for this.
|
59
|
+
def subdomains(tld_length = 1)
|
60
|
+
return [] unless named_host?(host)
|
61
|
+
parts = host.split('.')
|
62
|
+
parts[0..-(tld_length+2)]
|
63
|
+
end
|
64
|
+
|
54
65
|
# Examples:
|
55
66
|
# http://example.org:80
|
56
67
|
# https://example.org:443
|
57
68
|
# http://example.org:8080
|
58
69
|
def full_host_with_port
|
59
|
-
full_host
|
70
|
+
unless full_host.match(/:#{self.port}/)
|
71
|
+
return full_host + ":#{self.port}"
|
72
|
+
end
|
73
|
+
return full_host
|
60
74
|
end
|
61
75
|
|
62
76
|
# Gives access to the request parameters. This includes 'get' parameters, 'post' parameters
|
@@ -81,6 +95,10 @@ module Mack
|
|
81
95
|
end
|
82
96
|
|
83
97
|
private
|
98
|
+
def named_host?(host)
|
99
|
+
!(host.nil? || /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.match(host))
|
100
|
+
end
|
101
|
+
|
84
102
|
def parse_params(ps)
|
85
103
|
|
86
104
|
# look for date time selects:
|
data/lib/mack/errors/errors.rb
CHANGED
@@ -60,14 +60,6 @@ module Mack
|
|
60
60
|
end
|
61
61
|
end # UndefinedRoute
|
62
62
|
|
63
|
-
# Raised when a layout is specified that doesn't exist.
|
64
|
-
class UnknownLayout < StandardError
|
65
|
-
# Takes a layout name.
|
66
|
-
def initialize(layout)
|
67
|
-
super("Could not find layout in: #{File.join(Mack.root, "app", "views", layout.to_s + ".html.erb")}")
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
63
|
# Raised if an unsupported render option is supplied.
|
72
64
|
class UnknownRenderOption < StandardError
|
73
65
|
# Takes a render option.
|
@@ -111,5 +103,13 @@ module Mack
|
|
111
103
|
end
|
112
104
|
end
|
113
105
|
|
106
|
+
# Raised if a request (other than GET request) has an invalid authenticity token
|
107
|
+
class InvalidAuthenticityToken < StandardError
|
108
|
+
# Takes the mismatched token
|
109
|
+
def initialize(token)
|
110
|
+
super("TOKEN: #{token.to_s} is an invalid request authenticity token.")
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
114
|
end # Errors
|
115
115
|
end # Mack
|
@@ -24,7 +24,7 @@ class ControllerGenerator < Genosaurus
|
|
24
24
|
private
|
25
25
|
def update_routes_file # :nodoc:
|
26
26
|
unless @actions.empty?
|
27
|
-
routes =
|
27
|
+
routes = Mack::Paths.config("routes.rb")
|
28
28
|
rf = File.open(routes).read
|
29
29
|
unless rf.match(".resource :#{@name_plural}")
|
30
30
|
puts "Updating routes.rb"
|
@@ -1,5 +1,4 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
2
|
|
4
3
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
4
|
<head>
|
data/lib/mack/generators/mack_application_generator/templates/config/app_config/default.yml.template
CHANGED
@@ -25,6 +25,8 @@ mack::session_id: _<%= @options["app"].downcase %>_session_id
|
|
25
25
|
|
26
26
|
mack::testing_framework: <%= @options["testing_framework"] %>
|
27
27
|
|
28
|
+
default_secret_key: <%= String.randomize(80) %>
|
29
|
+
|
28
30
|
# Mack provides RJS support through mack-javascript gem.
|
29
31
|
# In order to have RJS support, you will need to perform the following steps:
|
30
32
|
# 1. Uncomment the code below, and make sure that the framework is the one you want to use
|
@@ -53,17 +53,17 @@ when "data_mapper"
|
|
53
53
|
development:
|
54
54
|
default:
|
55
55
|
adapter: sqlite3
|
56
|
-
database: <%%=
|
56
|
+
database: <%%= Mack::Paths.db("<%= @options["app"].downcase %>_development.db") %>
|
57
57
|
|
58
58
|
test:
|
59
59
|
default:
|
60
60
|
adapter: sqlite3
|
61
|
-
database: <%%=
|
61
|
+
database: <%%= Mack::Paths.db("<%= @options["app"].downcase %>_test.db") %>
|
62
62
|
|
63
63
|
production:
|
64
64
|
default:
|
65
65
|
adapter: sqlite3
|
66
|
-
database: <%%=
|
66
|
+
database: <%%= Mack::Paths.db("<%= @options["app"].downcase %>_production.db") %>
|
67
67
|
|
68
68
|
<% else -%>
|
69
69
|
# development:
|
@@ -89,13 +89,13 @@ production:
|
|
89
89
|
|
90
90
|
development:
|
91
91
|
adapter: sqlite3
|
92
|
-
database: <%%=
|
92
|
+
database: <%%= Mack::Paths.db("<%= @options["app"].downcase %>_development.db") %>
|
93
93
|
|
94
94
|
test:
|
95
95
|
adapter: sqlite3
|
96
|
-
database: <%%=
|
96
|
+
database: <%%= Mack::Paths.db("<%= @options["app"].downcase %>_test.db") %>
|
97
97
|
|
98
98
|
production:
|
99
99
|
adapter: sqlite3
|
100
|
-
database: <%%=
|
100
|
+
database: <%%= Mack::Paths.db("<%= @options["app"].downcase %>_production.db") %>
|
101
101
|
<% end -%>
|
@@ -1,46 +1,49 @@
|
|
1
|
-
|
2
|
-
Mack.logger.debug "Initializing custom initializers..." unless app_config.log.disable_initialization_logging
|
3
|
-
Dir.glob(
|
4
|
-
|
1
|
+
boot_load(:initializers) do
|
2
|
+
Mack.logger.debug "Initializing custom initializers..." unless app_config.log.disable_initialization_logging
|
3
|
+
Dir.glob(Mack::Paths.initializers("**/*.rb")) do |d|
|
4
|
+
require d
|
5
|
+
end
|
5
6
|
end
|
6
|
-
Mack.logger.debug "Initializing custom gems..." unless app_config.log.disable_initialization_logging
|
7
|
-
Mack::Utils::GemManager.instance.do_requires
|
8
|
-
|
9
|
-
# require 'plugins':
|
10
|
-
Mack.logger.debug "Initializing plugins..." unless app_config.log.disable_initialization_logging
|
11
|
-
require File.join(File.dirname(__FILE__), "plugins.rb")
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
boot_load(:lib, :plugins, :gems) do
|
9
|
+
# require 'lib' files:
|
10
|
+
Mack.logger.debug "Initializing lib classes..." unless app_config.log.disable_initialization_logging
|
11
|
+
Dir.glob(Mack::Paths.lib("**/*.rb")).each do |d|
|
12
|
+
require d
|
13
|
+
end
|
14
|
+
end
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
require
|
16
|
+
boot_load(:default_controller, :lib) do
|
17
|
+
# make sure that default_controller is available to other controllers
|
18
|
+
path = Mack::Paths.controllers("default_controller.rb")
|
19
|
+
require path if File.exists?(path)
|
21
20
|
end
|
22
21
|
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
boot_load(:routes) do
|
23
|
+
# set up routes:
|
24
|
+
Mack.logger.debug "Initializing routes..." unless app_config.log.disable_initialization_logging
|
25
|
+
require Mack::Paths.config("routes")
|
26
|
+
end
|
26
27
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
rescue NameError => e
|
34
|
-
if e.message.match("uninitialized constant")
|
35
|
-
mod = e.message.gsub("uninitialized constant ", "")
|
36
|
-
x =%{
|
37
|
-
module ::#{mod}
|
38
|
-
end
|
39
|
-
}
|
40
|
-
eval(x)
|
28
|
+
boot_load(:app_files, :default_controller) do
|
29
|
+
# require 'app' files:
|
30
|
+
Mack.logger.debug "Initializing 'app' classes..." unless app_config.log.disable_initialization_logging
|
31
|
+
Dir.glob(Mack::Paths.app("**/*.rb")).each do |d|
|
32
|
+
# puts "d: #{d}"
|
33
|
+
begin
|
41
34
|
require d
|
42
|
-
|
43
|
-
|
35
|
+
rescue NameError => e
|
36
|
+
if e.message.match("uninitialized constant")
|
37
|
+
mod = e.message.gsub("uninitialized constant ", "")
|
38
|
+
x =%{
|
39
|
+
module ::#{mod}
|
40
|
+
end
|
41
|
+
}
|
42
|
+
eval(x)
|
43
|
+
require d
|
44
|
+
else
|
45
|
+
raise e
|
46
|
+
end
|
44
47
|
end
|
45
48
|
end
|
46
49
|
end
|