fix frontmatter auto updater and switch to Padrino.logger
This commit is contained in:
parent
28e06e3e69
commit
34d3522d93
6 changed files with 91 additions and 30 deletions
|
@ -5,6 +5,18 @@ require "active_support"
|
|||
require "active_support/json"
|
||||
require "active_support/core_ext/class/attribute_accessors"
|
||||
|
||||
module Padrino
|
||||
class << self
|
||||
attr_accessor :root_dir, :env
|
||||
def root(*args)
|
||||
File.expand_path(File.join(root_dir, *args))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ENV['PADRINO_LOG_LEVEL'] = "debug"
|
||||
require "padrino-core/logger"
|
||||
|
||||
module Middleman::Base
|
||||
class << self
|
||||
def registered(app)
|
||||
|
@ -144,12 +156,25 @@ module Middleman::Base
|
|||
builder.run inst || new!
|
||||
builder.to_app
|
||||
end
|
||||
|
||||
def logger
|
||||
Padrino.logger
|
||||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def logger
|
||||
Padrino.logger
|
||||
end
|
||||
|
||||
def initialize(*args)
|
||||
super
|
||||
run_hook :initialized, settings
|
||||
|
||||
Padrino.root_dir = settings.root
|
||||
Padrino.env = settings.environment
|
||||
Padrino::Logger::Config[:debug] = { :stream => :stderr }
|
||||
# Padrino::Logger::Config[:development][:stream] = StringIO.new
|
||||
end
|
||||
|
||||
def forward
|
||||
|
|
|
@ -5,13 +5,14 @@ module Middleman::CoreExtensions::FrontMatter
|
|||
class << self
|
||||
def registered(app)
|
||||
app.extend ClassMethods
|
||||
app.send :include, InstanceMethods
|
||||
|
||||
app.file_changed do |file|
|
||||
data.touch_file(file)
|
||||
frontmatter.touch_file(file)
|
||||
end
|
||||
|
||||
app.file_deleted do |file|
|
||||
data.remove_file(file)
|
||||
frontmatter.remove_file(file)
|
||||
end
|
||||
|
||||
app.after_configuration do
|
||||
|
@ -21,17 +22,14 @@ module Middleman::CoreExtensions::FrontMatter
|
|||
full_file_path = "#{extensionless_path}.#{template_engine}"
|
||||
|
||||
if app.frontmatter.has_data?(full_file_path)
|
||||
result = app.frontmatter.data(full_file_path)
|
||||
data = result.first.dup
|
||||
data = app.frontmatter.data(full_file_path).first
|
||||
|
||||
request['custom_options'] = {}
|
||||
%w(layout layout_engine).each do |opt|
|
||||
if data.has_key?(opt)
|
||||
request['custom_options'][opt.to_sym] = data.delete(opt)
|
||||
request['custom_options'][opt.to_sym] = data[opt]
|
||||
end
|
||||
end
|
||||
|
||||
app.settings.templates[extensionless_path] = [result[1], extensionless_path.to_s, 1]
|
||||
else
|
||||
data = {}
|
||||
end
|
||||
|
@ -53,6 +51,12 @@ module Middleman::CoreExtensions::FrontMatter
|
|||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def frontmatter
|
||||
settings.frontmatter
|
||||
end
|
||||
end
|
||||
|
||||
class FrontmatterData
|
||||
def initialize(app)
|
||||
@app = app
|
||||
|
@ -66,7 +70,7 @@ module Middleman::CoreExtensions::FrontMatter
|
|||
next if file.match(/\/\./) ||
|
||||
(file.match(/\/_/) && !file.match(/\/__/)) ||
|
||||
File.directory?(file)
|
||||
|
||||
|
||||
touch_file(file)
|
||||
end
|
||||
end
|
||||
|
@ -78,18 +82,24 @@ module Middleman::CoreExtensions::FrontMatter
|
|||
def touch_file(file)
|
||||
extension = File.extname(file).sub(/\./, "")
|
||||
return unless ::Tilt.mappings.has_key?(extension)
|
||||
|
||||
|
||||
content = File.read(file)
|
||||
file = file.sub(@source, "")
|
||||
|
||||
@app.logger.debug :frontmatter_update, Time.now, file if @app.settings.logging?
|
||||
result = parse_front_matter(content)
|
||||
|
||||
if result
|
||||
@local_data[file] = result
|
||||
path = @app.extensionless_path(file)
|
||||
@app.settings.templates[path.to_sym] = [result[1], path.to_s, 1]
|
||||
end
|
||||
end
|
||||
|
||||
def remove_file(file)
|
||||
file = file.sub(@source, "")
|
||||
@app.logger.debug :frontmatter_remove, Time.now, file if @app.settings.logging?
|
||||
|
||||
if @local_data.has_key?(file)
|
||||
@local_data.delete(file)
|
||||
end
|
||||
|
|
|
@ -3,6 +3,9 @@ require "padrino-core/application/rendering"
|
|||
module Middleman::CoreExtensions::Rendering
|
||||
class << self
|
||||
def registered(app)
|
||||
app.extend ClassMethods
|
||||
app.send :include, InstanceMethods
|
||||
|
||||
# Tilt-aware renderer
|
||||
app.register Padrino::Rendering
|
||||
|
||||
|
@ -15,4 +18,35 @@ module Middleman::CoreExtensions::Rendering
|
|||
end
|
||||
alias :included :registered
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
def extensionless_path(file)
|
||||
@_extensionless_path_cache ||= {}
|
||||
|
||||
if @_extensionless_path_cache.has_key?(file)
|
||||
@_extensionless_path_cache[file]
|
||||
else
|
||||
path = file.dup
|
||||
end_of_the_line = false
|
||||
while !end_of_the_line
|
||||
file_extension = File.extname(path)
|
||||
|
||||
if ::Tilt.mappings.has_key?(file_extension.gsub(/^\./, ""))
|
||||
path = path.sub(file_extension, "")
|
||||
else
|
||||
end_of_the_line = true
|
||||
end
|
||||
end
|
||||
|
||||
@_extensionless_path_cache[file] = path
|
||||
path
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
def extensionless_path(path)
|
||||
settings.extensionless_path(path)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -196,18 +196,7 @@ module Middleman::CoreExtensions::Sitemap
|
|||
return false unless file.include?(prefix)
|
||||
|
||||
path = file.sub(prefix, "")
|
||||
|
||||
end_of_the_line = false
|
||||
while !end_of_the_line
|
||||
file_extension = File.extname(path)
|
||||
|
||||
if ::Tilt.mappings.has_key?(file_extension.gsub(/^\./, ""))
|
||||
path = path.sub(file_extension, "")
|
||||
else
|
||||
end_of_the_line = true
|
||||
end
|
||||
end
|
||||
|
||||
path = @app.extensionless_path(path)
|
||||
@source_map[path] = file
|
||||
path
|
||||
end
|
||||
|
|
|
@ -6,15 +6,11 @@ if Config::CONFIG['host_os'].downcase =~ %r{mingw}
|
|||
require "win32/process"
|
||||
end
|
||||
|
||||
# Quiet down Guard
|
||||
ENV['GUARD_ENV'] = 'test'
|
||||
|
||||
module Middleman
|
||||
module Guard
|
||||
def self.add_guard(&block)
|
||||
# Deprecation Warning
|
||||
$stderr.puts "== Middleman::Guard.add_guard has been removed. Update your extensions to versions which support this change."
|
||||
exit
|
||||
puts "== Middleman::Guard.add_guard has been removed. Update your extensions to versions which support this change."
|
||||
end
|
||||
|
||||
def self.start(options={})
|
||||
|
@ -59,6 +55,7 @@ module Guard
|
|||
server_restart
|
||||
elsif !@app.nil?
|
||||
paths.each do |path|
|
||||
@app.logger.debug :file_change, Time.now, path if @app.settings.logging?
|
||||
@app.file_did_change(path)
|
||||
end
|
||||
end
|
||||
|
@ -67,6 +64,7 @@ module Guard
|
|||
def run_on_deletion(paths)
|
||||
if !@app.nil?
|
||||
paths.each do |path|
|
||||
@app.logger.debug :file_remove, Time.now, path if @app.settings.logging?
|
||||
@app.file_did_delete(path)
|
||||
end
|
||||
end
|
||||
|
@ -80,8 +78,12 @@ module Guard
|
|||
|
||||
def server_start
|
||||
app = ::Middleman.server
|
||||
app.set :environment, @options[:environment].to_sym
|
||||
app.set :logging, @options[:debug] == "true"
|
||||
app.set :environment, (@options[:environment] || "development").to_sym
|
||||
app.set :logging, @options.has_key?(:debug) && (@options[:debug] == "true")
|
||||
|
||||
# Quiet down Guard
|
||||
# ENV['GUARD_ENV'] = 'test' if @options[:debug] == "true"
|
||||
|
||||
@app = app.new!
|
||||
app_rack = app.build_new(@app)
|
||||
|
||||
|
|
|
@ -34,14 +34,15 @@ Gem::Specification.new do |s|
|
|||
s.add_dependency("compass", ["~> 0.11.3"])
|
||||
s.add_dependency("coffee-script", ["~> 2.2.0"])
|
||||
s.add_dependency("execjs", ["~> 1.2.7"])
|
||||
s.add_dependency("sprockets", ["~> 2.0.3"])
|
||||
s.add_dependency("sprockets", ["~> 2.0"])
|
||||
s.add_dependency("sprockets-sass", ["~> 0.3.0"])
|
||||
s.add_dependency("padrino-core", ["~> 0.10.5"])
|
||||
s.add_dependency("padrino-helpers", ["~> 0.10.5"])
|
||||
s.add_dependency("hooks", ["~> 0.2.0"])
|
||||
s.add_dependency("rb-fsevent")
|
||||
|
||||
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"])
|
||||
# s.add_dependency("middleman-livereload", ["~> 0.2.0"])
|
||||
|
||||
# Development and test
|
||||
|
|
Loading…
Reference in a new issue