begin migration to hooks callback library
This commit is contained in:
parent
19e566f6a5
commit
0ed1a73450
|
@ -194,9 +194,8 @@ module Middleman
|
||||||
:AccessLog => []
|
:AccessLog => []
|
||||||
}
|
}
|
||||||
|
|
||||||
app_class = options[:app] ||= ::Middleman.server
|
app_class = options[:app] ||= ::Middleman.server.new
|
||||||
app_class.set :environment, options[:environment].to_sym
|
opts[:app] = app_class
|
||||||
opts[:app] = app_class.new
|
|
||||||
opts[:server] = 'thin'
|
opts[:server] = 'thin'
|
||||||
|
|
||||||
server = ::Rack::Server.new(opts)
|
server = ::Rack::Server.new(opts)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# require 'sinatra/synchrony'
|
# require 'sinatra/synchrony'
|
||||||
|
|
||||||
require "i18n"
|
require "i18n"
|
||||||
|
require "hooks"
|
||||||
|
|
||||||
require "active_support"
|
require "active_support"
|
||||||
require "active_support/json"
|
require "active_support/json"
|
||||||
|
@ -9,8 +10,8 @@ require "active_support/core_ext/class/attribute_accessors"
|
||||||
module Middleman::Base
|
module Middleman::Base
|
||||||
class << self
|
class << self
|
||||||
def registered(app)
|
def registered(app)
|
||||||
# app.register ::Sinatra::Synchrony
|
app.send :include, ::Hooks
|
||||||
|
app.define_hook :initialized
|
||||||
app.extend ClassMethods
|
app.extend ClassMethods
|
||||||
app.send :include, InstanceMethods
|
app.send :include, InstanceMethods
|
||||||
|
|
||||||
|
@ -19,6 +20,7 @@ module Middleman::Base
|
||||||
app.set :root, Dir.pwd
|
app.set :root, Dir.pwd
|
||||||
app.set :sessions, false
|
app.set :sessions, false
|
||||||
app.set :logging, false
|
app.set :logging, false
|
||||||
|
app.set :protection, false
|
||||||
app.set :environment, (ENV['MM_ENV'] && ENV['MM_ENV'].to_sym) || :development
|
app.set :environment, (ENV['MM_ENV'] && ENV['MM_ENV'].to_sym) || :development
|
||||||
|
|
||||||
# Middleman-specific options
|
# Middleman-specific options
|
||||||
|
@ -155,9 +157,24 @@ module Middleman::Base
|
||||||
|
|
||||||
# Convenience method to check if we're in build mode
|
# Convenience method to check if we're in build mode
|
||||||
def build?; environment == :build; end
|
def build?; environment == :build; end
|
||||||
|
|
||||||
|
# Creates a Rack::Builder instance with all the middleware set up and
|
||||||
|
# an instance of this class as end point.
|
||||||
|
def build_new(inst=false)
|
||||||
|
builder = Rack::Builder.new
|
||||||
|
setup_default_middleware builder
|
||||||
|
setup_middleware builder
|
||||||
|
builder.run inst || new!
|
||||||
|
builder.to_app
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
module InstanceMethods
|
module InstanceMethods
|
||||||
|
def initialize(*args)
|
||||||
|
super
|
||||||
|
run_hook :initialized, settings
|
||||||
|
end
|
||||||
|
|
||||||
def forward
|
def forward
|
||||||
raise ::Sinatra::NotFound
|
raise ::Sinatra::NotFound
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,29 +1,21 @@
|
||||||
module Middleman::CoreExtensions::FileWatcher
|
module Middleman::CoreExtensions::FileWatcher
|
||||||
class << self
|
class << self
|
||||||
def registered(app)
|
def registered(app)
|
||||||
app.set :run_after_file_change, []
|
app.define_hook :file_changed
|
||||||
app.set :run_after_file_delete, []
|
app.define_hook :file_deleted
|
||||||
|
|
||||||
app.extend ClassMethods
|
app.send :include, InstanceMethods
|
||||||
end
|
end
|
||||||
alias :included :registered
|
alias :included :registered
|
||||||
end
|
end
|
||||||
|
|
||||||
module ClassMethods
|
module InstanceMethods
|
||||||
def file_did_change(path)
|
def file_did_change(path)
|
||||||
settings.run_after_file_change.each { |block| block.call(path) }
|
run_hook :file_changed, path
|
||||||
end
|
|
||||||
|
|
||||||
def on_file_change(&block)
|
|
||||||
settings.run_after_file_change << block
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def file_did_delete(path)
|
def file_did_delete(path)
|
||||||
settings.run_after_file_delete.each { |block| block.call(path) }
|
run_hook :file_deleted, path
|
||||||
end
|
|
||||||
|
|
||||||
def on_file_delete(&block)
|
|
||||||
settings.run_after_file_delete << block
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -3,35 +3,37 @@ require 'find'
|
||||||
module Middleman::CoreExtensions::Sitemap
|
module Middleman::CoreExtensions::Sitemap
|
||||||
class << self
|
class << self
|
||||||
def registered(app)
|
def registered(app)
|
||||||
app.set :sitemap, SitemapStore.new(app)
|
sm = SitemapStore.new
|
||||||
|
|
||||||
|
app.set :sitemap, sm
|
||||||
|
|
||||||
|
app.initialized do |scope|
|
||||||
|
sm.setup(scope)
|
||||||
|
end
|
||||||
|
|
||||||
|
app.file_changed do |file|
|
||||||
|
sm.touch_file(file)
|
||||||
|
end
|
||||||
|
|
||||||
|
app.file_deleted do |file|
|
||||||
|
sm.remove_file(file)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
alias :included :registered
|
alias :included :registered
|
||||||
end
|
end
|
||||||
|
|
||||||
class SitemapStore
|
class SitemapStore
|
||||||
def initialize(app)
|
def initialize
|
||||||
@app = app
|
|
||||||
@map = {}
|
@map = {}
|
||||||
@ignored_paths = false
|
@ignored_paths = false
|
||||||
@generic_paths = false
|
@generic_paths = false
|
||||||
@proxied_paths = false
|
@proxied_paths = false
|
||||||
|
|
||||||
@app.on_file_change do |file|
|
|
||||||
touch_file(file)
|
|
||||||
end
|
|
||||||
|
|
||||||
@app.on_file_delete do |file|
|
|
||||||
remove_file(file)
|
|
||||||
end
|
|
||||||
|
|
||||||
setup
|
|
||||||
# @app.after_configuration do
|
|
||||||
# sitemap.setup
|
|
||||||
# end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def setup
|
def setup(app)
|
||||||
|
@app = app
|
||||||
@source = File.expand_path(@app.views, @app.root)
|
@source = File.expand_path(@app.views, @app.root)
|
||||||
|
|
||||||
build_static_map
|
build_static_map
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -74,12 +74,16 @@ module Guard
|
||||||
end
|
end
|
||||||
|
|
||||||
def server_start
|
def server_start
|
||||||
@app = ::Middleman.server
|
app = ::Middleman.server
|
||||||
|
app.set :environment, @options[:environment].to_sym
|
||||||
|
|
||||||
|
puts "== The Middleman is standing watch on port #{@options[:Port]||4567}"
|
||||||
|
@app = app.new!
|
||||||
|
app_rack = app.build_new(@app)
|
||||||
|
|
||||||
puts "== The Middleman is standing watch on port #{@options[:Port]}"
|
|
||||||
@server_job = fork do
|
@server_job = fork do
|
||||||
opts = @options.dup
|
opts = @options.dup
|
||||||
opts[:app] = @app
|
opts[:app] = app_rack
|
||||||
::Middleman.start_server(opts)
|
::Middleman.start_server(opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -37,13 +37,13 @@ Gem::Specification.new do |s|
|
||||||
s.add_dependency("sprockets-sass", ["~> 0.3.0"])
|
s.add_dependency("sprockets-sass", ["~> 0.3.0"])
|
||||||
s.add_dependency("padrino-core", ["~> 0.10.5"])
|
s.add_dependency("padrino-core", ["~> 0.10.5"])
|
||||||
s.add_dependency("padrino-helpers", ["~> 0.10.5"])
|
s.add_dependency("padrino-helpers", ["~> 0.10.5"])
|
||||||
|
s.add_dependency("hooks")
|
||||||
|
|
||||||
s.add_dependency("eventmachine", ["1.0.0.beta.4.1"])
|
s.add_dependency("eventmachine", ["1.0.0.beta.4.1"])
|
||||||
s.add_dependency("win32-process", ["~> 0.6.5"])
|
s.add_dependency("win32-process", ["~> 0.6.5"])
|
||||||
s.add_dependency("rb-fchange")
|
s.add_dependency("rb-fchange")
|
||||||
|
|
||||||
s.add_dependency("guard", ["~> 0.8.8"])
|
s.add_dependency("guard", ["~> 0.8.8"])
|
||||||
# s.add_dependency("middleman-livereload", ["~> 0.2.0"])
|
|
||||||
|
|
||||||
# Development and test
|
# Development and test
|
||||||
# s.add_development_dependency("jquery-rails")
|
# s.add_development_dependency("jquery-rails")
|
||||||
|
|
|
@ -26,7 +26,6 @@ Gem::Specification.new do |s|
|
||||||
s.add_dependency("tilt", ["~> 1.3.1"])
|
s.add_dependency("tilt", ["~> 1.3.1"])
|
||||||
s.add_dependency("maruku", ["~> 0.6.0"])
|
s.add_dependency("maruku", ["~> 0.6.0"])
|
||||||
s.add_dependency("sinatra", ["~> 1.3.1"])
|
s.add_dependency("sinatra", ["~> 1.3.1"])
|
||||||
# s.add_dependency("sinatra-synchrony", ["~> 0.2.1"])
|
|
||||||
s.add_dependency("rack-test", ["~> 0.6.1"])
|
s.add_dependency("rack-test", ["~> 0.6.1"])
|
||||||
s.add_dependency("uglifier", ["~> 1.0.0"])
|
s.add_dependency("uglifier", ["~> 1.0.0"])
|
||||||
s.add_dependency("slim", ["~> 1.0.2"])
|
s.add_dependency("slim", ["~> 1.0.2"])
|
||||||
|
@ -39,6 +38,7 @@ Gem::Specification.new do |s|
|
||||||
s.add_dependency("sprockets-sass", ["~> 0.3.0"])
|
s.add_dependency("sprockets-sass", ["~> 0.3.0"])
|
||||||
s.add_dependency("padrino-core", ["~> 0.10.5"])
|
s.add_dependency("padrino-core", ["~> 0.10.5"])
|
||||||
s.add_dependency("padrino-helpers", ["~> 0.10.5"])
|
s.add_dependency("padrino-helpers", ["~> 0.10.5"])
|
||||||
|
s.add_dependency("hooks")
|
||||||
|
|
||||||
s.add_dependency("guard", ["~> 0.8.8"])
|
s.add_dependency("guard", ["~> 0.8.8"])
|
||||||
s.add_dependency("eventmachine", ["1.0.0.beta.4"])
|
s.add_dependency("eventmachine", ["1.0.0.beta.4"])
|
||||||
|
|
Loading…
Reference in a new issue