From b9bb1e8e8b7aa42c6b672bcd82d3402c531fb3ff Mon Sep 17 00:00:00 2001 From: Scott Windsor Date: Mon, 21 Oct 2013 06:55:01 -0700 Subject: [PATCH] Refactor to reduce reek warnings --- lib/flue/basefile.rb | 5 +++++ lib/flue/filter_register.rb | 14 +++++++------- lib/flue/middleware.rb | 2 +- lib/flue/renderer.rb | 6 +----- spec/basefile_spec.rb | 15 ++++++++++++++- 5 files changed, 28 insertions(+), 14 deletions(-) diff --git a/lib/flue/basefile.rb b/lib/flue/basefile.rb index 95dd574..9ca469b 100644 --- a/lib/flue/basefile.rb +++ b/lib/flue/basefile.rb @@ -48,6 +48,11 @@ def datafile end end + def variables + data = datafile + YAML.load(data) if data + end + def content File.read(filename) end diff --git a/lib/flue/filter_register.rb b/lib/flue/filter_register.rb index 0778cd4..4e4831a 100644 --- a/lib/flue/filter_register.rb +++ b/lib/flue/filter_register.rb @@ -1,9 +1,8 @@ module Flue class FilterRegister - @@filters = {} def self.filters - @@filters + @@filters ||= {} end def self.clear @@ -20,14 +19,15 @@ def self.filters_by_name end def self.register(ext, filter) - filters[ext.to_s] ||= [] - filters[ext.to_s] << filter + ext_name = ext.to_s + filters[ext_name] ||= [] + filters[ext_name] << filter end def self.run(exts, content, options={}) - f = exts.pop - return content unless f - result = run_ext(f, content, options) + filter = exts.pop + return content unless filter + result = run_ext(filter, content, options) run(exts,result, options) end diff --git a/lib/flue/middleware.rb b/lib/flue/middleware.rb index bbdde5b..f76abea 100644 --- a/lib/flue/middleware.rb +++ b/lib/flue/middleware.rb @@ -12,7 +12,7 @@ def initialize(app, watcher, renderer) def call(env) file = File.basename(env['PATH_INFO']) - basefile = renderer.basefiles.detect{|f| f.outfile_basename == file } + basefile = renderer.basefiles.detect{|basefile| basefile.outfile_basename == file } if basefile && watcher.changes.include?(basefile.filename) renderer.render_file(basefile) end diff --git a/lib/flue/renderer.rb b/lib/flue/renderer.rb index b019b42..d9d21a7 100644 --- a/lib/flue/renderer.rb +++ b/lib/flue/renderer.rb @@ -34,11 +34,7 @@ def render_files def render_file(basefile) open(basefile.outfile_name, "w") do |f| benchmark "#{basefile.basename} => #{basefile.outfile_name}" do - options = {} - data = basefile.datafile - if data - options[:variables] = YAML.load(data) - end + options = {:variables => basefile.variables} f.write filter_register.run(basefile.exts, basefile.content, options) end end diff --git a/spec/basefile_spec.rb b/spec/basefile_spec.rb index 2b80d77..37eb649 100644 --- a/spec/basefile_spec.rb +++ b/spec/basefile_spec.rb @@ -40,7 +40,7 @@ md_erb.datafile_name.must_equal "site/test.yml" end - it "should have a datafile_name" do + it "should have a datafile contents" do test_data = "test data" File.stub :exists?, true do File.stub :read, test_data do @@ -49,6 +49,19 @@ end end + it "should return datafile variables" do + test_data = <<-eos +--- + foo: bar +eos + File.stub :exists?, true do + File.stub :read, test_data do + md_erb.variables.must_equal "foo" => "bar" + end + end + + end + it "should not have test data when file does not exist" do File.stub :exists?, false do md_erb.datafile.must_equal nil