diff --git a/middleman-core/features/cli_init.feature b/middleman-core/features/cli_init.feature index 795cb925..b97f636a 100644 --- a/middleman-core/features/cli_init.feature +++ b/middleman-core/features/cli_init.feature @@ -36,16 +36,6 @@ Feature: Middleman CLI | config.rb | | config.ru | | Gemfile | - - Scenario: Create a new project without Bundler - When I run `middleman init MY_PROJECT --no-bundler` - Then a directory named "MY_PROJECT" should exist - When I cd to "MY_PROJECT" - Then the following files should exist: - | config.rb | - Then the following files should not exist: - | Gemfile | - | config.ru | Scenario: Create a new HTML5 project When I run `middleman init MY_PROJECT --template=html5` diff --git a/middleman-core/lib/middleman-core/cli.rb b/middleman-core/lib/middleman-core/cli.rb index 255c9e24..6bbe955c 100644 --- a/middleman-core/lib/middleman-core/cli.rb +++ b/middleman-core/lib/middleman-core/cli.rb @@ -67,6 +67,7 @@ end # Include the core CLI items require "middleman-core/cli/init" +require "middleman-core/cli/bundler" require "middleman-core/cli/extension" require "middleman-core/cli/server" require "middleman-core/cli/build" \ No newline at end of file diff --git a/middleman-core/lib/middleman-core/cli/bundler.rb b/middleman-core/lib/middleman-core/cli/bundler.rb new file mode 100644 index 00000000..e57104fa --- /dev/null +++ b/middleman-core/lib/middleman-core/cli/bundler.rb @@ -0,0 +1,40 @@ +# CLI Module +module Middleman::Cli + + # A initializing Bundler + class Bundle < Thor + include Thor::Actions + check_unknown_options! + + namespace :bundle + + desc "bundle", "Setup initial bundle", :hide => true + + # The setup task + def bundle + run('bundle install --without development test', :capture => true) + end + end + + # A upgrading Bundler + class Upgrade < Thor + include Thor::Actions + check_unknown_options! + + namespace :upgrade + + desc "upgrade", "Upgrade installed bundle" + + # The upgrade task + def upgrade + inside(ENV["MM_ROOT"]) do + run('bundle update', :capture => true) + end + end + end + + # Map "u" to "upgrade" + Base.map({ + "u" => "upgrade" + }) +end diff --git a/middleman-core/lib/middleman-core/templates.rb b/middleman-core/lib/middleman-core/templates.rb index 987fbc6d..4667f8ec 100644 --- a/middleman-core/lib/middleman-core/templates.rb +++ b/middleman-core/lib/middleman-core/templates.rb @@ -50,17 +50,13 @@ module Middleman::Templates template "shared/config.ru", File.join(location, "config.ru") end - # Output a Gemfile file for Bundler if --bundler is passed - class_option :bundler, :type => :boolean, :default => true - # Write a Bundler Gemfile file for project # @return [void] def generate_bundler! - return unless options[:bundler] template "shared/Gemfile.tt", File.join(location, "Gemfile") inside(location) do - run('bundle install', :capture => true) + ::Middleman::Cli::Bundle.new.invoke(:bundle) end end