hud 2.4.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hud/version.rb +1 -1
  3. data/lib/hud.rb +30 -10
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15eb234b7550aeed87f52f498aabc19ebb3ab8f1ed51f7d03dab73614c50cebe
4
- data.tar.gz: 2af6c313fbb5709e81eea3151412adb8a573f1452bbe6e1af6a023bed7e7a91c
3
+ metadata.gz: 7bbb2c2c8a520111decb888ab0ae02bc5811203e3b2e0447b9019de03757e149
4
+ data.tar.gz: 63bf018b8fe9e6274a57dd891db4efe6b5de57a07b06928a1cf1a539fa15ab56
5
5
  SHA512:
6
- metadata.gz: ef828f83aab838e11eec5da2f3a268a2b0ceabb2b2d3e4da078a6952fed10a0a5a447a5b1078eee99ef90da80b346dc9bc975a1f02dc0e0e16e8d2800b4d9e2c
7
- data.tar.gz: 9688a332a7b91c35e7032aba17a2b6cbb6444db6a0c71c91e05aed73c4b188945ba0969b545b394c2f104fc14c0aec0d87f13c8245a2e82d39620a0bd4c289c8
6
+ metadata.gz: 39374ac6630da23c9f7173a2f3317ee9efe1b8b4c657c80fad29ba87fb5aa365980a93ef9cf3cbe9902c138d5ed13996e27a871004dd80abfed0b8cf98d0e35e
7
+ data.tar.gz: 762d25bc32700fdbad514b18d6e825414c668cf8207ef000829eebd58aa4f43e0108807fc4511f313b7ba2bad23e8e71ecc4905fa9283a1bc892565cccd5e9b8
data/lib/hud/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hud
2
- VERSION = '2.4.0'
2
+ VERSION = '2.6.0'
3
3
  end
data/lib/hud.rb CHANGED
@@ -84,9 +84,9 @@ module Hud
84
84
 
85
85
  class Display
86
86
  module Helpers
87
- def display(name, from: nil, locals: {},css: nil)
87
+ def display(name, from: nil, locals: {})
88
88
  klz = Display.build(name)
89
- klz.call(locals: locals).render_template(name: name, locals: @locals, from: from,css: css)
89
+ klz.call(locals: locals).render_template(name: name, locals: @locals, from: from)
90
90
  end
91
91
  alias_method :render, :display
92
92
  alias_method :d, :display
@@ -104,7 +104,18 @@ module Hud
104
104
  attr_reader :locals
105
105
  attr_reader :content
106
106
  alias_method :args, :locals
107
-
107
+
108
+ class HtmlContent
109
+ def initialize(content)
110
+ @content = content
111
+ end
112
+ def to_s
113
+ @content
114
+ end
115
+ def css(selector)
116
+ Oga.parse_html(@content).css(selector).text
117
+ end
118
+ end
108
119
 
109
120
  def folders
110
121
  Hud.configuration.components_dirs
@@ -114,12 +125,23 @@ module Hud
114
125
  ENV["RACK_ENV"] == "development"
115
126
  end
116
127
 
128
+ def method_missing(method_name, *args, &block)
129
+ if @locals.respond_to?(method_name)
130
+ @locals.send(method_name, *args, &block)
131
+ else
132
+ super
133
+ end
134
+
135
+ end
136
+
137
+ def respond_to_missing?(method_name, include_private = false)
138
+ @locals.respond_to?(method_name) || super
139
+ end
117
140
 
118
141
  def display(name, locals: {},css:nil)
119
142
  template = Tilt::ERBTemplate.new("#{Hud.configuration.base_path}/components/#{name.to_s}.html.erb")
120
143
  result = template.render(self, locals)
121
- return Oga.parse_html(result).css(css) if css
122
- result
144
+ return HtmlContent.new(result)
123
145
  end
124
146
 
125
147
  alias_method :render, :display
@@ -138,7 +160,7 @@ module Hud
138
160
  new(locals: locals)
139
161
  end
140
162
 
141
- def render_template(name: nil, from: nil, locals: {},css: nil)
163
+ def render_template(name: nil, from: nil, locals: {})
142
164
  name ||= self.class.to_s.downcase.gsub("::", "_")
143
165
 
144
166
  base_path = Pathname.new(Rack::App::Utils.pwd)
@@ -159,13 +181,11 @@ module Hud
159
181
  puts path
160
182
  if from.nil?
161
183
  result = template.render(self, locals)
162
- return Oga.parse_html(result).css(css) if css
163
- return result
184
+ return HtmlContent.new(result)
164
185
  else
165
186
  from_path = base_path.join(from, "components")
166
187
  result = template.render(self, locals)
167
- return Oga.parse_html(result).css(css) if css
168
- return result if path.to_path.start_with? from_path.to_s
188
+ return HtmlContent.new(result) if path.to_path.start_with? from_path.to_s
169
189
  end
170
190
 
171
191
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hud
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delaney Kuldvee Burke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-16 00:00:00.000000000 Z
11
+ date: 2024-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler