merb-gen 1.0.15 → 1.1.0.pre
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/Rakefile +59 -69
- data/bin/merb-gen +14 -2
- data/lib/generators/fcgi.rb +16 -0
- data/lib/generators/merb/merb_core.rb +14 -12
- data/lib/generators/merb/merb_flat.rb +11 -6
- data/lib/generators/merb/merb_stack.rb +14 -22
- data/lib/generators/merb/merb_very_flat.rb +32 -11
- data/lib/generators/passenger.rb +15 -0
- data/lib/generators/resource_controller.rb +1 -1
- data/lib/generators/templates/application/common/Gemfile +12 -0
- data/lib/generators/templates/application/common/Rakefile +10 -1
- data/lib/generators/templates/application/common/dotgitignore +3 -3
- data/lib/generators/templates/application/common/merb +20 -0
- data/lib/generators/templates/application/merb_core/autotest/merb_rspec.rb +9 -9
- data/lib/generators/templates/application/merb_core/config/init.rb +3 -5
- data/lib/generators/templates/application/merb_core/spec/spec.opts +1 -1
- data/lib/generators/templates/application/merb_core/spec/spec_helper.rb +9 -7
- data/lib/generators/templates/application/merb_core/test/test_helper.rb +9 -7
- data/lib/generators/templates/application/merb_flat/application.rbt +3 -0
- data/lib/generators/templates/application/merb_flat/config/init.rb +23 -19
- data/lib/generators/templates/application/merb_flat/spec/spec_helper.rb +8 -6
- data/lib/generators/templates/application/merb_flat/test/test_helper.rb +9 -7
- data/lib/generators/templates/application/merb_plugin/Rakefile +35 -4
- data/lib/generators/templates/application/merb_stack/Gemfile +48 -0
- data/lib/generators/templates/application/merb_stack/autotest/merb_rspec.rb +7 -7
- data/lib/generators/templates/application/merb_stack/config/init.rb +2 -2
- data/lib/generators/templates/application/merb_stack/config.ru +23 -0
- data/lib/generators/templates/application/merb_stack/spec/spec.opts +1 -1
- data/lib/generators/templates/application/merb_stack/spec/spec_helper.rb +9 -7
- data/lib/generators/templates/application/merb_stack/test/test_helper.rb +9 -7
- data/lib/generators/templates/application/merb_very_flat/application.rbt +1 -8
- data/lib/generators/templates/application/merb_very_flat/spec/spec_helper.rb +8 -6
- data/lib/generators/templates/application/merb_very_flat/test/test_helper.rb +9 -7
- data/lib/generators/templates/{application/common → component/fcgi}/dothtaccess +1 -2
- data/lib/generators/templates/{application/merb_stack/public → component/fcgi}/merb.fcgi +10 -4
- data/lib/generators/templates/component/model/spec/models/%file_name%_spec.rb +1 -1
- data/lib/merb-gen/app_generator.rb +58 -0
- data/lib/merb-gen/generator.rb +1 -1
- data/lib/merb-gen/version.rb +17 -0
- data/lib/merb-gen.rb +27 -25
- data/spec/controller_spec.rb +1 -1
- data/spec/fcgi_spec.rb +24 -0
- data/spec/generator_spec.rb +1 -1
- data/spec/layout_spec.rb +1 -1
- data/spec/merb_core_spec.rb +17 -5
- data/spec/merb_flat_spec.rb +10 -1
- data/spec/merb_plugin_spec.rb +3 -3
- data/spec/merb_stack_spec.rb +23 -10
- data/spec/merb_very_flat_spec.rb +13 -2
- data/spec/migration_spec.rb +1 -1
- data/spec/model_spec.rb +1 -1
- data/spec/named_generator_spec.rb +1 -1
- data/spec/namespaced_generator_spec.rb +1 -1
- data/spec/part_controller_spec.rb +1 -1
- data/spec/passenger_spec.rb +20 -0
- data/spec/resource_controller_spec.rb +1 -1
- data/spec/resource_spec.rb +1 -1
- data/spec/session_migration_spec.rb +1 -1
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +53 -4
- metadata +78 -45
- data/lib/generators/templates/application/common/doc.thor +0 -149
- data/lib/generators/templates/application/common/merb_thor/app_script.rb +0 -31
- data/lib/generators/templates/application/common/merb_thor/common.rb +0 -68
- data/lib/generators/templates/application/common/merb_thor/gem_ext.rb +0 -125
- data/lib/generators/templates/application/common/merb_thor/main.thor +0 -151
- data/lib/generators/templates/application/common/merb_thor/ops.rb +0 -93
- data/lib/generators/templates/application/common/merb_thor/utils.rb +0 -40
- data/lib/generators/templates/application/merb_core/public/merb.fcgi +0 -22
- data/lib/generators/templates/application/merb_stack/config/dependencies.rb +0 -34
- data/lib/generators/thor.rb +0 -33
    
        data/Rakefile
    CHANGED
    
    | @@ -1,78 +1,68 @@ | |
| 1 | 
            -
            require  | 
| 2 | 
            -
             | 
| 3 | 
            -
            ##############################################################################
         | 
| 4 | 
            -
            # Package && release
         | 
| 5 | 
            -
            ##############################################################################
         | 
| 6 | 
            -
            RUBY_FORGE_PROJECT  = "merb"
         | 
| 7 | 
            -
            PROJECT_URL         = "http://merbivore.com"
         | 
| 8 | 
            -
            PROJECT_SUMMARY     = "Generators suite for Merb."
         | 
| 9 | 
            -
            PROJECT_DESCRIPTION = PROJECT_SUMMARY
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            GEM_AUTHOR = "Jonas Nicklas"
         | 
| 12 | 
            -
            GEM_EMAIL  = "jonas.nicklas@gmail.com"
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            GEM_NAME    = "merb-gen"
         | 
| 15 | 
            -
            PKG_BUILD   = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
         | 
| 16 | 
            -
            GEM_VERSION = Merb::VERSION + PKG_BUILD
         | 
| 17 | 
            -
             | 
| 18 | 
            -
            RELEASE_NAME    = "REL #{GEM_VERSION}"
         | 
| 19 | 
            -
             | 
| 20 | 
            -
            require "extlib/tasks/release"
         | 
| 21 | 
            -
             | 
| 22 | 
            -
            spec = Gem::Specification.new do |s|
         | 
| 23 | 
            -
              s.rubyforge_project = RUBY_FORGE_PROJECT
         | 
| 24 | 
            -
              s.name = GEM_NAME
         | 
| 25 | 
            -
              s.version = GEM_VERSION
         | 
| 26 | 
            -
              s.platform = Gem::Platform::RUBY
         | 
| 27 | 
            -
              s.has_rdoc = true
         | 
| 28 | 
            -
              s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
         | 
| 29 | 
            -
              s.summary = PROJECT_SUMMARY
         | 
| 30 | 
            -
              s.description = PROJECT_DESCRIPTION
         | 
| 31 | 
            -
              s.author = GEM_AUTHOR
         | 
| 32 | 
            -
              s.email = GEM_EMAIL
         | 
| 33 | 
            -
              s.homepage = PROJECT_URL
         | 
| 34 | 
            -
              s.bindir = "bin"
         | 
| 35 | 
            -
              s.executables = %w( merb-gen )
         | 
| 36 | 
            -
             | 
| 37 | 
            -
              s.add_dependency "merb-core", ">= #{Merb::VERSION}"
         | 
| 38 | 
            -
              s.add_dependency "templater", ">= 0.3.3"
         | 
| 39 | 
            -
             | 
| 40 | 
            -
              s.require_path = 'lib'
         | 
| 41 | 
            -
              s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,bin,spec,merb}/**/*")
         | 
| 42 | 
            -
            end
         | 
| 1 | 
            +
            require 'rubygems'
         | 
| 2 | 
            +
            require 'rake'
         | 
| 43 3 |  | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
            end
         | 
| 4 | 
            +
            # Assume a typical dev checkout to fetch the current merb-core version
         | 
| 5 | 
            +
            require File.expand_path('../../merb-core/lib/merb-core/version', __FILE__)
         | 
| 47 6 |  | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
              Merb::RakeHelper.install(GEM_NAME, :version => GEM_VERSION)
         | 
| 51 | 
            -
            end
         | 
| 7 | 
            +
            # Load this library's version information
         | 
| 8 | 
            +
            require File.expand_path('../lib/merb-gen/version', __FILE__)
         | 
| 52 9 |  | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 55 | 
            -
               | 
| 56 | 
            -
             | 
| 10 | 
            +
            begin
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              gem 'jeweler', '~> 1.4'
         | 
| 13 | 
            +
              require 'jeweler'
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              Jeweler::Tasks.new do |gemspec|
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                gemspec.version     = Merb::Generators::VERSION
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                gemspec.name        = "merb-gen"
         | 
| 20 | 
            +
                gemspec.description = "Merb plugin containing useful code generators"
         | 
| 21 | 
            +
                gemspec.summary     = "Merb plugin that provides a suite of code generators for Merb."
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                gemspec.authors     = [ "Jonas Nicklas" ]
         | 
| 24 | 
            +
                gemspec.email       = "jonas.nicklas@gmail.com"
         | 
| 25 | 
            +
                gemspec.homepage    = "http://merbivore.com/"
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                gemspec.files       = %w(LICENSE Rakefile README TODO) + Dir['{bin,lib,spec}/**/*']
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                # Runtime dependencies
         | 
| 30 | 
            +
                gemspec.add_dependency('merb-core', "~> #{Merb::VERSION}")
         | 
| 31 | 
            +
                gemspec.add_dependency "templater", ">= 1.0.0"
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                # Development dependencies
         | 
| 34 | 
            +
                gemspec.add_development_dependency 'rspec', '>= 1.2.9'
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                # Executable files
         | 
| 37 | 
            +
                gemspec.executables = 'merb-gen'
         | 
| 57 38 |  | 
| 58 | 
            -
            desc "Create a gemspec file"
         | 
| 59 | 
            -
            task :gemspec do
         | 
| 60 | 
            -
              File.open("#{GEM_NAME}.gemspec", "w") do |file|
         | 
| 61 | 
            -
                file.puts spec.to_ruby
         | 
| 62 39 | 
             
              end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
              Jeweler::GemcutterTasks.new
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            rescue LoadError
         | 
| 44 | 
            +
              puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
         | 
| 63 45 | 
             
            end
         | 
| 64 46 |  | 
| 65 | 
            -
             | 
| 66 | 
            -
            Spec::Rake::SpecTask.new( | 
| 67 | 
            -
               | 
| 68 | 
            -
               | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 73 | 
            -
             | 
| 74 | 
            -
               | 
| 47 | 
            +
            require 'spec/rake/spectask'
         | 
| 48 | 
            +
            Spec::Rake::SpecTask.new(:spec) do |spec|
         | 
| 49 | 
            +
              spec.spec_opts << '--options' << 'spec/spec.opts' if File.exists?('spec/spec.opts')
         | 
| 50 | 
            +
              spec.libs << 'lib' << 'spec'
         | 
| 51 | 
            +
              spec.spec_files = FileList['spec/**/*_spec.rb']
         | 
| 52 | 
            +
            end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            Spec::Rake::SpecTask.new(:rcov) do |spec|
         | 
| 55 | 
            +
              spec.libs << 'lib' << 'spec'
         | 
| 56 | 
            +
              spec.pattern = 'spec/**/*_spec.rb'
         | 
| 57 | 
            +
              spec.rcov = true
         | 
| 75 58 | 
             
            end
         | 
| 76 59 |  | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 60 | 
            +
            task :default => :spec
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            require 'rake/rdoctask'
         | 
| 63 | 
            +
            Rake::RDocTask.new do |rdoc|
         | 
| 64 | 
            +
              rdoc.rdoc_dir = 'rdoc'
         | 
| 65 | 
            +
              rdoc.title = "test_gem #{Merb::Generators::VERSION}"
         | 
| 66 | 
            +
              rdoc.rdoc_files.include('README*')
         | 
| 67 | 
            +
              rdoc.rdoc_files.include('lib/**/*.rb')
         | 
| 68 | 
            +
            end
         | 
    
        data/bin/merb-gen
    CHANGED
    
    | @@ -1,6 +1,18 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 2 |  | 
| 3 | 
            -
            require 'rubygems'
         | 
| 4 3 | 
             
            require 'merb-gen'
         | 
| 5 4 |  | 
| 6 | 
            -
             | 
| 5 | 
            +
            begin
         | 
| 6 | 
            +
              # Just in case the bundle was locked
         | 
| 7 | 
            +
              # This shouldn't happen in a dev environment but lets be safe
         | 
| 8 | 
            +
              require '.bundle/environment'
         | 
| 9 | 
            +
            rescue LoadError
         | 
| 10 | 
            +
              begin
         | 
| 11 | 
            +
                require 'rubygems'
         | 
| 12 | 
            +
                require 'bundler'
         | 
| 13 | 
            +
                Bundler.setup
         | 
| 14 | 
            +
              rescue Bundler::GemfileNotFound
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
            end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            Merb::Generators.run_cli(Dir.pwd, 'merb-gen', Merb::VERSION, ARGV)
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            module Merb::Generators
         | 
| 2 | 
            +
              class FcgiGenerator < AppGenerator
         | 
| 3 | 
            +
                
         | 
| 4 | 
            +
                desc <<-DESC
         | 
| 5 | 
            +
                  Generates the configuration files needed to run Merb with FastCGI.
         | 
| 6 | 
            +
                DESC
         | 
| 7 | 
            +
                
         | 
| 8 | 
            +
                def self.source_root
         | 
| 9 | 
            +
                  File.join(super, 'component', 'fcgi')
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
                
         | 
| 12 | 
            +
                file :dothtaccess, "dothtaccess", File.join("public", ".htaccess")
         | 
| 13 | 
            +
                file :merbfcgi, "merb.fcgi", File.join("public", "merb.fcgi")
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
              add :fcgi, FcgiGenerator
         | 
| 16 | 
            +
            end
         | 
| @@ -44,7 +44,19 @@ module Merb | |
| 44 44 | 
             
                  # ==== Common directories & files
         | 
| 45 45 | 
             
                  #
         | 
| 46 46 |  | 
| 47 | 
            -
                  empty_directory : | 
| 47 | 
            +
                  empty_directory :lib_tasks, 'lib/tasks'
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  empty_directory :bin, 'bin'
         | 
| 50 | 
            +
                  template :merb do |template|
         | 
| 51 | 
            +
                    template.source = File.join(common_templates_dir, "merb")
         | 
| 52 | 
            +
                    template.destination = "bin/merb"
         | 
| 53 | 
            +
                  end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                  template :gemfile do |template|
         | 
| 56 | 
            +
                    template.source = File.join(common_templates_dir, "Gemfile")
         | 
| 57 | 
            +
                    template.destination = "Gemfile"
         | 
| 58 | 
            +
                  end
         | 
| 59 | 
            +
             | 
| 48 60 | 
             
                  template :rakefile do |template|
         | 
| 49 61 | 
             
                    template.source = File.join(common_templates_dir, "Rakefile")
         | 
| 50 62 | 
             
                    template.destination = "Rakefile"
         | 
| @@ -55,22 +67,12 @@ module Merb | |
| 55 67 | 
             
                    file.destination = ".gitignore"
         | 
| 56 68 | 
             
                  end
         | 
| 57 69 |  | 
| 58 | 
            -
                  file :htaccess do |file|
         | 
| 59 | 
            -
                    file.source = File.join(common_templates_dir, 'dothtaccess')
         | 
| 60 | 
            -
                    file.destination = 'public/.htaccess'
         | 
| 61 | 
            -
                  end
         | 
| 62 | 
            -
             | 
| 63 70 | 
             
                  directory :test_dir do |directory|
         | 
| 64 71 | 
             
                    dir    = testing_framework == :rspec ? "spec" : "test"
         | 
| 65 72 |  | 
| 66 73 | 
             
                    directory.source      = File.join(source_root, dir)
         | 
| 67 74 | 
             
                    directory.destination = dir
         | 
| 68 75 | 
             
                  end
         | 
| 69 | 
            -
                  
         | 
| 70 | 
            -
                  directory :thor_file do |directory|
         | 
| 71 | 
            -
                    directory.source = File.join(common_templates_dir, "merb_thor")
         | 
| 72 | 
            -
                    directory.destination = File.join("tasks", "merb.thor")
         | 
| 73 | 
            -
                  end
         | 
| 74 76 |  | 
| 75 77 | 
             
                  #
         | 
| 76 78 | 
             
                  # ==== Layout specific things
         | 
| @@ -83,7 +85,7 @@ module Merb | |
| 83 85 | 
             
                  glob! "config"
         | 
| 84 86 | 
             
                  glob! "doc",      []
         | 
| 85 87 | 
             
                  glob! "public"      
         | 
| 86 | 
            -
             | 
| 88 | 
            +
                  
         | 
| 87 89 | 
             
                  invoke :layout do |generator|
         | 
| 88 90 | 
             
                    generator.new(destination_root, options, 'application')
         | 
| 89 91 | 
             
                  end
         | 
| @@ -44,7 +44,17 @@ module Merb | |
| 44 44 | 
             
                  # ==== Common directories & files
         | 
| 45 45 | 
             
                  #
         | 
| 46 46 |  | 
| 47 | 
            -
                  empty_directory : | 
| 47 | 
            +
                  empty_directory :bin, 'bin'
         | 
| 48 | 
            +
                  template :merb do |template|
         | 
| 49 | 
            +
                    template.source = File.join(common_templates_dir, "merb")
         | 
| 50 | 
            +
                    template.destination = "bin/merb"
         | 
| 51 | 
            +
                  end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  template :gemfile do |template|
         | 
| 54 | 
            +
                    template.source = File.join(common_templates_dir, "Gemfile")
         | 
| 55 | 
            +
                    template.destination = "Gemfile"
         | 
| 56 | 
            +
                  end
         | 
| 57 | 
            +
             | 
| 48 58 | 
             
                  template :rakefile do |template|
         | 
| 49 59 | 
             
                    template.source = File.join(common_templates_dir, "Rakefile")
         | 
| 50 60 | 
             
                    template.destination = "Rakefile"
         | 
| @@ -62,11 +72,6 @@ module Merb | |
| 62 72 | 
             
                    directory.destination = dir
         | 
| 63 73 | 
             
                  end
         | 
| 64 74 |  | 
| 65 | 
            -
                  directory :thor_file do |directory|
         | 
| 66 | 
            -
                    directory.source = File.join(common_templates_dir, "merb_thor")
         | 
| 67 | 
            -
                    directory.destination = File.join("tasks", "merb.thor")
         | 
| 68 | 
            -
                  end
         | 
| 69 | 
            -
             | 
| 70 75 | 
             
                  #
         | 
| 71 76 | 
             
                  # ==== Layout specific things
         | 
| 72 77 | 
             
                  #
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            require 'merb-gen/version'
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module Merb
         | 
| 2 4 | 
             
              module Generators
         | 
| 3 5 | 
             
                class MerbStackGenerator < AppGenerator
         | 
| @@ -48,7 +50,14 @@ module Merb | |
| 48 50 | 
             
                  # ==== Common directories & files
         | 
| 49 51 | 
             
                  #
         | 
| 50 52 |  | 
| 51 | 
            -
                  empty_directory : | 
| 53 | 
            +
                  empty_directory :bin, 'bin'
         | 
| 54 | 
            +
                  template :merb do |template|
         | 
| 55 | 
            +
                    template.source = File.join(common_templates_dir, "merb")
         | 
| 56 | 
            +
                    template.destination = "bin/merb"
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                  empty_directory :lib_tasks, 'lib/tasks'
         | 
| 60 | 
            +
             | 
| 52 61 | 
             
                  template :rakefile do |template|
         | 
| 53 62 | 
             
                    template.source = File.join(common_templates_dir, "Rakefile")
         | 
| 54 63 | 
             
                    template.destination = "Rakefile"
         | 
| @@ -59,26 +68,11 @@ module Merb | |
| 59 68 | 
             
                    file.destination = ".gitignore"
         | 
| 60 69 | 
             
                  end
         | 
| 61 70 |  | 
| 62 | 
            -
                  file :htaccess do |file|
         | 
| 63 | 
            -
                    file.source = File.join(common_templates_dir, 'dothtaccess')
         | 
| 64 | 
            -
                    file.destination = 'public/.htaccess'
         | 
| 65 | 
            -
                  end
         | 
| 66 | 
            -
                  
         | 
| 67 | 
            -
                  file :doctask do |file|
         | 
| 68 | 
            -
                    file.source = File.join(common_templates_dir, 'doc.thor')
         | 
| 69 | 
            -
                    file.destination = 'tasks/doc.thor'
         | 
| 70 | 
            -
                  end
         | 
| 71 | 
            -
                  
         | 
| 72 71 | 
             
                  file :jquery do |file|
         | 
| 73 72 | 
             
                    file.source = File.join(common_templates_dir, 'jquery.js')
         | 
| 74 73 | 
             
                    file.destination = 'public/javascripts/jquery.js'
         | 
| 75 74 | 
             
                  end
         | 
| 76 75 |  | 
| 77 | 
            -
                  directory :thor_file do |directory|
         | 
| 78 | 
            -
                    directory.source = File.join(common_templates_dir, "merb_thor")
         | 
| 79 | 
            -
                    directory.destination = File.join("tasks", "merb.thor")
         | 
| 80 | 
            -
                  end
         | 
| 81 | 
            -
             | 
| 82 76 | 
             
                  directory :test_dir do |directory|
         | 
| 83 77 | 
             
                    dir = testing_framework == :rspec ? "spec" : "test"
         | 
| 84 78 |  | 
| @@ -89,17 +83,15 @@ module Merb | |
| 89 83 | 
             
                  #
         | 
| 90 84 | 
             
                  # ==== Layout specific things
         | 
| 91 85 | 
             
                  #
         | 
| 92 | 
            -
             | 
| 93 | 
            -
                   | 
| 94 | 
            -
                    Merb::VERSION
         | 
| 95 | 
            -
                  end
         | 
| 86 | 
            +
                  template :gemfile, "Gemfile", "Gemfile"
         | 
| 87 | 
            +
                  file :passenger_config, "config.ru"
         | 
| 96 88 |  | 
| 97 89 | 
             
                  def dm_gems_version
         | 
| 98 | 
            -
                    Merb:: | 
| 90 | 
            +
                    Merb::Generators::DM_VERSION_REQUIREMENT
         | 
| 99 91 | 
             
                  end
         | 
| 100 92 |  | 
| 101 93 | 
             
                  def do_gems_version
         | 
| 102 | 
            -
                    Merb:: | 
| 94 | 
            +
                    Merb::Generators::DO_VERSION_REQUIREMENT
         | 
| 103 95 | 
             
                  end
         | 
| 104 96 |  | 
| 105 97 | 
             
                  # empty array means all files are considered to be just
         | 
| @@ -1,6 +1,10 @@ | |
| 1 1 | 
             
            module Merb
         | 
| 2 2 | 
             
              module Generators
         | 
| 3 3 | 
             
                class MerbVeryFlatGenerator < AppGenerator
         | 
| 4 | 
            +
                  #
         | 
| 5 | 
            +
                  # ==== Paths
         | 
| 6 | 
            +
                  #
         | 
| 7 | 
            +
             | 
| 4 8 | 
             
                  def self.source_root
         | 
| 5 9 | 
             
                    File.join(super, 'application', 'merb_very_flat')
         | 
| 6 10 | 
             
                  end
         | 
| @@ -15,10 +19,13 @@ module Merb | |
| 15 19 | 
             
                  end
         | 
| 16 20 |  | 
| 17 21 | 
             
                  def common_templates_dir
         | 
| 18 | 
            -
                     | 
| 19 | 
            -
                                               'templates', 'application', 'common'))
         | 
| 22 | 
            +
                    self.class.common_templates_dir
         | 
| 20 23 | 
             
                  end
         | 
| 21 24 |  | 
| 25 | 
            +
                  #
         | 
| 26 | 
            +
                  # ==== Generator options
         | 
| 27 | 
            +
                  #
         | 
| 28 | 
            +
             | 
| 22 29 | 
             
                  option :testing_framework, :default => :rspec,
         | 
| 23 30 | 
             
                  :desc => 'Testing framework to use (one of: rspec, test_unit).'
         | 
| 24 31 | 
             
                  option :orm, :default => :none,
         | 
| @@ -33,6 +40,26 @@ module Merb | |
| 33 40 |  | 
| 34 41 | 
             
                  first_argument :name, :required => true, :desc => "Application name"
         | 
| 35 42 |  | 
| 43 | 
            +
                  #
         | 
| 44 | 
            +
                  # ==== Common directories & files
         | 
| 45 | 
            +
                  #
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  empty_directory :bin, 'bin'
         | 
| 48 | 
            +
                  template :merb do |template|
         | 
| 49 | 
            +
                    template.source = File.join(common_templates_dir, "merb")
         | 
| 50 | 
            +
                    template.destination = "bin/merb"
         | 
| 51 | 
            +
                  end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  template :gemfile do |template|
         | 
| 54 | 
            +
                    template.source = File.join(common_templates_dir, "Gemfile")
         | 
| 55 | 
            +
                    template.destination = "Gemfile"
         | 
| 56 | 
            +
                  end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                  template :rakefile do |template|
         | 
| 59 | 
            +
                    template.source = File.join(common_templates_dir, "Rakefile")
         | 
| 60 | 
            +
                    template.destination = "Rakefile"
         | 
| 61 | 
            +
                  end
         | 
| 62 | 
            +
             | 
| 36 63 | 
             
                  template :application do |template|
         | 
| 37 64 | 
             
                    template.source = 'application.rbt'
         | 
| 38 65 | 
             
                    template.destination = "#{base_name}.rb"
         | 
| @@ -49,15 +76,9 @@ module Merb | |
| 49 76 | 
             
                    directory.destination = dir
         | 
| 50 77 | 
             
                  end
         | 
| 51 78 |  | 
| 52 | 
            -
                   | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 55 | 
            -
                  end
         | 
| 56 | 
            -
             | 
| 57 | 
            -
                  template :rakefile do |template|
         | 
| 58 | 
            -
                    template.source = File.join(common_templates_dir, "Rakefile")
         | 
| 59 | 
            -
                    template.destination = "Rakefile"
         | 
| 60 | 
            -
                  end
         | 
| 79 | 
            +
                  #
         | 
| 80 | 
            +
                  # ==== Layout specific things
         | 
| 81 | 
            +
                  #
         | 
| 61 82 |  | 
| 62 83 | 
             
                  def class_name
         | 
| 63 84 | 
             
                    self.name.gsub("-", "_").camel_case
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            module Merb::Generators
         | 
| 2 | 
            +
              class PassengerGenerator < AppGenerator
         | 
| 3 | 
            +
                
         | 
| 4 | 
            +
                desc <<-DESC
         | 
| 5 | 
            +
                  Generates the configuration files needed to run Merb with Phusion Passenger.
         | 
| 6 | 
            +
                DESC
         | 
| 7 | 
            +
                
         | 
| 8 | 
            +
                def self.source_root
         | 
| 9 | 
            +
                  File.join(super, 'application', 'merb_stack')
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                file :config, "config.ru"
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
              add :passenger, PassengerGenerator
         | 
| 15 | 
            +
            end
         | 
| @@ -32,7 +32,7 @@ module Merb::Generators | |
| 32 32 | 
             
                  template.destination = "app/controllers" / base_path / "#{file_name}.rb"
         | 
| 33 33 | 
             
                  self.add_resource_route(self.plural_model) unless skip_route_definition?
         | 
| 34 34 | 
             
                end
         | 
| 35 | 
            -
             | 
| 35 | 
            +
              
         | 
| 36 36 | 
             
                [:index, :show, :edit, :new].each do |view|
         | 
| 37 37 | 
             
                  template "view_#{view}_none".to_sym, :template_engine => :erb, :orm => :none do |template|
         | 
| 38 38 | 
             
                    template.source = "app/views/%file_name%/#{view}.html.erb"
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            # dependencies are generated using a strict version, don't forget to edit the dependency versions when upgrading.
         | 
| 2 | 
            +
            merb_gems_version = "<%= merb_gems_version %>"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            # If you did disable json for Merb, comment out this line.
         | 
| 5 | 
            +
            # If you want use json gem just change it.
         | 
| 6 | 
            +
            # Don't use json gem version lower than 1.1.7! Older versions has security bug!
         | 
| 7 | 
            +
            gem "json_pure", ">= 1.1.7", :require => "json"
         | 
| 8 | 
            +
            gem "merb-core", merb_gems_version
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            <%= gems_for_orm(orm) %>
         | 
| 11 | 
            +
            <%= gems_for_template_engine(template_engine) %>
         | 
| 12 | 
            +
            <%= gems_for_testing_framework(testing_framework) %>
         | 
| @@ -1,4 +1,13 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            begin
         | 
| 2 | 
            +
              # Just in case the bundle was locked
         | 
| 3 | 
            +
              # This shouldn't happen in a dev environment but lets be safe
         | 
| 4 | 
            +
              require '.bundle/environment'
         | 
| 5 | 
            +
            rescue LoadError
         | 
| 6 | 
            +
              require 'rubygems'
         | 
| 7 | 
            +
              require 'bundler'
         | 
| 8 | 
            +
              Bundler.setup
         | 
| 9 | 
            +
            end
         | 
| 10 | 
            +
             | 
| 2 11 | 
             
            require 'rake/rdoctask'
         | 
| 3 12 |  | 
| 4 13 | 
             
            require 'merb-core'
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            begin
         | 
| 4 | 
            +
              # Just in case the bundle was locked
         | 
| 5 | 
            +
              # This shouldn't happen in a dev environment but lets be safe
         | 
| 6 | 
            +
              require File.expand_path('.bundle/environment', __FILE__)
         | 
| 7 | 
            +
            rescue LoadError
         | 
| 8 | 
            +
              require 'rubygems'
         | 
| 9 | 
            +
              require 'bundler'
         | 
| 10 | 
            +
              Bundler.setup
         | 
| 11 | 
            +
            end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            require 'merb-core'
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ARGV.push '-H' if ARGV[0] && ARGV[0] =~ /^[^-]/
         | 
| 16 | 
            +
            unless %w[-a --adapter -i --irb-console -r --script-runner].any? { |o| ARGV.index(o) }
         | 
| 17 | 
            +
              ARGV.push *%w[-a mongrel]
         | 
| 18 | 
            +
            end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            Merb.start
         | 
| @@ -14,7 +14,7 @@ class Autotest::MerbRspec < Autotest | |
| 14 14 | 
             
                super
         | 
| 15 15 |  | 
| 16 16 | 
             
                # Ignore any happenings in these directories
         | 
| 17 | 
            -
                add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3)% | 
| 17 | 
            +
                add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3|.*\.thor)%
         | 
| 18 18 | 
             
                # Ignore SCM directories and custom Autotest mappings
         | 
| 19 19 | 
             
                %w[.svn .hg .git .autotest].each { |exception| add_exception(exception) }
         | 
| 20 20 |  | 
| @@ -44,7 +44,7 @@ class Autotest::MerbRspec < Autotest | |
| 44 44 | 
             
                # Any change to global_helpers will result in all view and controller
         | 
| 45 45 | 
             
                # tests being run
         | 
| 46 46 | 
             
                add_mapping %r%^app/helpers/global_helpers\.rb% do
         | 
| 47 | 
            -
                  files_matching %r%^spec/(views|controllers|helpers)/.*_spec\.rb$%
         | 
| 47 | 
            +
                  files_matching %r%^spec/(views|controllers|helpers|requests)/.*_spec\.rb$%
         | 
| 48 48 | 
             
                end
         | 
| 49 49 |  | 
| 50 50 | 
             
                # Any change to a helper will cause its spec to be run
         | 
| @@ -54,7 +54,7 @@ class Autotest::MerbRspec < Autotest | |
| 54 54 |  | 
| 55 55 | 
             
                # Changes to a view cause its spec to be run
         | 
| 56 56 | 
             
                add_mapping %r%^app/views/(.*)/% do |_, m|
         | 
| 57 | 
            -
                  spec_for(m[1], ' | 
| 57 | 
            +
                  spec_for(m[1], 'request')
         | 
| 58 58 | 
             
                end
         | 
| 59 59 |  | 
| 60 60 | 
             
                # Changes to a controller result in its corresponding spec being run. If
         | 
| @@ -62,15 +62,15 @@ class Autotest::MerbRspec < Autotest | |
| 62 62 | 
             
                # controller specs are run.
         | 
| 63 63 | 
             
                add_mapping %r%^app/controllers/(.*)\.rb$% do |_, m|
         | 
| 64 64 | 
             
                  if ["application", "exception"].include?(m[1])
         | 
| 65 | 
            -
                    files_matching %r%^spec/ | 
| 65 | 
            +
                    files_matching %r%^spec/requests/.*_spec\.rb$%
         | 
| 66 66 | 
             
                  else
         | 
| 67 | 
            -
                    spec_for(m[1], ' | 
| 67 | 
            +
                    spec_for(m[1], 'request')
         | 
| 68 68 | 
             
                  end
         | 
| 69 69 | 
             
                end
         | 
| 70 70 |  | 
| 71 71 | 
             
                # If a change is made to the router, run controller, view and helper specs
         | 
| 72 72 | 
             
                add_mapping %r%^config/router.rb$% do
         | 
| 73 | 
            -
                  files_matching %r%^spec/(controllers| | 
| 73 | 
            +
                  files_matching %r%^spec/(views|controllers|helpers|requests)/.*_spec\.rb$%
         | 
| 74 74 | 
             
                end
         | 
| 75 75 |  | 
| 76 76 | 
             
                # If any of the major files governing the environment are altered, run
         | 
| @@ -157,9 +157,9 @@ private | |
| 157 157 | 
             
              # String
         | 
| 158 158 | 
             
              #
         | 
| 159 159 | 
             
              # ==== Example
         | 
| 160 | 
            -
              #   > spec_for('post', : | 
| 161 | 
            -
              #   => "spec/ | 
| 160 | 
            +
              #   > spec_for('post', :model')
         | 
| 161 | 
            +
              #   => "spec/models/post_spec.rb"
         | 
| 162 162 | 
             
              def spec_for(match, kind)
         | 
| 163 | 
            -
                 | 
| 163 | 
            +
                files_matching %r%^spec/#{kind}s/#{match}(/.*)?_spec.rb$%
         | 
| 164 164 | 
             
              end
         | 
| 165 165 | 
             
            end
         | 
| @@ -1,9 +1,7 @@ | |
| 1 1 | 
             
            # Go to http://wiki.merbivore.com/pages/init-rb
         | 
| 2 | 
            -
             
         | 
| 3 | 
            -
            # Specify a specific version of a dependency
         | 
| 4 | 
            -
            # dependency "RedCloth", "> 3.0"
         | 
| 5 2 |  | 
| 6 | 
            -
             | 
| 3 | 
            +
            # Specify your dependencies in the Gemfile
         | 
| 4 | 
            +
            <%= "use_orm :#{orm}" unless orm == :none %>
         | 
| 7 5 | 
             
            use_test :<%= testing_framework %>
         | 
| 8 6 | 
             
            use_template_engine :<%= template_engine %>
         | 
| 9 7 |  | 
| @@ -22,4 +20,4 @@ end | |
| 22 20 |  | 
| 23 21 | 
             
            Merb::BootLoader.after_app_loads do
         | 
| 24 22 | 
             
              # This will get executed after your app's classes have been loaded.
         | 
| 25 | 
            -
            end
         | 
| 23 | 
            +
            end
         | 
| @@ -1,2 +1,2 @@ | |
| 1 1 | 
             
            --format specdoc
         | 
| 2 | 
            -
            --colour
         | 
| 2 | 
            +
            --colour
         | 
| @@ -1,13 +1,15 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
            #  | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
               | 
| 1 | 
            +
            begin
         | 
| 2 | 
            +
              # Just in case the bundle was locked
         | 
| 3 | 
            +
              # This shouldn't happen in a dev environment but lets be safe
         | 
| 4 | 
            +
              require File.expand_path('../.bundle/environment', __FILE__)
         | 
| 5 | 
            +
            rescue LoadError
         | 
| 6 | 
            +
              require 'rubygems'
         | 
| 7 | 
            +
              require 'bundler'
         | 
| 8 | 
            +
              Bundler.setup
         | 
| 7 9 | 
             
            end
         | 
| 8 10 |  | 
| 9 | 
            -
            require "merb-core"
         | 
| 10 11 | 
             
            require "spec" # Satisfies Autotest and anyone else not using the Rake tasks
         | 
| 12 | 
            +
            require "merb-core"
         | 
| 11 13 |  | 
| 12 14 | 
             
            # this loads all plugins required in your init file so don't add them
         | 
| 13 15 | 
             
            # here again, Merb will do it for you
         | 
| @@ -1,9 +1,11 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
            #  | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
               | 
| 1 | 
            +
            begin
         | 
| 2 | 
            +
              # Just in case the bundle was locked
         | 
| 3 | 
            +
              # This shouldn't happen in a dev environment but lets be safe
         | 
| 4 | 
            +
              require File.expand_path('../.bundle/environment', __FILE__)
         | 
| 5 | 
            +
            rescue LoadError
         | 
| 6 | 
            +
              require 'rubygems'
         | 
| 7 | 
            +
              require 'bundler'
         | 
| 8 | 
            +
              Bundler.setup
         | 
| 7 9 | 
             
            end
         | 
| 8 10 |  | 
| 9 11 | 
             
            require "merb-core"
         | 
| @@ -16,4 +18,4 @@ Merb.start :environment => (ENV['MERB_ENV'] || 'test'), | |
| 16 18 | 
             
            class Test::Unit::TestCase
         | 
| 17 19 | 
             
              include Merb::Test::RequestHelper
         | 
| 18 20 | 
             
              # Add more helper methods to be used by all tests here...
         | 
| 19 | 
            -
            end
         | 
| 21 | 
            +
            end
         | 
| @@ -1,5 +1,8 @@ | |
| 1 1 | 
             
            class <%= class_name %> < Merb::Controller
         | 
| 2 2 |  | 
| 3 | 
            +
              # Templates go in: views/index.html.<%= template_engine %>
         | 
| 4 | 
            +
              # Layouts go in: views/layout.application.html.<%= template_engine %>
         | 
| 5 | 
            +
              # Modify this method to use another location.
         | 
| 3 6 | 
             
              def _template_location(action, type = nil, controller = controller_name)
         | 
| 4 7 | 
             
                controller == "layout" ? "layout.#{action}.#{type}" : "#{action}.#{type}"
         | 
| 5 8 | 
             
              end
         |