rucy 0.3.15 → 0.4.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: cc4f7fee7f0a2aedcf492a2b3621b9c7645da603fcbfff3db9da7e664f6fca2c
4
- data.tar.gz: 9a13b6805b3d458f118d3b8ee352bab603dc16a778a79263ee1997383969380d
3
+ metadata.gz: 0ca0dce824c22dfee0f0bcc9e8a593d29a55d793d2e71cda65b5aa0438a1f42a
4
+ data.tar.gz: 5600a73ce3d2c837f2fec6d3052ece836ce2f11d8035c5192c4193ffced10208
5
5
  SHA512:
6
- metadata.gz: 9c16bd8827c6754a7d8806660d9e752ee59f1cf6979cc6ae4e593014012fdcda6feb2ce4d65021f72b9dc083c90b07023f99919d67bb51e89fa184cedef83229
7
- data.tar.gz: 7100170bfbe2d93b187f44eb761a9908d3f23c06b7832c1161620a491597f473e4034b6c555fc4d88a88c9e2d8e8e05aa6ecb10dae9d0e7ece74c9661a3417e0
6
+ metadata.gz: 38794541c07f9ea75e4616a572c225427eca8ff86ea70bcd19e53114040bd270cf441e0d984fa876461de189ffb0baaa25f7e17e9a66530cadeef919c991acdd
7
+ data.tar.gz: d41b2ec54cbb56fbd6ba86294bba9e20a63ccf3bc94078662489d4e42137a8f5f8ceda6688477a809583e14e9fe17db181e07f65be8a31e85b876ea32689cc73
@@ -26,8 +26,17 @@ jobs:
26
26
  - name: setup dependencies
27
27
  run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
28
28
 
29
+ - name: packages
30
+ run: bundle exec rake packages
31
+
32
+ - name: setup zig
33
+ if: github.event.repository.name == 'reflex-terminal'
34
+ uses: mlugg/setup-zig@v2
35
+ with:
36
+ version: 0.16.0
37
+
29
38
  - name: test
30
- run: bundle exec rake packages test
39
+ run: bundle exec rake test
31
40
 
32
41
  - name: create gem
33
42
  id: gem
@@ -27,6 +27,15 @@ jobs:
27
27
  - name: packages
28
28
  run: bundle exec rake verbose packages
29
29
 
30
+ - name: setup zig
31
+ if: github.event.repository.name == 'reflex-terminal'
32
+ uses: mlugg/setup-zig@v2
33
+ with:
34
+ version: 0.16.0
35
+
36
+ - name: vendor
37
+ run: bundle exec rake vendor
38
+
30
39
  - name: lib
31
40
  run: bundle exec rake verbose lib
32
41
 
data/ChangeLog.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # rucy ChangeLog
2
2
 
3
3
 
4
+ ## [v0.4.0] - 2026-08-04
5
+
6
+ - Add Rucy::yield and route extension block yields through it
7
+ - Catch RubyException thrown across extension bundles
8
+
9
+
4
10
  ## [v0.3.15] - 2026-06-23
5
11
 
6
12
  - Add define_wrapper_equality_methods for wrapper identity
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.15
1
+ 0.4.0
@@ -234,6 +234,10 @@
234
234
  catch (const std::exception& e) \
235
235
  { \
236
236
  Xot::String text = e.what(), type = typeid(e).name(); \
237
+ if (type == typeid(Rucy::RubyException).name()) \
238
+ { \
239
+ RUCY_GOTO_RAISE(((const Rucy::RubyException&) e).value()); \
240
+ } \
237
241
  if (!type.empty()) \
238
242
  { \
239
243
  if (!text.empty()) text += " "; \
@@ -52,6 +52,20 @@ namespace Rucy
52
52
 
53
53
  % end
54
54
 
55
+ % NTIMES.each do |n|
56
+ inline Value yield (<%= params(n, ", ") {|i| "Value v#{i}"} %>)
57
+ {
58
+ % if n == 0
59
+ RubyValue* argv = NULL;
60
+ % else
61
+ RubyValue argv[] = {<%= params(n, ", ") {|i| "v#{i}"} %>};
62
+ % end
63
+ return protect(rb_yield_values2, <%= n %>, (const RubyValue*) argv);
64
+ }
65
+
66
+ % end
67
+
68
+
55
69
  }// Rucy
56
70
 
57
71
 
@@ -6,7 +6,7 @@ module Rucy
6
6
  module_function
7
7
 
8
8
  def name(downcase = false)
9
- super().split('::')[-2].then {|s|
9
+ super().split('::')[..-2].join.then {|s|
10
10
  downcase ? s.gsub(/([a-z])([A-Z])/) {"#{$1}-#{$2}"}.downcase : s
11
11
  }
12
12
  end
data/rucy.gemspec CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.platform = Gem::Platform::RUBY
26
26
  s.required_ruby_version = '>= 3.0.0'
27
27
 
28
- s.add_dependency 'xot', '~> 0.3.15'
28
+ s.add_dependency 'xot', '~> 0.4.0'
29
29
 
30
30
  s.files = `git ls-files`.split $/
31
31
  s.executables = s.files.grep(%r{^bin/}) {|f| File.basename f}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rucy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.15
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-22 00:00:00.000000000 Z
11
+ date: 2026-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.15
19
+ version: 0.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.3.15
26
+ version: 0.4.0
27
27
  description: This library helps you to develop Ruby Extension by C++.
28
28
  email: xordog@gmail.com
29
29
  executables: