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
         |