railpack 1.2.11 → 1.2.12
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 +4 -4
- data/lib/railpack/config.rb +39 -11
- data/lib/railpack/version.rb +1 -1
- metadata +2 -3
- data/sig/railpack.rbs +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 21ff002773c07ac74af2a193632392fd1530c3ff81c1fcc4e98fc6aee54c685a
|
|
4
|
+
data.tar.gz: a1e8080cb6ad3b1e0ec5918212c0f412cb44e8a2d510848b5e400e11e35e3d8a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b1167de6777d81b2ba4d1818ad323eba5310fc32e0cf592f777db16a9d276c75451a6c2e372570e2d367e8fabb91055efe68e356d68932f6074c72ef535e47d
|
|
7
|
+
data.tar.gz: 07f6a5a9438f11a53cf552c4bdc302a9be6a83938d595d416a3051ec4c2398ca2569ad9c9882413acfb1aa165581a7c872a4cdb90a5c57fc523079732fc1750f
|
data/lib/railpack/config.rb
CHANGED
|
@@ -4,10 +4,17 @@ module Railpack
|
|
|
4
4
|
class Config
|
|
5
5
|
class Error < StandardError; end
|
|
6
6
|
|
|
7
|
+
# Known config keys that get explicit accessors
|
|
8
|
+
CONFIG_KEYS = %w[
|
|
9
|
+
target format minify sourcemap splitting
|
|
10
|
+
entrypoint entrypoints outdir platform mode analyze_bundle
|
|
11
|
+
].freeze
|
|
12
|
+
|
|
7
13
|
attr_reader :config
|
|
8
14
|
|
|
9
15
|
def initialize
|
|
10
16
|
@config = load_config
|
|
17
|
+
@merged_cache = {}
|
|
11
18
|
end
|
|
12
19
|
|
|
13
20
|
def current_env
|
|
@@ -18,13 +25,25 @@ module Railpack
|
|
|
18
25
|
end
|
|
19
26
|
end
|
|
20
27
|
|
|
28
|
+
# Explicit accessors for known config keys
|
|
29
|
+
CONFIG_KEYS.each do |key|
|
|
30
|
+
define_method(key) do |env = current_env|
|
|
31
|
+
for_environment(env)[key]
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
21
35
|
def for_environment(env = current_env)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
36
|
+
@merged_cache[env.to_s] ||= begin
|
|
37
|
+
base_config = @config["default"] || {}
|
|
38
|
+
bundler_config = bundler_config(env)
|
|
39
|
+
env_config = @config[env.to_s] || {}
|
|
40
|
+
|
|
41
|
+
# Merge: default <- bundler <- environment
|
|
42
|
+
merged = deep_merge(deep_merge(base_config, bundler_config), env_config)
|
|
25
43
|
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
# Deep freeze for immutability
|
|
45
|
+
deep_freeze(merged)
|
|
46
|
+
end
|
|
28
47
|
end
|
|
29
48
|
|
|
30
49
|
def bundler(env = current_env)
|
|
@@ -42,12 +61,10 @@ module Railpack
|
|
|
42
61
|
def method_missing(method, *args)
|
|
43
62
|
config_key = method.to_s
|
|
44
63
|
if method.end_with?('=')
|
|
45
|
-
# Setter -
|
|
46
|
-
|
|
47
|
-
@config[current_env.to_s] ||= {}
|
|
48
|
-
@config[current_env.to_s][key] = args.first
|
|
64
|
+
# Setter - no longer allowed, config is immutable
|
|
65
|
+
raise Error, "Config is immutable. Set values in config/railpack.yml"
|
|
49
66
|
else
|
|
50
|
-
# Getter - read from merged config
|
|
67
|
+
# Getter - read from merged config (backward compatibility)
|
|
51
68
|
env = args.first || current_env
|
|
52
69
|
return for_environment(env)[config_key] if for_environment(env).key?(config_key)
|
|
53
70
|
super
|
|
@@ -105,7 +122,7 @@ module Railpack
|
|
|
105
122
|
|
|
106
123
|
def load_config
|
|
107
124
|
if config_path.exist?
|
|
108
|
-
YAML.safe_load(File.read(config_path), aliases:
|
|
125
|
+
YAML.safe_load(File.read(config_path), permitted_classes: [], aliases: false)
|
|
109
126
|
else
|
|
110
127
|
default_config
|
|
111
128
|
end
|
|
@@ -161,5 +178,16 @@ module Railpack
|
|
|
161
178
|
end
|
|
162
179
|
end
|
|
163
180
|
end
|
|
181
|
+
|
|
182
|
+
def deep_freeze(object)
|
|
183
|
+
case object
|
|
184
|
+
when Hash
|
|
185
|
+
object.each_value { |v| deep_freeze(v) }.freeze
|
|
186
|
+
when Array
|
|
187
|
+
object.each { |v| deep_freeze(v) }.freeze
|
|
188
|
+
else
|
|
189
|
+
object.freeze
|
|
190
|
+
end
|
|
191
|
+
end
|
|
164
192
|
end
|
|
165
193
|
end
|
data/lib/railpack/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: railpack
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 21tycoons LLC
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-01-
|
|
10
|
+
date: 2026-01-27 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: minitest
|
|
@@ -47,7 +47,6 @@ files:
|
|
|
47
47
|
- lib/railpack/manager.rb
|
|
48
48
|
- lib/railpack/version.rb
|
|
49
49
|
- lib/tasks/railpack.rake
|
|
50
|
-
- sig/railpack.rbs
|
|
51
50
|
- test/bundler_test.rb
|
|
52
51
|
- test/config_test.rb
|
|
53
52
|
- test/manager_test.rb
|
data/sig/railpack.rbs
DELETED