proscenium 0.15.0.beta.6-arm64-darwin → 0.15.0.beta.7-arm64-darwin

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0cc86ca359e86f6247886b0ae45bd64cfedcf371ddd9ac72dd6bdc5de19d132f
4
- data.tar.gz: 2d064cae06399700c5ab06d3fba058815ca61003d9c95e254e1e5fcff56b828b
3
+ metadata.gz: 22220a996970e7d68157de006512c184796c9716279bf5ab1aa37d7c5baaff2c
4
+ data.tar.gz: 88eb65f121070d784d8755ff99a4ff98c873627e85dbd88b7e970ccb55558b52
5
5
  SHA512:
6
- metadata.gz: b3935a11fd5fdfa4a38304a7b4ddb9bc604e1bde3f2c60e018463492d02e895f4512234d86acfd33236ffa18e6a510b037060c6c8fb418b1f37a2fbd3ef1cfbb
7
- data.tar.gz: c5d303f84ee3849e39025658088825f16175cda0503f523e73655832b7d8cd4d42416a4b41690435b044cb22d01a377426ef091d554a196370374122bc9e1afe
6
+ metadata.gz: a839a7d81bc463f486b1453cdecd258e0268282de72a7faadd598e3cc953ba582381e43cf3d95cd21e30c179b190e544c87af20dec8f0ba204d82ffef7ef833f
7
+ data.tar.gz: dd142648607c8a846a51bcab4f65acf5d83f678ab98afd027a34f29fddd8271e2270308c47e2052351def2ecca7b9b090661b52c8fde45c24f2db4298e4ea131
Binary file
@@ -61,19 +61,36 @@ module Proscenium
61
61
  #
62
62
  # @param filepath [Pathname] Absolute file system path of the Ruby file to sideload.
63
63
  def sideload(filepath, **options)
64
+ return if !Proscenium.config.side_load || (options[:js] == false && options[:css] == false)
65
+
66
+ sideload_js(filepath, **options) unless options[:js] == false
67
+ sideload_css(filepath, **options) unless options[:css] == false
68
+ end
69
+
70
+ def sideload_js(filepath, **options)
64
71
  return unless Proscenium.config.side_load
65
72
 
66
73
  filepath = Rails.root.join(filepath) unless filepath.is_a?(Pathname)
67
74
  filepath = filepath.sub_ext('')
68
75
 
69
- import_if_exists = lambda do |x|
76
+ JS_EXTENSIONS.find do |x|
70
77
  if (fp = filepath.sub_ext(x)).exist?
71
78
  import(Resolver.resolve(fp.to_s), sideloaded: true, **options)
72
79
  end
73
80
  end
81
+ end
74
82
 
75
- JS_EXTENSIONS.find(&import_if_exists) unless options[:js] == false
76
- CSS_EXTENSIONS.find(&import_if_exists) unless options[:css] == false
83
+ def sideload_css(filepath, **options)
84
+ return unless Proscenium.config.side_load
85
+
86
+ filepath = Rails.root.join(filepath) unless filepath.is_a?(Pathname)
87
+ filepath = filepath.sub_ext('')
88
+
89
+ CSS_EXTENSIONS.find do |x|
90
+ if (fp = filepath.sub_ext(x)).exist?
91
+ import(Resolver.resolve(fp.to_s), sideloaded: true, **options)
92
+ end
93
+ end
77
94
  end
78
95
 
79
96
  def each_stylesheet(delete: false)
@@ -127,16 +127,28 @@ module Proscenium
127
127
  options[k] = obj.instance_eval(&options[k]) if options[k].is_a?(Proc)
128
128
  end
129
129
 
130
+ css_imports = []
131
+
130
132
  klass = obj.class
131
133
  while klass.respond_to?(:source_path) && klass.source_path && !klass.abstract_class
132
134
  if klass.respond_to?(:sideload)
133
135
  klass.sideload options
134
- else
136
+ elsif options[:css] == false
135
137
  Importer.sideload klass.source_path, **options
138
+ else
139
+ Importer.sideload_js klass.source_path, **options
140
+ css_imports << klass.source_path
136
141
  end
137
142
 
138
143
  klass = klass.superclass
139
144
  end
145
+
146
+ # The reason why we sideload CSS after JS is because the order of CSS is important.
147
+ # Basically, the layout should be loaded before the view so that CSS cascading works i9n the
148
+ # right direction.
149
+ css_imports.reverse_each do |it|
150
+ Importer.sideload_css it, **options
151
+ end
140
152
  end
141
153
  end
142
154
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Proscenium
4
- VERSION = '0.15.0.beta.6'
4
+ VERSION = '0.15.0.beta.7'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proscenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0.beta.6
4
+ version: 0.15.0.beta.7
5
5
  platform: arm64-darwin
6
6
  authors:
7
7
  - Joel Moss
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-23 00:00:00.000000000 Z
11
+ date: 2024-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -64,14 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 1.16.3
67
+ version: 1.17.0
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 1.16.3
74
+ version: 1.17.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: oj
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -217,11 +217,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
217
  version: 2.7.0
218
218
  required_rubygems_version: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - ">"
220
+ - - ">="
221
221
  - !ruby/object:Gem::Version
222
- version: 1.3.1
222
+ version: '0'
223
223
  requirements: []
224
- rubygems_version: 3.4.19
224
+ rubygems_version: 3.5.11
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: The engine powering your Rails frontend