hud 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hud/version.rb +1 -1
  3. data/lib/hud.rb +26 -7
  4. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c81ae686bbd0cd97c469d98c2baaaab165e50859bcd8e40325b31d20baedf95
4
- data.tar.gz: 7debdf245e083c85c681c058b73281a74fe3c9d82492606cce23bd6efd21312d
3
+ metadata.gz: 5c264460c6c444bde6f97983a8bb88499df7ae1496f45ddd9593861ff40a7bde
4
+ data.tar.gz: 2c7b51703a3ed14ace9639dd746720e67d39a0fb016f74a1954ef6396732542b
5
5
  SHA512:
6
- metadata.gz: 8a3d655457bc738523a5eb1fec70ccbbf2f79561a7751db775fe72953761a8c9e47b30045d658db04b723c7376ed25fb0f0448fca17404cce1f312f66777f5cb
7
- data.tar.gz: 8e6f24a2ed10b1e9f0675beaa1e6b74885da602c3a0c3aa33f20fb9dec1b650b61c602758573578c84ea640c82fe65920950dac4e6660b00c8016ba710b75e0e
6
+ metadata.gz: 988b7e292df46f14580b187c9c49eed071093183e9c8457732b7a70139ec524967ba9ccd10cb909f2fdba6206ad1ad07f4164a59652fbf7bef0e840170ed90f1
7
+ data.tar.gz: f8102b74c4d233455eeb6e48a029685155b73798976c77013d893d85fe4d6a80b6703bef75232c3fd4f310c63900ef5c07d9d7aa5aa7a51b7014b0b6a19b43ae
data/lib/hud/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hud
2
- VERSION = '2.3.0'
2
+ VERSION = '2.5.0'
3
3
  end
data/lib/hud.rb CHANGED
@@ -2,6 +2,7 @@ require "rack/app"
2
2
  require "yaml"
3
3
  require "tilt"
4
4
  require "pry"
5
+ require "oga"
5
6
  require "ostruct"
6
7
  require "tilt/erb"
7
8
  require "rack/app/front_end"
@@ -83,9 +84,9 @@ module Hud
83
84
 
84
85
  class Display
85
86
  module Helpers
86
- def display(name, from: nil, locals: {})
87
+ def display(name, from: nil, locals: {},css: nil)
87
88
  klz = Display.build(name)
88
- klz.call(locals: locals).render_template(name: name, locals: @locals, from: from)
89
+ klz.call(locals: locals).render_template(name: name, locals: @locals, from: from,css: css)
89
90
  end
90
91
  alias_method :render, :display
91
92
  alias_method :d, :display
@@ -113,10 +114,24 @@ module Hud
113
114
  ENV["RACK_ENV"] == "development"
114
115
  end
115
116
 
117
+ def method_missing(method_name, *args, &block)
118
+ if @locals.respond_to?(method_name)
119
+ @locals.send(method_name, *args, &block)
120
+ else
121
+ super
122
+ end
123
+
124
+ end
125
+
126
+ def respond_to_missing?(method_name, include_private = false)
127
+ @locals.respond_to?(method_name) || super
128
+ end
116
129
 
117
- def display(name, locals: {})
130
+ def display(name, locals: {},css:nil)
118
131
  template = Tilt::ERBTemplate.new("#{Hud.configuration.base_path}/components/#{name.to_s}.html.erb")
119
- template.render(self, locals)
132
+ result = template.render(self, locals)
133
+ return Oga.parse_html(result).css(css) if css
134
+ result
120
135
  end
121
136
 
122
137
  alias_method :render, :display
@@ -135,7 +150,7 @@ module Hud
135
150
  new(locals: locals)
136
151
  end
137
152
 
138
- def render_template(name: nil, from: nil, locals: {})
153
+ def render_template(name: nil, from: nil, locals: {},css: nil)
139
154
  name ||= self.class.to_s.downcase.gsub("::", "_")
140
155
 
141
156
  base_path = Pathname.new(Rack::App::Utils.pwd)
@@ -155,10 +170,14 @@ module Hud
155
170
 
156
171
  puts path
157
172
  if from.nil?
158
- return template.render(self, locals)
173
+ result = template.render(self, locals)
174
+ return Oga.parse_html(result).css(css) if css
175
+ return result
159
176
  else
160
177
  from_path = base_path.join(from, "components")
161
- return template.render(self, locals) if path.to_path.start_with? from_path.to_s
178
+ result = template.render(self, locals)
179
+ return Oga.parse_html(result).css(css) if css
180
+ return result if path.to_path.start_with? from_path.to_s
162
181
  end
163
182
 
164
183
  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.3.0
4
+ version: 2.5.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-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: oga
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  description:
154
168
  email:
155
169
  - delaney@vidtreon.com