lib/servel/haml_context.rb in servel-0.14.0 vs lib/servel/haml_context.rb in servel-0.15.0

- old
+ new

@@ -1,54 +1,54 @@ -class Servel::HamlContext - extend Servel::Instrumentation - include ActiveSupport::NumberHelper - - LOCK = Mutex.new - - def self.render(template, locals) - [200, {}, [new.render(template, locals)]] - end - - def initialize - @build_path = Pathname.new(__FILE__).dirname.realpath + 'templates' - end - - def render(template, locals = {}) - haml_engine(template).render(self, locals) - end - - def partial(name, locals = {}) - render("_#{name}.haml", locals) - end - - def include(path) - (@build_path + path).read - end - - def sort_attrs(sort, current_method) - data = { sort_method: current_method, sort_direction: "asc" } - classes = ["sortable"] - if sort[:method] == current_method - data[:sort_active] = true - data[:sort_direction] = sort[:direction] - classes << "sort-active" - classes << "sort-#{sort[:direction]}" - end - - { - data: data, - class: classes - } - end - - def haml_engine(path) - LOCK.synchronize do - @@haml_engine_cache ||= {} - unless @@haml_engine_cache.key?(path) - @@haml_engine_cache[path] = Hamlit::Template.new(filename: path) { include(path) } - end - @@haml_engine_cache[path] - end - end - - instrument :render, :partial, :include +class Servel::HamlContext + extend Servel::Instrumentation + include ActiveSupport::NumberHelper + + LOCK = Mutex.new + + def self.render(template, locals) + [200, {}, [new.render(template, locals)]] + end + + def initialize + @build_path = Pathname.new(__FILE__).dirname.realpath + 'templates' + end + + def render(template, locals = {}) + haml_engine(template).render(self, locals) + end + + def partial(name, locals = {}) + render("_#{name}.haml", locals) + end + + def include(path) + (@build_path + path).read + end + + def sort_attrs(sort, current_method) + data = { sort_method: current_method, sort_direction: "asc" } + classes = ["sortable"] + if sort[:method] == current_method + data[:sort_active] = true + data[:sort_direction] = sort[:direction] + classes << "sort-active" + classes << "sort-#{sort[:direction]}" + end + + { + data: data, + class: classes + } + end + + def haml_engine(path) + LOCK.synchronize do + @@haml_engine_cache ||= {} + unless @@haml_engine_cache.key?(path) + @@haml_engine_cache[path] = Hamlit::Template.new(filename: path) { include(path) } + end + @@haml_engine_cache[path] + end + end + + instrument :render, :partial, :include end \ No newline at end of file