syntropy 0.21 → 0.22

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: 8069c4fe6a21289babda24dae14b580c5ea476a5d77bdcb09e31ae72d751459c
4
- data.tar.gz: de80dbc652706f64819cef25d23ca81f19ed0e628d2860ae01a0e5792ea1bc6d
3
+ metadata.gz: 3b4c22909d2138e53068131ae1c5028c435bc89da146f54a5b920038922fc0c1
4
+ data.tar.gz: a8554b368ff3a3921315d46f900b68336c02eb52e3bbc15cb216ff84f7cecc28
5
5
  SHA512:
6
- metadata.gz: ec0769f1619a71b926a19c56499b28c4e2331d05d417c8d0d6d3b21c1804a2ea2e52c93307a716c289c381b617bb66fcd174bb92b0c9b612f80f7561b32f0bba
7
- data.tar.gz: b836b5a0bd012ae3a179c515cb177959723da53e99c0bb2212a1b5caab6270b38a9a33282b73279a6915ac768324cd61604ce6db02237f33b55980145c87f5e8
6
+ metadata.gz: bb028e99b10297bfd69f2f6635959c16bdfcd6c2456a1eec0420e49510f3212b4f15eb44ca217d7b6900fa3aa4aaef1b8ce418dd8d1efe9852b6ea069bbcf91c
7
+ data.tar.gz: 83b2fb77886360cff21cc8859fe57f5a9f7a2c53e14d59f7a50118380f47fed955fd774e62215f8745c13b027ad52717c699768e6c416017d307f477ccce3862
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.22 2025-09-29
2
+
3
+ - Fix `@ref` for index modules
4
+
1
5
  # 0.21 2025-09-29
2
6
 
3
7
  - Fix routing with wildcard `index+.rb` modules
@@ -98,7 +98,7 @@ module Syntropy
98
98
 
99
99
  @fn_map[fn] = ref
100
100
  code = IO.read(fn)
101
- env = @env.merge(module_loader: self, ref: ref)
101
+ env = @env.merge(module_loader: self, ref: clean_ref(ref))
102
102
  m = Syntropy::Module.load(env, code, fn)
103
103
  add_dependencies(ref, m.__dependencies__)
104
104
  export_value = transform_module_export_value(m.__export_value__)
@@ -110,6 +110,12 @@ module Syntropy
110
110
  }
111
111
  end
112
112
 
113
+ def clean_ref(ref)
114
+ return '/' if ref =~ /^index(\+)?$/
115
+
116
+ ref.gsub(/\/index(?:\+)?$/, '')
117
+ end
118
+
113
119
  # Transforms the given export value. If the value is nil, an exception is
114
120
  # raised.
115
121
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Syntropy
4
- VERSION = '0.21'
4
+ VERSION = '0.22'
5
5
  end
@@ -0,0 +1,5 @@
1
+ def env
2
+ @env
3
+ end
4
+
5
+ export self
@@ -0,0 +1,5 @@
1
+ def env
2
+ @env
3
+ end
4
+
5
+ export self
data/test/test_module.rb CHANGED
@@ -43,6 +43,12 @@ class ModuleTest < Minitest::Test
43
43
  assert_equal @machine, mod.machine
44
44
  assert_equal @loader, mod.module_loader
45
45
  assert_equal 42, mod.app
46
+
47
+ assert_equal mod, mod.module_const
48
+ assert_equal @env.merge(module_loader: @loader, ref: '_lib/env'), mod.env
49
+ assert_equal @machine, mod.machine
50
+ assert_equal @loader, mod.module_loader
51
+ assert_equal 42, mod.app
46
52
  end
47
53
 
48
54
  def test_dependency_invalidation
@@ -54,4 +60,12 @@ class ModuleTest < Minitest::Test
54
60
 
55
61
  assert_equal [], @loader.modules.keys
56
62
  end
63
+
64
+ def test_index_module_env
65
+ mod = @loader.load('mod/bar/index+')
66
+ assert_equal 'mod/bar', mod.env[:ref]
67
+
68
+ mod = @loader.load('mod/foo/index')
69
+ assert_equal 'mod/foo', mod.env[:ref]
70
+ end
57
71
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syntropy
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.21'
4
+ version: '0.22'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -236,6 +236,8 @@ files:
236
236
  - test/app/bar.rb
237
237
  - test/app/baz.rb
238
238
  - test/app/index.html
239
+ - test/app/mod/bar/index+.rb
240
+ - test/app/mod/foo/index.rb
239
241
  - test/app/params/[foo].rb
240
242
  - test/app/rss.rb
241
243
  - test/app/tmp.rb