Merge pull request #1194 from bhollis/gemfile
Require Bundler (a Gemfile) for all set up Middleman projects
This commit is contained in:
commit
8b20b39b31
|
@ -1,6 +1,9 @@
|
||||||
master
|
master
|
||||||
===
|
===
|
||||||
|
|
||||||
|
* Remove 'upgrade' and 'install' CLI commands.
|
||||||
|
* Gemfile may be in a parent directory of your Middleman project root (where 'config.rb' is).
|
||||||
|
* All dependencies for your Middleman project must be expressed in `Gemfile` - Bundler is no longer optional.
|
||||||
* Asciidoc information now available with the `asciidoc` local, which is a normal hash.
|
* Asciidoc information now available with the `asciidoc` local, which is a normal hash.
|
||||||
* Remove `page` template local. Use `current_resource` instead.
|
* Remove `page` template local. Use `current_resource` instead.
|
||||||
* Dropped support for providing a block to `page` & `proxy`.
|
* Dropped support for providing a block to `page` & `proxy`.
|
||||||
|
|
1
Gemfile
1
Gemfile
|
@ -24,7 +24,6 @@ platforms :ruby do
|
||||||
gem 'therubyracer'
|
gem 'therubyracer'
|
||||||
gem 'redcarpet', '~> 3.1'
|
gem 'redcarpet', '~> 3.1'
|
||||||
gem 'pry', :require => false, :group => :development
|
gem 'pry', :require => false, :group => :development
|
||||||
gem 'pry-debugger', :require => false, :group => :development
|
|
||||||
end
|
end
|
||||||
|
|
||||||
platforms :jruby do
|
platforms :jruby do
|
||||||
|
|
|
@ -88,7 +88,6 @@ end
|
||||||
|
|
||||||
# Include the core CLI items
|
# Include the core CLI items
|
||||||
require 'middleman-cli/init'
|
require 'middleman-cli/init'
|
||||||
require 'middleman-cli/bundler'
|
|
||||||
require 'middleman-cli/extension'
|
require 'middleman-cli/extension'
|
||||||
require 'middleman-cli/server'
|
require 'middleman-cli/server'
|
||||||
require 'middleman-cli/build'
|
require 'middleman-cli/build'
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
# 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')#, :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
|
|
|
@ -8,35 +8,16 @@ module Middleman
|
||||||
@_is_setup ||= begin
|
@_is_setup ||= begin
|
||||||
|
|
||||||
# Only look for config.rb if MM_ROOT isn't set
|
# Only look for config.rb if MM_ROOT isn't set
|
||||||
if !ENV['MM_ROOT'] && found_path = locate_root
|
if !ENV['MM_ROOT'] && (found_path = findup('config.rb'))
|
||||||
ENV['MM_ROOT'] = found_path
|
ENV['MM_ROOT'] = found_path
|
||||||
end
|
end
|
||||||
|
|
||||||
is_bundler_setup = false
|
|
||||||
|
|
||||||
# If we've found the root, try to setup Bundler
|
# If we've found the root, try to setup Bundler
|
||||||
if ENV['MM_ROOT']
|
if ENV['MM_ROOT']
|
||||||
|
setup_bundler
|
||||||
root_gemfile = File.expand_path('Gemfile', ENV['MM_ROOT'])
|
else
|
||||||
ENV['BUNDLE_GEMFILE'] ||= root_gemfile
|
|
||||||
|
|
||||||
if !File.exists?(ENV['BUNDLE_GEMFILE'])
|
|
||||||
git_gemfile = Pathname.new(__FILE__).expand_path.parent.parent.parent + 'Gemfile'
|
|
||||||
ENV['BUNDLE_GEMFILE'] = git_gemfile.to_s
|
|
||||||
end
|
|
||||||
|
|
||||||
if File.exists?(ENV['BUNDLE_GEMFILE'])
|
|
||||||
is_bundler_setup = true
|
|
||||||
require 'bundler/setup'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Automatically discover extensions in RubyGems
|
# Automatically discover extensions in RubyGems
|
||||||
require 'middleman-core/extensions'
|
require 'middleman-core/extensions'
|
||||||
|
|
||||||
if is_bundler_setup
|
|
||||||
Bundler.require
|
|
||||||
else
|
|
||||||
::Middleman.load_extensions_in_path
|
::Middleman.load_extensions_in_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -44,11 +25,29 @@ module Middleman
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Recursive method to find config.rb
|
private
|
||||||
def locate_root(cwd = Pathname.new(Dir.pwd))
|
|
||||||
return cwd.to_s if (cwd + 'config.rb').exist?
|
# Set BUNDLE_GEMFILE and run Bundler setup. Raises an exception if there is no Gemfile
|
||||||
|
def setup_bundler
|
||||||
|
ENV['BUNDLE_GEMFILE'] ||= findup('Gemfile', ENV['MM_ROOT'])
|
||||||
|
|
||||||
|
if !File.exists?(ENV['BUNDLE_GEMFILE'])
|
||||||
|
ENV['BUNDLE_GEMFILE'] = File.expand_path('../../../../Gemfile', __FILE__)
|
||||||
|
end
|
||||||
|
|
||||||
|
if File.exists?(ENV['BUNDLE_GEMFILE'])
|
||||||
|
require 'bundler/setup'
|
||||||
|
Bundler.require
|
||||||
|
else
|
||||||
|
raise "Couldn't find your Gemfile. Middleman projects require a Gemfile for specifying dependencies."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Recursive method to find a file in parent directories
|
||||||
|
def findup(filename, cwd = Pathname.new(Dir.pwd))
|
||||||
|
return cwd.to_s if (cwd + filename).exist?
|
||||||
return false if cwd.root?
|
return false if cwd.root?
|
||||||
locate_root(cwd.parent)
|
findup(filename, cwd.parent)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue