lib/hud.rb in hud-2.5.0 vs lib/hud.rb in hud-2.6.0
- old
+ new
@@ -82,13 +82,13 @@
end
class Display
module Helpers
- def display(name, from: nil, locals: {},css: nil)
+ def display(name, from: nil, locals: {})
klz = Display.build(name)
- klz.call(locals: locals).render_template(name: name, locals: @locals, from: from,css: css)
+ klz.call(locals: locals).render_template(name: name, locals: @locals, from: from)
end
alias_method :render, :display
alias_method :d, :display
alias_method :r, :display
end
@@ -102,12 +102,23 @@
class Component
attr_reader :locals
attr_reader :content
alias_method :args, :locals
-
+ class HtmlContent
+ def initialize(content)
+ @content = content
+ end
+ def to_s
+ @content
+ end
+ def css(selector)
+ Oga.parse_html(@content).css(selector).text
+ end
+ end
+
def folders
Hud.configuration.components_dirs
end
def development?
@@ -128,12 +139,11 @@
end
def display(name, locals: {},css:nil)
template = Tilt::ERBTemplate.new("#{Hud.configuration.base_path}/components/#{name.to_s}.html.erb")
result = template.render(self, locals)
- return Oga.parse_html(result).css(css) if css
- result
+ return HtmlContent.new(result)
end
alias_method :render, :display
alias_method :d, :display
alias_method :r, :display
@@ -148,11 +158,11 @@
def self.call(locals: {})
new(locals: locals)
end
- def render_template(name: nil, from: nil, locals: {},css: nil)
+ def render_template(name: nil, from: nil, locals: {})
name ||= self.class.to_s.downcase.gsub("::", "_")
base_path = Pathname.new(Rack::App::Utils.pwd)
paths_to_check = []
@@ -169,16 +179,14 @@
template = Tilt::ERBTemplate.new(path)
puts path
if from.nil?
result = template.render(self, locals)
- return Oga.parse_html(result).css(css) if css
- return result
+ return HtmlContent.new(result)
else
from_path = base_path.join(from, "components")
result = template.render(self, locals)
- return Oga.parse_html(result).css(css) if css
- return result if path.to_path.start_with? from_path.to_s
+ return HtmlContent.new(result) if path.to_path.start_with? from_path.to_s
end
end
end