gloo 4.4.0 → 4.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8433bf6ce21086f0a4ade5d45ef2c4bca77aa0d43edf087304a84b08d91ca49a
4
- data.tar.gz: 0a9bb39b56d34eb411b617cd8260aaf42afc8574aa7535dc61eedef21d6fc593
3
+ metadata.gz: 5b1e92d71d83b685d683e227bdd72ff8e7fdd5b407b31d979f9c19feae43c260
4
+ data.tar.gz: 1aae0b03ead99c6f5217c1ba4e74eda67cc094ddff5e444f9ca885758d4fd6a1
5
5
  SHA512:
6
- metadata.gz: 80bf8f11fe5329c2475fe95839f995f6d6726f7c9798701a98d0ba80fe1bcfc3f0004c5c9fd34f931d65c8587542abdbdaba3e1bc5f0e554a91b44788690ef0f
7
- data.tar.gz: 5fdecb6bfcfdf629db8f48cd7a8a8b41727d7461984d2131c697ba39e7e68113c87e5034b4ca165d67a7cb1a1ce1e693563eed0f4c2ff60c82b78c1ac05c511d
6
+ metadata.gz: dcd415b7a6328f5ad4ba0450e5a844e5abb22cd4d7367dc768f68c70cebd7c4f37661858617b0838209542a8f6718048456a376a6f35a67b522d812498bf4651
7
+ data.tar.gz: 78e495f4c2ec8d377c7e085a496a585071e9396d154e1a0c40fa478e68eb2522840b40bfa0d7c45308bb682373abbda5b23f75dbcfd4fe067def9945a0ca704d
data/lib/VERSION CHANGED
@@ -1 +1 @@
1
- 4.4.0
1
+ 4.6.0
data/lib/VERSION_NOTES CHANGED
@@ -1,3 +1,11 @@
1
+ 4.6.0 - 2025.08.24
2
+ - Adds option to render inline file data (rather than a file on disk)
3
+
4
+
5
+ 4.5.0 - 2025.08.05
6
+ - Adds option to use assets in the user lib.
7
+
8
+
1
9
  4.4.0 - 2025.07.30
2
10
  - Adds form and fields
3
11
  - Adds option to include image_tag and other asset tags in helper rendering.
@@ -42,6 +42,7 @@ module Gloo
42
42
  FILE_TYPE = 'file_type'.freeze
43
43
  FILE_PATH = 'file_path'.freeze
44
44
  FILE_NAME = 'file_name'.freeze
45
+ FILE_DATA = 'file_data'.freeze
45
46
  DOWNLOAD_FILE = 'download_file'.freeze
46
47
 
47
48
  #
@@ -506,6 +507,17 @@ module Gloo
506
507
  return o&.value
507
508
  end
508
509
 
510
+ #
511
+ # Get the File content
512
+ #
513
+ def file_data
514
+ o = find_child FILE_DATA
515
+ return nil unless o
516
+
517
+ o = Gloo::Objs::Alias.resolve_alias( @engine, o )
518
+ return o&.value
519
+ end
520
+
509
521
  #
510
522
  # Get the name of the file.
511
523
  #
@@ -530,7 +542,12 @@ module Gloo
530
542
  #
531
543
  def render_file params
532
544
  type = file_type
533
- data = File.binread file_path
545
+ inline_content = file_data
546
+ if inline_content.nil?
547
+ data = File.binread( file_path )
548
+ else
549
+ data = inline_content
550
+ end
534
551
  code = Gloo::WebSvr::ResponseCode::SUCCESS
535
552
  fname = file_name
536
553
  download = download_file
@@ -8,6 +8,7 @@ module Gloo
8
8
  module WebSvr
9
9
  class Asset
10
10
 
11
+ LIB_FOLDER = 'lib'.freeze
11
12
  ASSET_FOLDER = 'asset'.freeze
12
13
  IMAGE_FOLDER = 'image'.freeze
13
14
  STYLESHEET_FOLDER = 'stylesheet'.freeze
@@ -35,6 +36,55 @@ module Gloo
35
36
  end
36
37
 
37
38
 
39
+ # ---------------------------------------------------------------------
40
+ # lib asset Helpers
41
+ # ---------------------------------------------------------------------
42
+
43
+ #
44
+ # Get the asset folder in the User's lib.
45
+ # Returns nil if it does not exist.
46
+ #
47
+ def lib_asset_folder
48
+ dir = File.join( @engine.settings.user_root, LIB_FOLDER, ASSET_FOLDER )
49
+ return dir if Dir.exist?( dir )
50
+
51
+ return nil
52
+ end
53
+
54
+ #
55
+ # Get the stylesheets folder in the User's lib.
56
+ # Returns nil if it does not exist.
57
+ #
58
+ def lib_stylesheet_folder
59
+ dir = File.join( lib_asset_folder, STYLESHEET_FOLDER )
60
+ return dir if Dir.exist?( dir )
61
+
62
+ return nil
63
+ end
64
+
65
+ #
66
+ # Get the javascript folder in the User's lib.
67
+ # Returns nil if it does not exist.
68
+ #
69
+ def lib_javascript_folder
70
+ dir = File.join( lib_asset_folder, JAVASCRIPT_FOLDER )
71
+ return dir if Dir.exist?( dir )
72
+
73
+ return nil
74
+ end
75
+
76
+ #
77
+ # Get the images folder in the User's lib.
78
+ # Returns nil if it does not exist.
79
+ #
80
+ def lib_image_folder
81
+ dir = File.join( lib_asset_folder, IMAGE_FOLDER )
82
+ return dir if Dir.exist?( dir )
83
+
84
+ return nil
85
+ end
86
+
87
+
38
88
  # ---------------------------------------------------------------------
39
89
  # Asset Helpers
40
90
  # ---------------------------------------------------------------------
@@ -79,6 +129,12 @@ module Gloo
79
129
  # Look in the web server's asset folder.
80
130
  pn = File.join( asset_folder, pn )
81
131
 
132
+ # Try the lib assets if not found
133
+ unless File.exist? pn
134
+ lib = lib_asset_folder
135
+ pn = File.join( lib, file.value ) if lib
136
+ end
137
+
82
138
  return pn
83
139
  end
84
140
 
@@ -214,6 +270,11 @@ module Gloo
214
270
  def add_images
215
271
  @log.debug 'Adding image asset routes to web server…'
216
272
 
273
+ lib = lib_image_folder
274
+ if lib
275
+ add_files_in_folder( lib, @images, IMAGE_FOLDER )
276
+ end
277
+
217
278
  return unless File.exist? image_folder
218
279
 
219
280
  # for each file in the images folder
@@ -227,6 +288,11 @@ module Gloo
227
288
  def add_stylesheets
228
289
  @log.debug 'Adding stylesheet asset routes to web server…'
229
290
 
291
+ lib = lib_stylesheet_folder
292
+ if lib
293
+ add_files_in_folder( lib, @stylesheets, STYLESHEET_FOLDER )
294
+ end
295
+
230
296
  return unless File.exist? stylesheet_folder
231
297
 
232
298
  # for each file in the stylesheets folder
@@ -245,6 +311,11 @@ module Gloo
245
311
  def add_javascript
246
312
  @log.debug 'Adding javascript asset routes to web server…'
247
313
 
314
+ lib = lib_javascript_folder
315
+ if lib
316
+ add_files_in_folder( lib, @javascript, JAVASCRIPT_FOLDER )
317
+ end
318
+
248
319
  return unless File.exist? javascript_folder
249
320
 
250
321
  # for each file in the javascript folder
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gloo
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.0
4
+ version: 4.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Crane
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-07-30 00:00:00.000000000 Z
11
+ date: 2025-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler