module Middleman
def self.load_extensions_in_path
def self.load_extensions_in_path extensions = rubygems_latest_specs.select do |spec| spec_has_file?(spec, EXTENSION_FILE) end extensions.each do |spec| require spec.name # $stderr.puts "require: #{spec.name}" end end
def self.rubygems_latest_specs
def self.rubygems_latest_specs # If newer Rubygems if Gem::Specification.respond_to? :latest_specs Gem::Specification.latest_specs else Gem.source_index.latest_specs end end
def self.server(&block)
def self.server(&block) sandbox = Class.new(Sinatra::Base) sandbox.register Base sandbox.class_eval(&block) if block_given? sandbox end
def self.spec_has_file?(spec, path)
def self.spec_has_file?(spec, path) full_path = File.join(spec.full_gem_path, path) File.exists?(full_path) end
def self.start_server(options={})
def self.start_server(options={}) opts = { :Port => options[:port], :AccessLog => [] } app = ::Middleman.server app.set :environment, options[:environment].to_sym opts[:app] = app.new opts[:server] = 'thin' $stderr.puts "== The Middleman is standing watch on port #{opts[:Port]}" ::Rack::Server.new(opts).start end
def self.templates_path
def self.templates_path File.join(File.expand_path("~/"), ".middleman") end