begin yaml data store

This commit is contained in:
Thomas Reynolds 2011-04-14 15:35:41 -07:00
parent b29413bcd3
commit 4ae03e6bbb
4 changed files with 53 additions and 0 deletions

View file

@ -75,6 +75,10 @@ module Middleman::Features
# paragraphs, fake images, names and email addresses.
autoload :Lorem, "middleman/features/lorem"
# Data looks at the data/ folder for YAML files and makes them available
# to dynamic requests.
autoload :Data, "middleman/features/data"
# LiveReload will auto-reload browsers with the live reload extension installed after changes
# Currently disabled and untested.
#autoload :LiveReload, "middleman/features/live_reload"

45
lib/middleman/features/data.rb Executable file
View file

@ -0,0 +1,45 @@
# require "fssm"
require "yaml"
module Middleman::Features::Data
class << self
def registered(app)
@@app = app
@@data_structure = {}
Dir[File.join(app.root, 'data/*.yml')].each do |d|
handle_update(d)
end
# FSSM.monitor(app.root, 'data/*.yml') do
# update do |base, relative|
# handle_update(File.join(base, relative))
# end
#
# create do |base, relative|
# handle_update(File.join(base, relative))
# end
#
# delete do |base, relative|
# handle_delete(File.join(base, relative))
# end
# end
end
def handle_update(path)
data_name = File.basename(path).split(".").first
data = YAML.load_file(path)
@@data_structure[data_name] = data
@@app.set :data, @@data_structure
end
# def handle_delete(path)
# data_name = File.basename(path).split(".").first
# @@data_structure.delete(data_name) if @@data_structure.has_key? data_name
# @@app.set :data, @@data_structure
# end
alias :included :registered
end
end

View file

@ -40,6 +40,9 @@ module Middleman
# Activate built-in helpers
register Middleman::Features::DefaultHelpers
# Activate Yaml Data package
register Middleman::Features::Data
# Activate Lorem helpers
register Middleman::Features::Lorem

View file

@ -39,6 +39,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency("compass-slickmap", ["~> 0.4.0"])
s.add_runtime_dependency("coffee-script", ["~> 2.1.0"])
s.add_runtime_dependency("less", ["~> 1.2.0"])
# s.add_runtime_dependency("fssm", ["~> 0.2.0"])
s.add_development_dependency("cucumber", ["~> 0.10.0"])
s.add_development_dependency("rspec", [">= 0"])
s.add_development_dependency("rocco", [">= 0"]) unless defined?(JRUBY_VERSION)