1
0
Fork 0
mirror of https://github.com/middleman/middleman.git synced 2022-11-09 12:20:27 -05:00
middleman--middleman/lib/middleman/templates.rb
2011-08-19 17:45:10 -07:00

53 lines
No EOL
1.3 KiB
Ruby

require "thor"
require "thor/group"
module Middleman::Templates
@@template_mappings = {}
def self.register(name, klass)
@@template_mappings[name] = klass
end
def self.registered_names
@@template_mappings.keys
end
def self.registered_templates
@@template_mappings
end
class Base < ::Thor::Group
include Thor::Actions
argument :location, :type => :string
class_option :template, :default => "default"
class_option :css_dir, :default => "stylesheets"
class_option :js_dir, :default => "javascripts"
class_option :images_dir, :default => "images"
class_option :rack, :type => :boolean, :default => false
class_option :bundler, :type => :boolean, :default => false
def generate_rack
if options[:rack]
template "shared/config.ru", File.join(location, "config.ru")
end
end
def generate_bundler
if options[:bundler]
template "shared/Gemfile.tt", File.join(location, "Gemfile")
say_status :run, "bundle install"
print `cd #{location} && "#{Gem.ruby}" -rubygems "#{Gem.bin_path('bundler', 'bundle')}" install`
end
end
end
end
# Default template
require "middleman/templates/default"
# HTML5 template
require "middleman/templates/html5"
# Local templates
require "middleman/templates/local"