reight 0.2.2 → 0.3.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: ce84b47706d7f89e46a0c0a67078ba9db37a537265a7f9f38a9f6be449c96fdd
4
- data.tar.gz: 3bff452403a13287aa30ff929c0c077ef8adf5fd016bc682cffdfc6db0092853
3
+ metadata.gz: 7f06e6fb613d24adc8fc5be3914d35e297870849d558dec1122f27209a69278f
4
+ data.tar.gz: 54887cce180015cbd1208c6a108d749acea130e024e8d26e6932137821c4c264
5
5
  SHA512:
6
- metadata.gz: 82da25ad10275bc283efee7a5beeb0cede9476fdce77eb253b8430ccc04da358380e71909bf83d065c51ec61caa6daef3822642376ee7e641e648fca339d0e53
7
- data.tar.gz: 8b516d890930d0625214c0dab39373cc62fddb7fa2101f45988fdc4791c820234b98ec65b4ce58a4e5b19f2ff2ad479f504c21fb7e54f68814d311d4d59aff65
6
+ metadata.gz: 2ad0a98e07067d11a93db027a92f48241b8fc68a0d91b9dd3041b6d0730c3826420b99080a02e7a7b4ff8260f5a1b10ea98c9ecead46b81ca9b49fdf328ba38a
7
+ data.tar.gz: 1c07419e16e73320956eb0a9165e6c54db23773f1cae236e9774b9061f3161462072d9318dbc53a17ddeee7297e66b98c91c58a6ae464aef29508731712026e0
@@ -13,10 +13,10 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
 
15
15
  steps:
16
- - name: ruby 3.2
16
+ - name: ruby 4.0
17
17
  uses: ruby/setup-ruby@v1
18
18
  with:
19
- ruby-version: 3.2
19
+ ruby-version: 4.0
20
20
 
21
21
  - name: checkout
22
22
  uses: actions/checkout@v4
data/ChangeLog.md CHANGED
@@ -1,6 +1,23 @@
1
1
  # reight ChangeLog
2
2
 
3
3
 
4
+ ## [v0.3.0] - 2026-06-12
5
+
6
+ - [BREAKING] Drop redundant drawXxx aliases from GraphicsContext (from processing)
7
+ - [BREAKING] Make pixelDensity a keyword arg in createGraphics (from processing)
8
+
9
+ - Adopt the per-window Context model from Processing
10
+ - Support AUTO pixel density for sharp text in editor and game
11
+ - Make r8 command executable
12
+ - Bump wasm build to Ruby 4.0
13
+ - Untrack Gemfile.lock in wasm subproject
14
+ - Scope WASM build sources to gem src/ext/include/lib
15
+ - Switch test page to CDN-based asset loading
16
+ - Guard test:deploy with file preview and confirmation prompt
17
+
18
+ - Fix launch failure when chips image is missing
19
+
20
+
4
21
  ## [v0.2.2] - 2026-05-20
5
22
 
6
23
  - Use Node 24 in WASM release workflow for npm Trusted Publishing
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.3.0
data/bin/r8 CHANGED
@@ -22,7 +22,7 @@ end
22
22
 
23
23
  def r8 = $r8__
24
24
 
25
- Reight::CONTEXT__.tap do |c|
25
+ Reight::WINDOW__.context.tap do |c|
26
26
  path = argv.shift || '.'
27
27
  path = File.expand_path path, Dir.pwd unless path.start_with?('/')
28
28
  c.setup {Reight::R8.new(path, edit: params[:edit]).setup}
data/lib/reight/all.rb CHANGED
@@ -6,13 +6,14 @@ module Reight
6
6
  Processing.alias_snake_case_methods__ Processing
7
7
  Processing.alias_snake_case_methods__ RubySketch
8
8
 
9
- WINDOW__, CONTEXT__ = Processing.setup__ RubySketch
9
+ WINDOW__ = Processing.setup__ RubySketch::Window, RubySketch::Context
10
+ $processing_context__ = WINDOW__.context
10
11
 
11
12
  refine Object do
12
- context = CONTEXT__
13
- (Processing.funcs__(context) - Processing.events__(context)).each do |func|
13
+ klass = RubySketch::Context
14
+ (Processing.funcs__(klass) - Processing.events__(klass)).each do |func|
14
15
  define_method func do |*args, **kwargs, &block|
15
- context.__send__ func, *args, **kwargs, &block
16
+ $processing_context__.__send__ func, *args, **kwargs, &block
16
17
  end
17
18
  end
18
19
  end
@@ -150,7 +150,7 @@ class Reight::Navigator::Message
150
150
  next unless @text
151
151
  fill 100
152
152
  text_align LEFT, CENTER
153
- draw_text @text, 0, 0, sp.w, sp.h
153
+ Processing.context.text @text, 0, 0, sp.w, sp.h
154
154
  end
155
155
  end
156
156
  end
@@ -2,7 +2,7 @@ class Reight::Runner < Reight::App
2
2
 
3
3
  include Xot::Inspectable
4
4
 
5
- ROOT_CONTEXT = Reight::CONTEXT__
5
+ ROOT_CONTEXT = Reight::WINDOW__.context
6
6
 
7
7
  TEMPORARY_HASH = {}
8
8
 
@@ -157,7 +157,7 @@ class Reight::Runner < Reight::App
157
157
  backup_global_vars
158
158
  @context = create_context
159
159
  @paused = false
160
- Processing::Context.setContext__ @context
160
+ Processing::Context.setCurrent__ @context
161
161
  begin_wrapping_user_classes @context
162
162
  eval_user_script @context, project.code_paths.zip(project.codes).to_h
163
163
  end
@@ -168,7 +168,7 @@ class Reight::Runner < Reight::App
168
168
 
169
169
  def cleanup()
170
170
  ROOT_CONTEXT.remove_world @context.spriteWorld__ if @context
171
- Processing::Context.setContext__ nil
171
+ Processing::Context.setCurrent__ nil
172
172
  @context = nil
173
173
  end_wrapping_user_classes
174
174
  clear_all_timers
@@ -224,7 +224,7 @@ class Reight::Runner < Reight::App
224
224
  alias_method snake, camel if snake != camel
225
225
  end
226
226
 
227
- Processing.funcs__(ROOT_CONTEXT).each do |func|
227
+ Processing.funcs__(ROOT_CONTEXT.class).each do |func|
228
228
  next if method_defined? func
229
229
  define_method(func) {|*a, **k, &b| ROOT_CONTEXT.__send__ func, *a, **k, &b}
230
230
  end
@@ -6,9 +6,12 @@ module Reight::Context
6
6
  TIMER_PREFIX__ = '__r8__'
7
7
 
8
8
  # @private
9
- def initialize(rootContext, project)
10
- @rootContext__, @project__ = rootContext, project
11
- init__ Rays::Image.new(@rootContext__.width, @rootContext__.height)
9
+ def initialize(rootContext, project, pixelDensity: 1)
10
+ @rootContext__, @project__, @pixelDensity__ = rootContext, project, pixelDensity
11
+ init__ Rays::Image.new(
12
+ @rootContext__.width,
13
+ @rootContext__.height,
14
+ pixel_density: @pixelDensity__)
12
15
  end
13
16
 
14
17
  # Returns the project object.
@@ -40,14 +43,19 @@ module Reight::Context
40
43
  end
41
44
 
42
45
  # @see https://rubydoc.info/gems/rubysketch/RubySketch/Context#size-instance_method
43
- def size(width, height, **)
44
- return if width == self.width || height == self.height
45
- @resizeCanvas__ = [width, height]
46
+ def size(width, height, pixelDensity: nil)
47
+ @resizeCanvas__ = [width, height, pixelDensity]
46
48
  end
47
49
 
48
50
  # @see https://rubydoc.info/gems/rubysketch/RubySketch/Context#createCanvas-instance_method
49
51
  alias createCanvas size
50
52
 
53
+ # @see https://rubydoc.info/gems/rubysketch/RubySketch/Context#pixelDensity-instance_method
54
+ def pixelDensity(density = nil)
55
+ size width, height, pixelDensity: density if density
56
+ super()
57
+ end
58
+
51
59
  # @see https://www.rubydoc.info/gems/processing/Processing/Context#mouseX-instance_method
52
60
  def mouseX()
53
61
  x, (cx, _) = @rootContext__.mouseX, @canvasFrame__
@@ -140,9 +148,15 @@ module Reight::Context
140
148
 
141
149
  # @private
142
150
  def resizeCanvas__()
143
- w, h = @resizeCanvas__ || return
151
+ w, h, pd = @resizeCanvas__ || return
144
152
  @resizeCanvas__ = nil
145
- updateCanvas__ Rays::Image.new(w.to_i, h.to_i)
153
+
154
+ @pixelDensity__ = pd if pd
155
+ pd = @pixelDensity__ == :auto ? nil : @pixelDensity__
156
+ pd ||= @rootContext__.pixelDensity
157
+ return if w == width && h == height && pd == pixelDensity
158
+
159
+ updateCanvas__ Rays::Image.new(w.to_i, h.to_i, pixel_density: pd)
146
160
 
147
161
  rootw, rooth = @rootContext__.width, @rootContext__.height
148
162
  if w == rootw && h == rooth
@@ -46,7 +46,7 @@ class Reight::Project
46
46
  g.begin_draw {g.background 0, 0, 0, 0}
47
47
  img = load_image chips_image_path
48
48
  g.begin_draw {g.image img, 0, 0}
49
- rescue Rays::RaysError
49
+ rescue Errno::ENOENT
50
50
  end
51
51
  }.call
52
52
  end
data/lib/reight/reight.rb CHANGED
@@ -54,7 +54,7 @@ class Reight::R8
54
54
 
55
55
  def setup()
56
56
  w, h = Reight::App::SCREEN_WIDTH, Reight::App::SCREEN_HEIGHT
57
- createCanvas w, h
57
+ createCanvas w, h, pixelDensity: AUTO
58
58
  window_resize(*[w, h].map {_1 * 3})
59
59
  text_font r8.project.font, r8.project.font_size
60
60
  end
data/lib/reight.rb CHANGED
@@ -2,19 +2,19 @@ require 'reight/all'
2
2
 
3
3
 
4
4
  begin
5
- w, c = Reight::WINDOW__, Reight::CONTEXT__
5
+ w = Reight::WINDOW__
6
6
 
7
7
  reight_classes = %i[Sprite Sound]
8
- c.class.constants
8
+ w.context.class.constants
9
9
  .reject {_1 =~ /__$/}
10
10
  .reject {reight_classes.include? _1}
11
- .each {self.class.const_set _1, c.class.const_get(_1)}
11
+ .each {self.class.const_set _1, w.context.class.const_get(_1)}
12
12
  reight_classes
13
13
  .each {self.class.const_set _1, Reight.const_get(_1)}
14
14
 
15
15
  w.__send__ :begin_draw
16
16
  at_exit do
17
17
  w.__send__ :end_draw
18
- Processing::App.new {w.show}.start if c.hasUserBlocks__ && !$!
18
+ Processing::App.new {w.show}.start if w.context.hasUserBlocks__ && !$!
19
19
  end
20
20
  end
data/reight.gemspec CHANGED
@@ -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.13'
29
- s.add_dependency 'rucy', '~> 0.3.13'
30
- s.add_dependency 'beeps', '~> 0.3.14'
31
- s.add_dependency 'rays', '~> 0.3.14'
32
- s.add_dependency 'reflexion', '~> 0.4.1'
33
- s.add_dependency 'processing', '~> 1.2.1'
34
- s.add_dependency 'rubysketch', '~> 0.8.1'
28
+ s.add_dependency 'xot', '~> 0.3.14'
29
+ s.add_dependency 'rucy', '~> 0.3.14'
30
+ s.add_dependency 'beeps', '~> 0.3.15'
31
+ s.add_dependency 'rays', '~> 0.3.15'
32
+ s.add_dependency 'reflexion', '~> 0.4.2'
33
+ s.add_dependency 'processing', '~> 1.3.0'
34
+ s.add_dependency 'rubysketch', '~> 0.9.0'
35
35
 
36
36
  s.files = `git ls-files`.split $/
37
37
  s.executables = s.files.grep(%r{^bin/}) {|f| File.basename f}
data/wasm/.gitignore CHANGED
@@ -3,3 +3,4 @@ rubies/
3
3
  .data/
4
4
  output/
5
5
  test/
6
+ Gemfile.lock
data/wasm/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'rake'
4
- gem 'ruby_wasm', '~> 2.9.4'
4
+ gem 'ruby_wasm', '~> 2.9.4'
5
5
 
6
6
  gem 'xot', path: '../../xot'
7
7
  gem 'rucy', path: '../../rucy'
data/wasm/Rakefile CHANGED
@@ -18,7 +18,9 @@ DATA_DIR = '.data'
18
18
  OUT_DIR = 'output'
19
19
 
20
20
  GEMS = Dir.glob("#{ROOT_DIR}/*/*.gemspec").map {File.basename File.dirname _1}
21
- GEM_SRCS = GEMS.map {Dir.glob "#{ROOT_DIR}/#{_1}/**/*.{h,hpp,c,cpp,m,mm,rb}"}.flatten
21
+ GEM_SRCS = GEMS.flat_map {|gem|
22
+ Dir.glob "#{ROOT_DIR}/#{gem}/{include,src,ext,lib}/**/*.{h,hpp,c,cpp,m,mm,rb}"
23
+ }
22
24
 
23
25
  OUT_WASM = "#{OUT_DIR}/ruby.wasm"
24
26
  OUT_JS = "#{OUT_DIR}/#{NAME}.js"
@@ -33,13 +35,14 @@ task :clean => 'test:clean' do
33
35
  Dir.chdir ROOT_DIR do
34
36
  sh %( rake clean )
35
37
  end
36
- sh %( rm -rf build rubies #{BUNDLE_DIR} #{DATA_DIR} #{OUT_DIR} )
38
+ sh %( rm -rf build rubies #{DATA_DIR} #{OUT_DIR} )
37
39
  end
38
40
 
39
41
  task :clobber => :clean do
40
42
  Dir.chdir ROOT_DIR do
41
43
  sh %( rake clobber )
42
44
  end
45
+ sh %( rm -rf #{BUNDLE_DIR} )
43
46
  end
44
47
 
45
48
  task :build => OUT_DATA
@@ -85,26 +88,34 @@ file OUT_WASM => [BUNDLE_DIR, OUT_DIR] + GEM_SRCS do
85
88
  end
86
89
 
87
90
  ldflags = %W[
91
+ -sALLOW_MEMORY_GROWTH=1
92
+ -sINITIAL_MEMORY=#{1024 * 1024 * 64}
88
93
  -sASYNCIFY_STACK_SIZE=#{1024 * 1024 * 4}
94
+ -fexceptions
89
95
  -sNO_DISABLE_EXCEPTION_CATCHING
90
96
  -sFORCE_FILESYSTEM
91
97
  -sUSE_SDL=2
92
98
  -sUSE_SDL_TTF=2
93
- -sALLOW_MEMORY_GROWTH=1
94
- -sINITIAL_MEMORY=#{1024 * 1024 * 64}
95
99
  -sEXPORTED_RUNTIME_METHODS=ccall,cwrap,UTF8ToString,stringToUTF8,FS
96
- -sASSERTIONS=1
97
- -fexceptions
98
- ].reject {_1 =~ /^\s*#/}
99
- envs = "RUBY_WASM_EMCC_LDFLAGS=' #{ldflags.join ' '}'"
100
- sysopts = '--log-level debug'
101
- opts = "--target wasm32-unknown-emscripten --dest_dir #{DATA_DIR} --remake -o #{OUT_JS}"
102
- sh %( #{envs} bundle exec rbwasm #{sysopts} build #{opts} )
100
+ ].reject {_1 =~ /^\s*#/}.join ' '
101
+ envs = [
102
+ "RUBY_WASM_EMCC_LDFLAGS='#{ldflags}'",
103
+ # avoid host's libyaml (e.g. Homebrew) being picked up by psych extconf
104
+ "PKG_CONFIG_LIBDIR=''"
105
+ ].join ' '
106
+ opts = %W[
107
+ --ruby-version 4.0
108
+ --target wasm32-unknown-emscripten
109
+ --dest_dir #{DATA_DIR}
110
+ --remake
111
+ -o #{OUT_JS}
112
+ ].join ' '
113
+ sh %( #{envs} bundle exec rbwasm build #{opts} )
103
114
  ensure
104
115
  backups.each {|path, s| File.write path, s}
105
116
  end
106
117
 
107
- roots = Dir.glob('rubies/ruby-*-wasm*-*-emscripten-full-*')
118
+ roots = Dir.glob('rubies/ruby-*-wasm*-*-emscripten-*-*')
108
119
  .select {File.directory? _1}
109
120
  raise "expected 1 root, got #{roots.size}" if roots.size != 1
110
121
  sh %( cp -f #{roots.first}/usr/local/bin/ruby.wasm #{OUT_WASM} )
@@ -118,73 +129,71 @@ directory OUT_DIR
118
129
 
119
130
 
120
131
  namespace :test do
121
- template_dir = 'template'
122
- test_dir = 'test'
123
- main = "#{test_dir}/test.rb"
124
- erbs = {
125
- "#{test_dir}/index.html" => "#{template_dir}/index.html.erb"
132
+ to_path_map = -> paths, &block {
133
+ paths
134
+ .reject {_1.end_with? '~'}
135
+ .reject {File.directory? _1}
136
+ .map {[_1, block.call(_1)]}
137
+ .to_h
138
+ }
139
+
140
+ cdn_url = "https://cdn.jsdelivr.net/npm/reight-wasm@#{Reight::Extension.version}"
141
+ test_dir = 'test'
142
+ template_dir = 'template'
143
+ template_files = to_path_map[Dir.glob "#{template_dir}/**/*"] {
144
+ _1.sub(/^#{template_dir}/, test_dir).sub(/\.erb$/, '')
145
+ }
146
+ wasm_files = to_path_map[OUT_FILES] {
147
+ "#{test_dir}/#{File.basename _1}"
126
148
  }
127
- wasm_files = OUT_FILES.each.with_object({}) {|out, hash|
128
- hash["#{test_dir}/#{File.basename out}"] = out
149
+ assets = to_path_map[["../../rubysketch/examples/physics.rb"]] {
150
+ "#{test_dir}/#{File.basename _1}"
129
151
  }
130
152
 
131
153
  task :clean do
132
154
  sh %( rm -rf #{test_dir} )
133
155
  end
134
156
 
135
- task :serve => [main] + erbs.keys + wasm_files.keys do
157
+ task :serve => template_files.values + wasm_files.values + assets.values do
136
158
  require 'webrick'
137
159
  WEBrick::HTTPServer.new(Port: 8080, DocumentRoot: test_dir).start
138
160
  end
139
161
 
140
- erbs.each do |out, erb|
141
- base = '.'
142
- main_rb = File.basename main
143
- task out => [test_dir, erb] do
144
- File.write out, ERB.new(File.read erb).result(binding)
145
- end
162
+ task :deploy => template_files.values + assets.values do
163
+ wasm_files.values.each {File.unlink _1 if File.symlink? _1}
164
+ Dir.glob("#{test_dir}/**/*").each {puts _1}
165
+ print "Deploy? [y/n]: "
166
+ next unless $stdin.gets =~ /^(y|yes)$/i
167
+ sh %( npx wrangler pages deploy #{test_dir} --branch master )
146
168
  end
147
169
 
148
- wasm_files.each do |to, from|
149
- task to => [test_dir, from] do
150
- File.symlink "../#{from}", to unless File.symlink? to
151
- end
152
- end
170
+ template_files.each do |from, to|
171
+ paths = assets.values.map {_1.sub /^#{test_dir}/, ''}
153
172
 
154
- file main => test_dir do
155
- File.write main, <<~'END'
156
- require 'rubysketch'
157
- using RubySketch
158
-
159
- setup do
160
- size 640, 480
161
- gravity 0, 1000
162
- @grounds = [
163
- createSprite(0, height - 30, width, 30),
164
- createSprite(0, 0, 10, height),
165
- createSprite(width - 10, 0, 10, height)
166
- ]
167
- @sprites = []
173
+ file to => [test_dir, from] do
174
+ if from.end_with? '.erb'
175
+ File.write to, ERB.new(File.read from).result_with_hash(
176
+ wasm_url_base: cdn_url, assets: paths, main: paths.first)
177
+ else
178
+ sh %( cp #{from} #{to} )
179
+ end
168
180
  end
181
+ end
169
182
 
170
- draw do
171
- background 20
172
- fill 100
173
- sprite @grounds
174
- fill 0, 200, 100
175
- sprite @sprites
176
- fill 255
177
- textSize 24
178
- textAlign RIGHT
179
- text "#{frameRate.round} FPS", width - 100, 30
183
+ wasm_files.each do |from, to|
184
+ file to => [OUT_DATA, test_dir, from] do
185
+ File.symlink "../#{from}", to unless File.symlink? to
180
186
  end
187
+ end
181
188
 
182
- mousePressed do
183
- s = createSprite mouseX, mouseY, 30, 30
184
- s.dynamic = true
185
- @sprites << s
189
+ assets.each do |from, to|
190
+ file to => [test_dir, from] do
191
+ sh %( cp #{from} #{to} )
192
+ filter_file to do |s|
193
+ words = %w[map expand_path lib dir each unshift include directory]
194
+ s.sub(/^.*\%w\[.*\].*#{words.join '.*'}.*?(require)/m) {$1}
195
+ end
186
196
  end
187
- END
188
197
  end
189
198
 
190
199
  directory test_dir
@@ -19,27 +19,42 @@
19
19
  console.error('[unhandled rejection]', e.reason);
20
20
  });
21
21
  </script>
22
- <script src="<%= base %>/reight.js"></script>
23
22
  <script type="module">
24
- const BASE = '<%= base %>';
25
- const libRes = await fetch(`${BASE}/reightlib.js`);
23
+ const isLocal = ['localhost', '127.0.0.1'].includes(location.hostname)
24
+ const WASM_URL_BASE = isLocal ? '.' : '<%= wasm_url_base %>';
25
+
26
+ await new Promise((resolve, reject) => {
27
+ const s = document.createElement('script');
28
+ s.src = `${WASM_URL_BASE}/reight.js`;
29
+ s.onload = resolve;
30
+ s.onerror = reject;
31
+ document.head.appendChild(s);
32
+ });
33
+
34
+ const libRes = await fetch(`${WASM_URL_BASE}/reightlib.js`);
26
35
  const libBlob = new Blob([await libRes.text()], {type: 'application/javascript'});
27
36
  const libUrl = URL.createObjectURL(libBlob);
28
37
  const {loadReightLib} = await import(libUrl);
29
38
 
30
- const srcRes = await fetch('<%= main_rb %>');
31
- const srcText = await srcRes.text();
32
-
39
+ async function writeFile(mod, path, url) {
40
+ const res = await fetch(url);
41
+ const data = new Uint8Array(await res.arrayBuffer());
42
+ mod.FS.writeFile(path, data);
43
+ }
33
44
  const RubyModule = {
34
- canvas: document.getElementById('canvas'),
45
+ canvas: document.getElementById('canvas'),
35
46
  print: (s) => console.log('[ruby]', s),
36
47
  printErr: (s) => console.error('[ruby err]', s),
37
48
  onAbort: (s) => console.error('[abort]', s),
38
- locateFile: (path) => `${BASE}/${path}`,
39
- preRun: [(mod) => {
40
- mod.FS.writeFile('/main.rb', new TextEncoder().encode(srcText));
49
+ locateFile: (path) => `${WASM_URL_BASE}/${path}`,
50
+ preRun: [async (mod) => {
51
+ mod.addRunDependency('assets')
52
+ <% assets.each do |asset| %>
53
+ await writeFile(mod, '<%= asset %>', '<%= asset %>');
54
+ <% end %>
55
+ mod.removeRunDependency('assets')
41
56
  }],
42
- arguments: ['-e', 'load "/bundle/setup.rb"; load "/main.rb"'],
57
+ arguments: ['-e', 'load "/bundle/setup.rb"; load "<%= main %>"'],
43
58
  };
44
59
  globalThis.__ruby_module = RubyModule;
45
60
  loadReightLib();
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.2.2
4
+ version: 0.3.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-05-20 00:00:00.000000000 Z
11
+ date: 2026-06-12 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.13
19
+ version: 0.3.14
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.13
26
+ version: 0.3.14
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.13
33
+ version: 0.3.14
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.13
40
+ version: 0.3.14
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.14
47
+ version: 0.3.15
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.14
54
+ version: 0.3.15
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.14
61
+ version: 0.3.15
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.14
68
+ version: 0.3.15
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.4.1
75
+ version: 0.4.2
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.4.1
82
+ version: 0.4.2
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.2.1
89
+ version: 1.3.0
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.2.1
96
+ version: 1.3.0
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.8.1
103
+ version: 0.9.0
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.8.1
110
+ version: 0.9.0
111
111
  description: A Retro Game Engine for Ruby.
112
112
  email: xordog@gmail.com
113
113
  executables:
@@ -185,7 +185,6 @@ files:
185
185
  - wasm/.bundle/config
186
186
  - wasm/.gitignore
187
187
  - wasm/Gemfile
188
- - wasm/Gemfile.lock
189
188
  - wasm/Rakefile
190
189
  - wasm/template/index.html.erb
191
190
  homepage: https://github.com/xord/reight
data/wasm/Gemfile.lock DELETED
@@ -1,96 +0,0 @@
1
- PATH
2
- remote: ../../beeps
3
- specs:
4
- beeps (0.3.13)
5
- rucy (~> 0.3.13)
6
- xot (~> 0.3.13)
7
-
8
- PATH
9
- remote: ../../processing
10
- specs:
11
- processing (1.2.0)
12
- rays (~> 0.3.13)
13
- reflexion (~> 0.4.0)
14
- rexml
15
- rucy (~> 0.3.13)
16
- xot (~> 0.3.13)
17
-
18
- PATH
19
- remote: ../../rays
20
- specs:
21
- rays (0.3.13)
22
- rucy (~> 0.3.13)
23
- xot (~> 0.3.13)
24
-
25
- PATH
26
- remote: ../../reflex
27
- specs:
28
- reflexion (0.4.0)
29
- rays (~> 0.3.13)
30
- rucy (~> 0.3.13)
31
- xot (~> 0.3.13)
32
-
33
- PATH
34
- remote: ../../rubysketch
35
- specs:
36
- rubysketch (0.8.0)
37
- beeps (~> 0.3.13)
38
- processing (~> 1.2.0)
39
- rays (~> 0.3.13)
40
- reflexion (~> 0.4.0)
41
- rucy (~> 0.3.13)
42
- xot (~> 0.3.13)
43
-
44
- PATH
45
- remote: ../../rucy
46
- specs:
47
- rucy (0.3.13)
48
- xot (~> 0.3.13)
49
-
50
- PATH
51
- remote: ../../xot
52
- specs:
53
- xot (0.3.13)
54
-
55
- PATH
56
- remote: ..
57
- specs:
58
- reight (0.2.0)
59
- beeps (~> 0.3.13)
60
- processing (~> 1.2.0)
61
- rays (~> 0.3.13)
62
- reflexion (~> 0.4.0)
63
- rubysketch (~> 0.8.0)
64
- rucy (~> 0.3.13)
65
- xot (~> 0.3.13)
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
- arm64-darwin-24
82
-
83
- DEPENDENCIES
84
- beeps!
85
- processing!
86
- rake
87
- rays!
88
- reflexion!
89
- reight!
90
- ruby_wasm (~> 2.9.4)
91
- rubysketch!
92
- rucy!
93
- xot!
94
-
95
- BUNDLED WITH
96
- 2.4.20