reight 0.1.17 → 0.1.18

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: 0a2e57d1343023c19987abf2a6405798f94da3723d462be4dfde296f87b62670
4
- data.tar.gz: dd098666e49d579fe074f0ede71984c649f74d61536b4bf127b2f26ff972ef57
3
+ metadata.gz: 1751996f1a274e567963f26fcd4b1130d2f23b33380f1757ee7caf4e26f36b36
4
+ data.tar.gz: 464e9a90cc0021ccc0437191d6ad0455f4ae7f0b4ccc325671546003d25631f0
5
5
  SHA512:
6
- metadata.gz: 4329c2328ee7a80578a6852a6e0a1666dbce51ce6b1fbc5bdf4d0d5b95bffbd0480b3e0e04cae5626819c3e9b5a25bd11d5e0bfad0ef5d2f19e91af702849e4d
7
- data.tar.gz: 8ac56863addbd24c7fc9d1c580e261e41e722a083f18179fa13abe5b8669883a51e20310f398ebc7e54e131644f28ceb769dc7c7d77bd93c23d43513b32b0fe3
6
+ metadata.gz: ac07bacf3ca5e59c3537976bc305f4b1434e53cccee9abc34c2d3d10e0f1de7c13a45a61ba8951d85964eec80bd90ec17f83c2d56e204b162f9d40be811f9ab0
7
+ data.tar.gz: b5f5bbba9ca3e19fd847c7f8510049e48af988bb3492c747b7b45ffbea46657d65d227c8a6fb146ae601027a6bc77be7bab8dda6b48ef4478bd5b870733ff475
@@ -4,6 +4,9 @@ on:
4
4
  push:
5
5
  tags: ['v[0-9]*']
6
6
 
7
+ permissions:
8
+ contents: write
9
+
7
10
  jobs:
8
11
  release:
9
12
  runs-on: macos-latest
@@ -1,3 +1,9 @@
1
+ require 'shellwords'
2
+
3
+ ALL_REPO = 'xord/all'
4
+ ALL_DIR = '../all'
5
+ ALL_FETCH_DEPTH = 100
6
+
1
7
  RENAMES = {reflex: 'reflexion'}
2
8
 
3
9
  def sh(cmd)
@@ -5,7 +11,7 @@ def sh(cmd)
5
11
  system cmd
6
12
  end
7
13
 
8
- def setup_dependencies(build: true, only: nil)
14
+ def setup_dependencies(only: nil)
9
15
  gemspec_path = `git ls-files`.lines(chomp: true).find {|l| l =~ /\.gemspec$/}
10
16
  return unless gemspec_path
11
17
 
@@ -13,44 +19,109 @@ def setup_dependencies(build: true, only: nil)
13
19
  name = File.basename gemspec_path, '.gemspec'
14
20
 
15
21
  exts = File.readlines('Rakefile')
16
- .map {|l| l[%r|^\s*require\W+(\w+)/extension\W+$|, 1]}
22
+ .map {|l| l[%r|^\s*require\W+([\w\-\_]+)/extension\W+$|, 1]}
17
23
  .compact
18
24
  .reject {|ext| ext == name}
19
25
  exts = exts & [only].flatten.map(&:to_s) if only
26
+ return if exts.empty?
27
+
28
+ unless setup_dependencies_via_monorepo(exts)
29
+ setup_dependencies_via_each_repo_by_version(gemspec, exts)
30
+ end
31
+
32
+ exts.each {|ext| sh %( cd ../#{ext} && rake ext )}
33
+ end
34
+
35
+ def setup_dependencies_via_monorepo(exts)
36
+ return false unless checkout_monorepo
37
+ exts.each {|ext| sh %( ln -snf all/#{ext} ../#{ext} )}
38
+ true
39
+ end
40
+
41
+ def checkout_monorepo()
42
+ uuid = `git log -1 --format=%B`[/^\[\[([0-9a-fA-F-]+)\]\]$/, 1]
43
+ return false unless uuid
44
+
45
+ commit = setup_monorepo uuid
46
+ return false unless commit
47
+
48
+ Dir.chdir(ALL_DIR) {sh %( git checkout -q #{commit} )}
49
+ true
50
+ end
51
+
52
+ def setup_monorepo(uuid)
53
+ unless File.directory? ALL_DIR
54
+ url = "https://github.com/#{ALL_REPO}.git"
55
+ sh %( git clone --no-tags --depth #{ALL_FETCH_DEPTH} #{url} #{ALL_DIR} )
56
+ end
57
+ loop do
58
+ commit = find_monorepo_commit uuid
59
+ return commit if commit
60
+
61
+ deepened = Dir.chdir ALL_DIR do
62
+ before = `git rev-list --count HEAD`.to_i
63
+ sh %( git fetch --deepen #{ALL_FETCH_DEPTH} )
64
+ `git rev-list --count HEAD`.to_i > before
65
+ end
66
+ return nil unless deepened
67
+ end
68
+ end
69
+
70
+ def find_monorepo_commit(uuid)
71
+ Dir.chdir ALL_DIR do
72
+ out = `git log origin/HEAD -F --grep="[[#{uuid}]]" --format=%H -1`.strip
73
+ out.empty? ? nil : out
74
+ end
75
+ end
20
76
 
77
+ def setup_dependencies_via_each_repo_by_version(gemspec, exts)
21
78
  exts.each do |ext|
22
79
  gem = RENAMES[ext.to_sym].then {|s| s || ext}
23
- ver = gemspec[/add_dependency.*['"]#{gem}['"].*['"]\s*>=\s*([\d\.]+)\s*['"]/, 1]
80
+ ver = gemspec[/add_dependency.*['"]#{gem}['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/, 1]
24
81
  opts = '-c advice.detachedHead=false --depth 1'
25
82
  clone = "git clone #{opts} https://github.com/xord/#{ext}.git ../#{ext}"
26
83
 
27
84
  # 'rake subtree:push' pushes all subrepos, so cloning by new tag
28
85
  # often fails before tagging each new tag
29
86
  sh %( #{clone} --branch v#{ver} || #{clone} )
30
- sh %( cd ../#{ext} && rake ext )
31
87
  end
32
88
  end
33
89
 
34
90
  def tag_versions()
35
- tags = `git tag`.lines chomp: true
36
- vers = `git log --oneline ./VERSION`
91
+ changes = changelogs
92
+ tags = `git tag`.lines chomp: true
93
+ vers = `git log --oneline ./VERSION`
37
94
  .lines(chomp: true)
38
95
  .map {|line| line.split.first[/^\w+$/]}
39
- .map {|hash| [`git cat-file -p #{hash}:./VERSION 2>/dev/null`[/[\d\.]+/], hash]}
40
- .select {|ver, hash| ver && hash}
96
+ .map {|sha| [`git cat-file -p #{sha}:./VERSION 2>/dev/null`[/[\d\.]+/], sha]}
97
+ .select {|ver, sha| ver && sha}
41
98
  .reverse
42
99
  .to_h
43
100
 
44
- changes = File.read('ChangeLog.md')
45
- .split(/^\s*##\s*\[\s*v([\d\.]+)\s*\].*$/)
46
- .slice(1..-1)
47
- .each_slice(2)
48
- .to_h
49
- .transform_values(&:strip!)
50
-
51
- vers.to_a.reverse.each do |ver, hash|
101
+ vers.to_a.reverse.each do |ver, sha|
52
102
  tag = "v#{ver}"
53
103
  break if tags.include?(tag)
54
- sh %( git tag -a -m \"#{changes[ver]&.gsub '"', '\\"'}\" #{tag} #{hash} )
104
+ sh %( git tag -a -m \"#{changes[tag]&.gsub '"', '\\"'}\" #{tag} #{sha} )
55
105
  end
56
106
  end
107
+
108
+ def release(*paths)
109
+ tag = ENV['GITHUB_REF']&.sub(%r|^refs/tags/|, '') || raise('GITHUB_REF tag not set')
110
+ notes = (changelogs[tag] || '').shellescape
111
+ paths = paths.flatten.join ' '
112
+
113
+ sh(%( gh release create #{tag} #{paths} --notes #{notes} )) ||
114
+ sh(%( gh release upload #{tag} #{paths} --clobber )) ||
115
+ raise('failed to upload to releases')
116
+ end
117
+
118
+ def changelogs()
119
+ File.read('ChangeLog.md')
120
+ .split(/^\s*##\s*\[\s*(v[\d\.]+)\s*\].*$/)
121
+ .slice(1..)
122
+ .each_slice(2)
123
+ .to_h
124
+ .transform_values(&:strip!)
125
+ rescue Errno::ENOENT
126
+ raise 'failed to get changelogs'
127
+ end
@@ -0,0 +1,37 @@
1
+ name: Release WASM
2
+
3
+ on:
4
+ push:
5
+ tags: ['v[0-9]*']
6
+
7
+ permissions:
8
+ contents: write
9
+
10
+ jobs:
11
+ wasm:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: ruby 3.2
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: 3.2
19
+
20
+ - name: checkout
21
+ uses: actions/checkout@v4
22
+
23
+ - name: checkout monorepo
24
+ run: ruby -I.github/workflows -rutils -e 'abort unless checkout_monorepo'
25
+
26
+ - name: install emscripten
27
+ uses: mymindstorm/setup-emsdk@v14
28
+ with:
29
+ version: 5.0.7
30
+
31
+ - name: build
32
+ run: cd ../all/reight/wasm && rake build
33
+
34
+ - name: upload to release
35
+ env:
36
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37
+ run: ruby -I.github/workflows -rutils -e 'release(*Dir.glob("../all/reight/wasm/output/*"))'
data/ChangeLog.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # reight ChangeLog
2
2
 
3
3
 
4
+ ## [v0.1.18] - 2026-05-10
5
+
6
+ - Support WebAssembly
7
+ - Add reight WASM release workflow
8
+
9
+
4
10
  ## [v0.1.17] - 2026-04-17
5
11
 
6
12
  - Update dependencies
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.17
1
+ 0.1.18
@@ -6,8 +6,10 @@ module Reight
6
6
 
7
7
  module_function
8
8
 
9
- def name()
10
- super.split('::')[-2]
9
+ def name(downcase = false)
10
+ super().split('::')[-2].then {|s|
11
+ downcase ? s.gsub(/([a-z])([A-Z])/) {"#{$1}-#{$2}"}.downcase : s
12
+ }
11
13
  end
12
14
 
13
15
  def version()
data/reight.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  end
11
11
 
12
12
  ext = Reight::Extension
13
- name = ext.name.downcase
13
+ name = ext.name true
14
14
  rdocs = glob.call *%w[README]
15
15
 
16
16
  s.name = name
@@ -25,13 +25,13 @@ 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.11'
29
- s.add_dependency 'rucy', '~> 0.3.11'
30
- s.add_dependency 'beeps', '~> 0.3.11'
31
- s.add_dependency 'rays', '~> 0.3.11'
32
- s.add_dependency 'reflexion', '~> 0.3.14'
33
- s.add_dependency 'processing', '~> 1.1.17'
34
- s.add_dependency 'rubysketch', '~> 0.7.18'
28
+ s.add_dependency 'xot', '~> 0.3.12'
29
+ s.add_dependency 'rucy', '~> 0.3.12'
30
+ s.add_dependency 'beeps', '~> 0.3.12'
31
+ s.add_dependency 'rays', '~> 0.3.12'
32
+ s.add_dependency 'reflexion', '~> 0.3.15'
33
+ s.add_dependency 'processing', '~> 1.1.18'
34
+ s.add_dependency 'rubysketch', '~> 0.7.19'
35
35
 
36
36
  s.files = `git ls-files`.split $/
37
37
  s.executables = s.files.grep(%r{^bin/}) {|f| File.basename f}
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_PATH: "vendor/bundle"
data/wasm/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ build/
2
+ rubies/
3
+ .data/
4
+ output/
data/wasm/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+ gem 'ruby_wasm', '~> 2.9.4'
5
+
6
+ gem 'xot', path: '../../xot'
7
+ gem 'rucy', path: '../../rucy'
8
+ gem 'beeps', path: '../../beeps'
9
+ gem 'rays', path: '../../rays'
10
+ gem 'reflexion', path: '../../reflex'
11
+ gem 'processing', path: '../../processing'
12
+ gem 'rubysketch', path: '../../rubysketch'
13
+ gem 'reight', path: '../../reight'
data/wasm/Gemfile.lock ADDED
@@ -0,0 +1,95 @@
1
+ PATH
2
+ remote: ../../beeps
3
+ specs:
4
+ beeps (0.3.11)
5
+ rucy (~> 0.3.11)
6
+ xot (~> 0.3.11)
7
+
8
+ PATH
9
+ remote: ../../processing
10
+ specs:
11
+ processing (1.1.17)
12
+ rays (~> 0.3.11)
13
+ reflexion (~> 0.3.14)
14
+ rexml
15
+ rucy (~> 0.3.11)
16
+ xot (~> 0.3.11)
17
+
18
+ PATH
19
+ remote: ../../rays
20
+ specs:
21
+ rays (0.3.11)
22
+ rucy (~> 0.3.11)
23
+ xot (~> 0.3.11)
24
+
25
+ PATH
26
+ remote: ../../reflex
27
+ specs:
28
+ reflexion (0.3.14)
29
+ rays (~> 0.3.11)
30
+ rucy (~> 0.3.11)
31
+ xot (~> 0.3.11)
32
+
33
+ PATH
34
+ remote: ../../rubysketch
35
+ specs:
36
+ rubysketch (0.7.18)
37
+ beeps (~> 0.3.11)
38
+ processing (~> 1.1.17)
39
+ rays (~> 0.3.11)
40
+ reflexion (~> 0.3.14)
41
+ rucy (~> 0.3.11)
42
+ xot (~> 0.3.11)
43
+
44
+ PATH
45
+ remote: ../../rucy
46
+ specs:
47
+ rucy (0.3.11)
48
+ xot (~> 0.3.11)
49
+
50
+ PATH
51
+ remote: ../../xot
52
+ specs:
53
+ xot (0.3.11)
54
+
55
+ PATH
56
+ remote: ..
57
+ specs:
58
+ reight (0.1.17)
59
+ beeps (~> 0.3.11)
60
+ processing (~> 1.1.17)
61
+ rays (~> 0.3.11)
62
+ reflexion (~> 0.3.14)
63
+ rubysketch (~> 0.7.18)
64
+ rucy (~> 0.3.11)
65
+ xot (~> 0.3.11)
66
+
67
+ GEM
68
+ remote: https://rubygems.org/
69
+ specs:
70
+ logger (1.7.0)
71
+ rake (13.4.2)
72
+ rexml (3.4.4)
73
+ ruby_wasm (2.9.4-aarch64-linux)
74
+ logger
75
+ ruby_wasm (2.9.4-arm64-darwin)
76
+ logger
77
+
78
+ PLATFORMS
79
+ aarch64-linux-gnu
80
+ arm64-darwin-23
81
+
82
+ DEPENDENCIES
83
+ beeps!
84
+ processing!
85
+ rake
86
+ rays!
87
+ reflexion!
88
+ reight!
89
+ ruby_wasm (~> 2.9.4)
90
+ rubysketch!
91
+ rucy!
92
+ xot!
93
+
94
+ BUNDLED WITH
95
+ 2.4.20
data/wasm/Rakefile ADDED
@@ -0,0 +1,106 @@
1
+ %w[xot]
2
+ .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
+ .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
+
5
+ require 'xot/rake/util'
6
+
7
+ include Xot::Rake
8
+
9
+
10
+ def envs()
11
+ {
12
+ CC: 'emcc',
13
+ CXX: 'em++',
14
+ AR: 'emar',
15
+ RANLIB: 'emranlib',
16
+ CPPFLAGS: '-sUSE_SDL=2',
17
+ }.map {|k, v| "#{k}=#{v}"}.join ' '
18
+ end
19
+
20
+
21
+ NAME = 'reight'
22
+
23
+ ROOT_DIR = File.expand_path '../..', __dir__
24
+ BUNDLE_DIR = 'vendor/bundle'
25
+ DATA_DIR = '.data'
26
+ OUT_DIR = 'output'
27
+
28
+ GEMS = Dir.glob("#{ROOT_DIR}/*/*.gemspec").map {File.basename File.dirname _1}
29
+ GEM_SRCS = GEMS.map {Dir.glob "#{ROOT_DIR}/#{_1}/**/*.{h,hpp,c,cpp,m,mm,rb}"}.flatten
30
+
31
+ OUT_WASM = "#{OUT_DIR}/ruby.wasm"
32
+ OUT_JS = "#{OUT_DIR}/#{NAME}.js"
33
+ OUT_DATA = "#{OUT_DIR}/#{NAME}.data"
34
+ OUT_LIB_JS = "#{OUT_DIR}/#{NAME}lib.js"
35
+
36
+
37
+ task :default => :build
38
+
39
+ task :clean do
40
+ Dir.chdir ROOT_DIR do
41
+ sh %( rake clean )
42
+ end
43
+ sh %( rm -rf build rubies #{OUT_DIR} #{BUNDLE_DIR} #{DATA_DIR} )
44
+ end
45
+
46
+ task :clobber => :clean do
47
+ Dir.chdir ROOT_DIR do
48
+ sh %( rake clobber )
49
+ end
50
+ end
51
+
52
+ task :build => [OUT_WASM, OUT_DATA]
53
+
54
+ file OUT_DATA => OUT_WASM do
55
+ emroot = `em-config EMSCRIPTEN_ROOT`.strip
56
+ raise 'emscripten not found' if emroot.empty?
57
+
58
+ packager = "#{emroot}/tools/file_packager"
59
+ opts = [
60
+ "--preload '#{DATA_DIR}@/'",
61
+ "--export-name=globalThis.__ruby_module"
62
+ ]
63
+ loader = `#{packager} #{OUT_DATA} #{opts.join ' '}`
64
+ raise 'file_packager failed' if !$?.success? || loader.empty?
65
+
66
+ File.write OUT_LIB_JS, "export function loadReightLib() {#{loader}};"
67
+ end
68
+
69
+ file OUT_WASM => [BUNDLE_DIR, OUT_DIR] + GEM_SRCS do
70
+ sh %( rm -rf #{DATA_DIR} )
71
+
72
+ GEMS.each do |gem|
73
+ filter_file "#{ROOT_DIR}/#{gem}/#{gem}.gemspec" do |s|
74
+ s.sub(/^(.*\.\s*extensions.*)$/) {$1.sub 'Rakefile', "ext/#{gem}/extconf.rb"}
75
+ end
76
+ end
77
+
78
+ ldflags = %W[
79
+ -sASYNCIFY_STACK_SIZE=#{1024 * 1024 * 4}
80
+ -sNO_DISABLE_EXCEPTION_CATCHING
81
+ -sFORCE_FILESYSTEM
82
+ -sUSE_SDL=2
83
+ -sUSE_SDL_TTF=2
84
+ -sALLOW_MEMORY_GROWTH=1
85
+ -sINITIAL_MEMORY=#{1024 * 1024 * 64}
86
+ -sEXPORTED_RUNTIME_METHODS=ccall,cwrap,UTF8ToString,stringToUTF8,FS
87
+ -sASSERTIONS=1
88
+ -fexceptions
89
+ ].reject {_1 =~ /^\s*#/}
90
+ envs = "RUBY_WASM_EMCC_LDFLAGS=' #{ldflags.join ' '}'"
91
+ sysopts = '--log-level debug'
92
+ opts = "--target wasm32-unknown-emscripten --dest_dir #{DATA_DIR} --remake -o #{OUT_JS}"
93
+ sh %( #{envs} bundle exec rbwasm #{sysopts} build #{opts} )
94
+
95
+ roots = Dir.glob('rubies/ruby-*-wasm*-*-emscripten-full-*')
96
+ .select {File.directory? _1}
97
+ raise "expected 1 root, got #{roots.size}" if roots.size != 1
98
+ sh %( cp -f #{roots.first}/usr/local/bin/ruby.wasm #{OUT_WASM} )
99
+ end
100
+
101
+ file BUNDLE_DIR do
102
+ sh %( bundle install )
103
+ end
104
+
105
+ directory OUT_DIR
106
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reight
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.17
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-17 00:00:00.000000000 Z
11
+ date: 2026-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -16,98 +16,98 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.11
19
+ version: 0.3.12
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.11
26
+ version: 0.3.12
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rucy
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.11
33
+ version: 0.3.12
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.3.11
40
+ version: 0.3.12
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: beeps
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.3.11
47
+ version: 0.3.12
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.3.11
54
+ version: 0.3.12
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rays
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.3.11
61
+ version: 0.3.12
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.3.11
68
+ version: 0.3.12
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: reflexion
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.3.14
75
+ version: 0.3.15
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.3.14
82
+ version: 0.3.15
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: processing
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.1.17
89
+ version: 1.1.18
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.1.17
96
+ version: 1.1.18
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubysketch
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.7.18
103
+ version: 0.7.19
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.7.18
110
+ version: 0.7.19
111
111
  description: A Retro Game Engine for Ruby.
112
112
  email: xordog@gmail.com
113
113
  executables:
@@ -120,6 +120,7 @@ files:
120
120
  - ".github/workflows/tag.yml"
121
121
  - ".github/workflows/test.yml"
122
122
  - ".github/workflows/utils.rb"
123
+ - ".github/workflows/wasm.yml"
123
124
  - ".gitignore"
124
125
  - CLAUDE.md
125
126
  - CONTRIBUTING.md
@@ -181,6 +182,11 @@ files:
181
182
  - test/test_map.rb
182
183
  - test/test_map_chunk.rb
183
184
  - test/test_sprite.rb
185
+ - wasm/.bundle/config
186
+ - wasm/.gitignore
187
+ - wasm/Gemfile
188
+ - wasm/Gemfile.lock
189
+ - wasm/Rakefile
184
190
  homepage: https://github.com/xord/reight
185
191
  licenses:
186
192
  - MIT