reight 0.3.5 → 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 +4 -4
- data/.github/workflows/release-gem.yml +10 -1
- data/.github/workflows/test.yml +9 -0
- data/ChangeLog.md +7 -0
- data/Reight.podspec +136 -0
- data/VERSION +1 -1
- data/bin/r8 +2 -45
- data/lib/reight/app/runner.rb +5 -3
- data/lib/reight/cli.rb +117 -0
- data/lib/reight/extension.rb +1 -1
- data/lib/reight/history.rb +10 -6
- data/lib/reight/reight.rb +3 -0
- data/pod.rake +35 -0
- data/reight.gemspec +8 -7
- metadata +33 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dc9296b16e8154460e5754b93074ca6ed3dbb246b9d4b7e95372e8b6ca785812
|
|
4
|
+
data.tar.gz: fb6fcd561aff46953e08ad6dbe53c14ce1d3bf8c1b7d881f8f1dee100698d881
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '06382b6b279930b1541e81d7d9ab7e9117618fef780f7b65fcb5bea3ff4a4c786b126eca4f7d5188a42044223b4034710f1714b33360e9e3641205d798bfeb57'
|
|
7
|
+
data.tar.gz: 578d675d321369cc60fe30f82ec66e4776dd5e9ce047da5b982ab5e0682aaf89c6e7296fd2d007e135b8d53a23f79d5fcba25e885d0b599e6b3b49d22c4dde73
|
|
@@ -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
|
|
39
|
+
run: bundle exec rake test
|
|
31
40
|
|
|
32
41
|
- name: create gem
|
|
33
42
|
id: gem
|
data/.github/workflows/test.yml
CHANGED
|
@@ -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
data/Reight.podspec
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# -*- mode: ruby -*-
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
Pod::Spec.new do |s|
|
|
5
|
+
s.name = "Reight"
|
|
6
|
+
s.version = File.read(File.expand_path 'VERSION', __dir__)[/[\d\.]+/]
|
|
7
|
+
s.summary = "A Retro Game Engine for Ruby"
|
|
8
|
+
s.description = "A Retro Game Engine for Ruby"
|
|
9
|
+
s.license = "MIT"
|
|
10
|
+
s.source = {:git => "https://github.com/xord/reight.git"}
|
|
11
|
+
s.author = {"xordog" => "xordog@gmail.com"}
|
|
12
|
+
s.homepage = "https://github.com/xord/reight"
|
|
13
|
+
|
|
14
|
+
s.osx.deployment_target = "10.10"
|
|
15
|
+
s.ios.deployment_target = "12.0"
|
|
16
|
+
|
|
17
|
+
root = "${PODS_ROOT}/#{s.name}"
|
|
18
|
+
exts = File.read(File.expand_path 'Rakefile', __dir__)
|
|
19
|
+
.lines(chomp: true)
|
|
20
|
+
.map {_1[%r|require\s*['"](\w+)/extension['"]|, 1]}
|
|
21
|
+
.compact - [s.name.downcase]
|
|
22
|
+
|
|
23
|
+
incdirs = exts.map {"#{root}/#{_1}/include"}.concat %W[
|
|
24
|
+
#{root}/beeps/vendor/stk/include
|
|
25
|
+
#{root}/beeps/vendor/AudioFile
|
|
26
|
+
#{root}/beeps/vendor/r8brain-free-src
|
|
27
|
+
#{root}/beeps/vendor/signalsmith-stretch
|
|
28
|
+
#{root}/rays/vendor/glm
|
|
29
|
+
#{root}/rays/vendor/clipper/cpp
|
|
30
|
+
#{root}/rays/vendor/earcut.hpp/include/mapbox
|
|
31
|
+
#{root}/rays/vendor/splines-lib
|
|
32
|
+
#{root}/reflex/vendor/box2d/include
|
|
33
|
+
#{root}/reflex/vendor/box2d/src
|
|
34
|
+
#{root}/reflex/vendor/rtmidi/rtmidi
|
|
35
|
+
${PODS_ROOT}/CRuby/CRuby/include
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
s.prepare_command = 'rake -f pod.rake setup'
|
|
39
|
+
s.preserve_paths = exts
|
|
40
|
+
s.requires_arc = false
|
|
41
|
+
s.osx.compiler_flags = "-DOSX"
|
|
42
|
+
s.ios.compiler_flags = "-DIOS"
|
|
43
|
+
s.library = %w[c++]
|
|
44
|
+
s.xcconfig = {
|
|
45
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => 'c++20',
|
|
46
|
+
"GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) B2_MAX_WORLDS=256',
|
|
47
|
+
"HEADER_SEARCH_PATHS" => incdirs.join(' ')
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#s.dependency = 'CRuby', git: 'https://github.com/xord/cruby'
|
|
51
|
+
|
|
52
|
+
s.resource_bundles =
|
|
53
|
+
exts.each_with_object({'Reight' => %w[lib res VERSION]}) do |ext, hash|
|
|
54
|
+
hash[ext.capitalize] = %W[#{ext}/lib #{ext}/VERSION]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
s.subspec "Xot" do |spec|
|
|
58
|
+
spec.source_files = "xot/src/*.cpp"
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
s.subspec "Rucy" do |spec|
|
|
62
|
+
spec.source_files = "rucy/src/*.cpp"
|
|
63
|
+
|
|
64
|
+
spec.subspec "Ext" do |ext|
|
|
65
|
+
ext.source_files = "rucy/ext/rucy/*.cpp"
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
s.subspec "Beeps" do |spec|
|
|
70
|
+
spec .source_files = "beeps/src/*.cpp"
|
|
71
|
+
spec.osx.source_files = "beeps/src/osx/*.{cpp,mm}"
|
|
72
|
+
spec.ios.source_files = "beeps/src/osx/*.{cpp,mm}"
|
|
73
|
+
spec.frameworks = %w[OpenAL AVFoundation]
|
|
74
|
+
|
|
75
|
+
spec.subspec "STK" do |sub|
|
|
76
|
+
sub.source_files = "beeps/vendor/stk/src/*.cpp"
|
|
77
|
+
sub.exclude_files = %w[Tcp Udp Socket Thread Mutex InetWv Rt].map {|s|
|
|
78
|
+
"beeps/vendor/stk/src/#{s}*.cpp"
|
|
79
|
+
}
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
spec.subspec "R8BrainFreeSrc" do |sub|
|
|
83
|
+
sub.source_files = "beeps/vendor/r8brain-free-src/*.cpp"
|
|
84
|
+
sub.exclude_files = %w[example pffft_double/].map {|s|
|
|
85
|
+
"beeps/vendor/r8brain-free-src/#{s}*.cpp"
|
|
86
|
+
}
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
spec.subspec "Ext" do |ext|
|
|
90
|
+
ext.source_files = "beeps/ext/beeps/*.cpp"
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
s.subspec "Rays" do |spec|
|
|
95
|
+
spec .source_files = "rays/src/*.cpp", "rays/src/opengl/*.cpp"
|
|
96
|
+
spec.osx.source_files = "rays/src/**/osx/*.{cpp,mm}"
|
|
97
|
+
spec.ios.source_files = "rays/src/**/ios/*.{cpp,mm}"
|
|
98
|
+
spec.osx.frameworks = %w[AppKit OpenGL CoreImage CoreVideo CoreMedia AVFoundation]
|
|
99
|
+
spec.ios.frameworks = %w[GLKit MobileCoreServices AVFoundation]# ImageIO
|
|
100
|
+
|
|
101
|
+
spec.subspec "Clipper" do |sub|
|
|
102
|
+
sub.source_files = "rays/vendor/clipper/cpp/*.cpp"
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
spec.subspec "SplineLib" do |sub|
|
|
106
|
+
sub.source_files = "rays/vendor/splines-lib/Splines.cpp"
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
spec.subspec "Ext" do |ext|
|
|
110
|
+
ext.source_files = "rays/ext/rays/*.cpp"
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
s.subspec "Reflex" do |spec|
|
|
115
|
+
spec .source_files = "reflex/src/*.cpp"
|
|
116
|
+
spec.osx.source_files = "reflex/src/osx/*.{cpp,mm}"
|
|
117
|
+
spec.ios.source_files = "reflex/src/ios/*.{cpp,mm}"
|
|
118
|
+
spec.osx.frameworks = %w[Cocoa IOKit GameController]
|
|
119
|
+
spec.ios.frameworks = %w[CoreMotion GameController]
|
|
120
|
+
|
|
121
|
+
spec.subspec "Box2D" do |sub|
|
|
122
|
+
sub.source_files = "reflex/vendor/box2d/src/**/*.c"
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
spec.subspec "RtMidi" do |sub|
|
|
126
|
+
sub.source_files = "reflex/vendor/rtmidi/rtmidi/**/*.cpp"
|
|
127
|
+
sub.compiler_flags = '-D__MACOSX_CORE__'
|
|
128
|
+
sub.osx.frameworks = %w[CoreAudio CoreMIDI]
|
|
129
|
+
sub.ios.frameworks = %w[CoreMIDI]
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
spec.subspec "Ext" do |ext|
|
|
133
|
+
ext.source_files = "reflex/ext/reflex/*.cpp"
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.4.0
|
data/bin/r8
CHANGED
|
@@ -1,48 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
|
-
require '
|
|
4
|
-
require 'reight'
|
|
3
|
+
require 'reight/cli'
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
opt = OptionParser.new
|
|
8
|
-
opt.banner = "Usage: r8 [options] [DIR]"
|
|
9
|
-
opt.version = Reight::Extension.version
|
|
10
|
-
|
|
11
|
-
opt.on '-e', '--edit', "edit mode"
|
|
12
|
-
opt.on_tail '-h', '--help'
|
|
13
|
-
|
|
14
|
-
params = {}
|
|
15
|
-
argv = opt.parse! ARGV, into: params
|
|
16
|
-
|
|
17
|
-
if params.key? :help
|
|
18
|
-
puts opt.help
|
|
19
|
-
exit
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def r8 = $r8__
|
|
24
|
-
|
|
25
|
-
Reight::WINDOW__.context.tap do |c|
|
|
26
|
-
path = argv.shift || '.'
|
|
27
|
-
path = File.expand_path path, Dir.pwd unless path.start_with?('/')
|
|
28
|
-
c.setup {Reight::R8.new(path, edit: params[:edit]).setup}
|
|
29
|
-
c.draw {r8.draw}
|
|
30
|
-
c.key_pressed {r8.key_pressed}
|
|
31
|
-
c.key_released {r8.key_released}
|
|
32
|
-
c.key_typed {r8.key_typed}
|
|
33
|
-
c.mouse_pressed {r8.mouse_pressed}
|
|
34
|
-
c.mouse_released {r8.mouse_released}
|
|
35
|
-
c.mouse_moved {r8.mouse_moved}
|
|
36
|
-
c.mouse_dragged {r8.mouse_dragged}
|
|
37
|
-
c.mouse_clicked {r8.mouse_clicked}
|
|
38
|
-
c.double_clicked {r8.double_clicked}
|
|
39
|
-
c.mouse_wheel {r8.mouse_wheel}
|
|
40
|
-
c.touch_started {r8.touch_started}
|
|
41
|
-
c.touch_ended {r8.touch_ended}
|
|
42
|
-
c.touch_moved {r8.touch_moved}
|
|
43
|
-
c.note_pressed {r8.note_pressed}
|
|
44
|
-
c.note_released {r8.note_released}
|
|
45
|
-
c.control_change {r8.control_change}
|
|
46
|
-
c.window_moved {r8.window_moved}
|
|
47
|
-
c.window_resized {r8.window_resized}
|
|
48
|
-
end
|
|
5
|
+
Reight::CLI.new.run ARGV
|
data/lib/reight/app/runner.rb
CHANGED
|
@@ -135,6 +135,7 @@ class Reight::Runner < Reight::App
|
|
|
135
135
|
|
|
136
136
|
def call_event(push: true, ignore_pause: false, &block)
|
|
137
137
|
if @context
|
|
138
|
+
prev, $processing_context__ = $processing_context__, @context
|
|
138
139
|
@context.beginDraw__
|
|
139
140
|
@context.push if push
|
|
140
141
|
block.call unless paused?
|
|
@@ -143,6 +144,7 @@ class Reight::Runner < Reight::App
|
|
|
143
144
|
puts e.full_message
|
|
144
145
|
ensure
|
|
145
146
|
if @context
|
|
147
|
+
$processing_context__ = prev
|
|
146
148
|
@context.pop if push
|
|
147
149
|
@context.endDraw__
|
|
148
150
|
end
|
|
@@ -157,7 +159,6 @@ class Reight::Runner < Reight::App
|
|
|
157
159
|
backup_global_vars
|
|
158
160
|
@context = create_context
|
|
159
161
|
@paused = false
|
|
160
|
-
Processing::Context.setCurrent__ @context
|
|
161
162
|
begin_wrapping_user_classes @context
|
|
162
163
|
eval_user_script @context, project.code_paths.zip(project.codes).to_h
|
|
163
164
|
end
|
|
@@ -168,7 +169,6 @@ class Reight::Runner < Reight::App
|
|
|
168
169
|
|
|
169
170
|
def cleanup()
|
|
170
171
|
ROOT_CONTEXT.remove_world @context.spriteWorld__ if @context
|
|
171
|
-
Processing::Context.setCurrent__ nil
|
|
172
172
|
@context = nil
|
|
173
173
|
end_wrapping_user_classes
|
|
174
174
|
clear_all_timers
|
|
@@ -272,7 +272,8 @@ class Reight::Runner < Reight::App
|
|
|
272
272
|
end
|
|
273
273
|
|
|
274
274
|
def eval_user_script(context, codes)
|
|
275
|
-
|
|
275
|
+
prev, $processing_context__ = $processing_context__, context
|
|
276
|
+
TEMPORARY_HASH[:params] = {context: context, codes: codes}
|
|
276
277
|
context.class.class_eval <<~END
|
|
277
278
|
::Reight::Runner::TEMPORARY_HASH[:params] => {context:, codes:}
|
|
278
279
|
codes.each {|path, code| context.instance_eval code, path if code}
|
|
@@ -280,6 +281,7 @@ class Reight::Runner < Reight::App
|
|
|
280
281
|
rescue ScriptError, StandardError => e
|
|
281
282
|
puts e.full_message
|
|
282
283
|
ensure
|
|
284
|
+
$processing_context__ = prev
|
|
283
285
|
TEMPORARY_HASH.delete :params
|
|
284
286
|
end
|
|
285
287
|
|
data/lib/reight/cli.rb
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
require 'optparse'
|
|
2
|
+
require 'reight/extension'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Reight::CLI
|
|
6
|
+
|
|
7
|
+
SUBCOMMANDS = %w[run edit new package]
|
|
8
|
+
|
|
9
|
+
def help()
|
|
10
|
+
<<~END
|
|
11
|
+
Usage: r8 [options] <command> [args]
|
|
12
|
+
|
|
13
|
+
Commands:
|
|
14
|
+
run [DIR] run the game (default)
|
|
15
|
+
edit [DIR] edit the game
|
|
16
|
+
new NAME create a new project
|
|
17
|
+
package [DIR] package as an application
|
|
18
|
+
|
|
19
|
+
Options:
|
|
20
|
+
-h, --help show this message
|
|
21
|
+
-v, --version show version
|
|
22
|
+
END
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def run(argv)
|
|
26
|
+
argv, params = parse argv do |o|
|
|
27
|
+
o.on('-h', '--help') {puts help; exit}
|
|
28
|
+
o.on('-v', '--version') {puts Reight::Extension.version; exit}
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
case command = SUBCOMMANDS.include?(argv.first) ? argv.shift : 'run'
|
|
32
|
+
when 'run' then start command, argv, edit: false
|
|
33
|
+
when 'edit' then start command, argv, edit: true
|
|
34
|
+
when 'new' then package command, argv
|
|
35
|
+
when 'package' then package command, argv
|
|
36
|
+
end
|
|
37
|
+
rescue OptionParser::ParseError => e
|
|
38
|
+
$stderr.puts "Error: #{e.message}"
|
|
39
|
+
exit 1
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def parse(argv, &block)
|
|
45
|
+
parser = OptionParser.new(&block)
|
|
46
|
+
argv = argv.dup
|
|
47
|
+
params = {}
|
|
48
|
+
parser.order! argv, into: params
|
|
49
|
+
return argv, params
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def start(command, argv, edit:)
|
|
53
|
+
argv, = parse argv do |o|
|
|
54
|
+
o.on('-h', '--help') {puts "Usage: r8 #{command} [DIR]"; exit}
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
require 'reight'
|
|
58
|
+
Reight::WINDOW__.context.tap do |c|
|
|
59
|
+
path = argv.shift || '.'
|
|
60
|
+
path = File.expand_path path, Dir.pwd unless path.start_with?('/')
|
|
61
|
+
c.setup {Reight::R8.new(path, edit: edit).setup}
|
|
62
|
+
c.draw {r8.draw}
|
|
63
|
+
c.key_pressed {r8.key_pressed}
|
|
64
|
+
c.key_released {r8.key_released}
|
|
65
|
+
c.key_typed {r8.key_typed}
|
|
66
|
+
c.mouse_pressed {r8.mouse_pressed}
|
|
67
|
+
c.mouse_released {r8.mouse_released}
|
|
68
|
+
c.mouse_moved {r8.mouse_moved}
|
|
69
|
+
c.mouse_dragged {r8.mouse_dragged}
|
|
70
|
+
c.mouse_clicked {r8.mouse_clicked}
|
|
71
|
+
c.double_clicked {r8.double_clicked}
|
|
72
|
+
c.mouse_wheel {r8.mouse_wheel}
|
|
73
|
+
c.touch_started {r8.touch_started}
|
|
74
|
+
c.touch_ended {r8.touch_ended}
|
|
75
|
+
c.touch_moved {r8.touch_moved}
|
|
76
|
+
c.note_pressed {r8.note_pressed}
|
|
77
|
+
c.note_released {r8.note_released}
|
|
78
|
+
c.control_change {r8.control_change}
|
|
79
|
+
c.window_moved {r8.window_moved}
|
|
80
|
+
c.window_resized {r8.window_resized}
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def package(command, argv)
|
|
85
|
+
require 'reflex/packager'
|
|
86
|
+
cli = Reflex::Packager::CLI.new Reflex::Packager::Profile.new(
|
|
87
|
+
pod: 'Reight',
|
|
88
|
+
git: 'https://github.com/xord/reight',
|
|
89
|
+
version: Reight::Extension.version,
|
|
90
|
+
libraries: %w[Xot Rucy Beeps Rays Reflex Processing RubySketch Reight],
|
|
91
|
+
extensions: %w[beeps_ext rays_ext reflex_ext],
|
|
92
|
+
config_files: %w[reight.yml reight.yaml r8.yml r8.yaml],
|
|
93
|
+
command: 'r8',
|
|
94
|
+
boot: <<~BOOT,
|
|
95
|
+
require 'reight/cli'
|
|
96
|
+
Reight::CLI.new.run %w[run .]
|
|
97
|
+
BOOT
|
|
98
|
+
templates: {'game.rb': <<~GAME, 'reight.yml': <<~CONFIG})
|
|
99
|
+
setup do
|
|
100
|
+
setTitle '{{name}}'
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
draw do
|
|
104
|
+
background 100
|
|
105
|
+
text 'hello, world!', 100, 100
|
|
106
|
+
end
|
|
107
|
+
GAME
|
|
108
|
+
name: {{name}}
|
|
109
|
+
version: 1.0.0
|
|
110
|
+
#bundle_id: org.xord.reight.example.{{name_id}}
|
|
111
|
+
#icon: icon.png
|
|
112
|
+
CONFIG
|
|
113
|
+
|
|
114
|
+
cli.run [command] + argv.dup
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
end# CLI
|
data/lib/reight/extension.rb
CHANGED
data/lib/reight/history.rb
CHANGED
|
@@ -18,12 +18,16 @@ class Reight::History
|
|
|
18
18
|
true
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def begin_grouping(&block)
|
|
21
|
+
def begin_grouping(*args, **kwargs, &block)
|
|
22
22
|
raise "Grouping cannot be nested" if @group
|
|
23
23
|
@group = []
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
if block
|
|
25
|
+
begin
|
|
26
|
+
block.call(*args, **kwargs)
|
|
27
|
+
ensure
|
|
28
|
+
end_grouping
|
|
29
|
+
end
|
|
30
|
+
end
|
|
27
31
|
end
|
|
28
32
|
|
|
29
33
|
alias group begin_grouping
|
|
@@ -58,12 +62,12 @@ class Reight::History
|
|
|
58
62
|
@enabled ? enabled : disabled
|
|
59
63
|
end
|
|
60
64
|
|
|
61
|
-
def disable(&block)
|
|
65
|
+
def disable(*args, **kwargs, &block)
|
|
62
66
|
old = enabled?
|
|
63
67
|
enable false
|
|
64
68
|
if block
|
|
65
69
|
begin
|
|
66
|
-
block.call
|
|
70
|
+
block.call(*args, **kwargs)
|
|
67
71
|
ensure
|
|
68
72
|
enable old
|
|
69
73
|
end
|
data/lib/reight/reight.rb
CHANGED
data/pod.rake
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# -*- mode: ruby -*-
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
github = 'https://github.com/xord'
|
|
5
|
+
renames = {reflexion: 'reflex'}
|
|
6
|
+
regexp = /add\w+dependency.*['"]([\w\-]+)['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/
|
|
7
|
+
repos = File.readlines('reight.gemspec', chomp: true)
|
|
8
|
+
.map {|s| regexp.match(s)&.values_at 1, 2}
|
|
9
|
+
.compact
|
|
10
|
+
.to_h
|
|
11
|
+
.transform_keys {|name| renames[name.to_sym].then {|s| s || name}}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
task :clobber do
|
|
15
|
+
sh %( rm -rf #{repos.keys.join ' '} )
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
task :setup
|
|
19
|
+
|
|
20
|
+
repos.each do |repo, ver|
|
|
21
|
+
rakefile = "#{repo}/Rakefile"
|
|
22
|
+
opts = [
|
|
23
|
+
'-c advice.detachedHead=false',
|
|
24
|
+
'--no-single-branch',
|
|
25
|
+
'--depth 1',
|
|
26
|
+
"--branch #{ENV["#{repo.upcase}_BRANCH"] || ('v' + ver)}"
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
task :setup => rakefile
|
|
30
|
+
|
|
31
|
+
file rakefile do
|
|
32
|
+
sh %( git clone #{opts.join ' '} #{github}/#{repo} )
|
|
33
|
+
sh %( cd #{repo} && VENDOR_NOCOMPILE=1 rake vendor erb )
|
|
34
|
+
end
|
|
35
|
+
end
|
data/reight.gemspec
CHANGED
|
@@ -25,13 +25,14 @@ 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',
|
|
29
|
-
s.add_dependency 'rucy',
|
|
30
|
-
s.add_dependency 'beeps',
|
|
31
|
-
s.add_dependency 'rays',
|
|
32
|
-
s.add_dependency 'reflexion',
|
|
33
|
-
s.add_dependency '
|
|
34
|
-
s.add_dependency '
|
|
28
|
+
s.add_dependency 'xot', '~> 0.4.0'
|
|
29
|
+
s.add_dependency 'rucy', '~> 0.4.0'
|
|
30
|
+
s.add_dependency 'beeps', '~> 0.4.0'
|
|
31
|
+
s.add_dependency 'rays', '~> 0.4.0'
|
|
32
|
+
s.add_dependency 'reflexion', '~> 0.6.0'
|
|
33
|
+
s.add_dependency 'reflex-packager', '~> 0.2.0'
|
|
34
|
+
s.add_dependency 'processing', '~> 1.4.0'
|
|
35
|
+
s.add_dependency 'rubysketch', '~> 0.10.0'
|
|
35
36
|
|
|
36
37
|
s.files = `git ls-files`.split $/
|
|
37
38
|
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: reight
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
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-
|
|
11
|
+
date: 2026-08-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: xot
|
|
@@ -16,98 +16,112 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
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.
|
|
26
|
+
version: 0.4.0
|
|
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.
|
|
33
|
+
version: 0.4.0
|
|
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.
|
|
40
|
+
version: 0.4.0
|
|
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.
|
|
47
|
+
version: 0.4.0
|
|
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.
|
|
54
|
+
version: 0.4.0
|
|
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.
|
|
61
|
+
version: 0.4.0
|
|
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.
|
|
68
|
+
version: 0.4.0
|
|
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.
|
|
75
|
+
version: 0.6.0
|
|
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.
|
|
82
|
+
version: 0.6.0
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: reflex-packager
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 0.2.0
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 0.2.0
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: processing
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
86
100
|
requirements:
|
|
87
101
|
- - "~>"
|
|
88
102
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 1.
|
|
103
|
+
version: 1.4.0
|
|
90
104
|
type: :runtime
|
|
91
105
|
prerelease: false
|
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
107
|
requirements:
|
|
94
108
|
- - "~>"
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 1.
|
|
110
|
+
version: 1.4.0
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: rubysketch
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements:
|
|
101
115
|
- - "~>"
|
|
102
116
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 0.
|
|
117
|
+
version: 0.10.0
|
|
104
118
|
type: :runtime
|
|
105
119
|
prerelease: false
|
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
121
|
requirements:
|
|
108
122
|
- - "~>"
|
|
109
123
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 0.
|
|
124
|
+
version: 0.10.0
|
|
111
125
|
description: A Retro Game Engine for Ruby.
|
|
112
126
|
email: xordog@gmail.com
|
|
113
127
|
executables:
|
|
@@ -129,6 +143,7 @@ files:
|
|
|
129
143
|
- LICENSE
|
|
130
144
|
- README.md
|
|
131
145
|
- Rakefile
|
|
146
|
+
- Reight.podspec
|
|
132
147
|
- VERSION
|
|
133
148
|
- bin/r8
|
|
134
149
|
- lib/reight.rb
|
|
@@ -163,6 +178,7 @@ files:
|
|
|
163
178
|
- lib/reight/app/sprite/tool.rb
|
|
164
179
|
- lib/reight/button.rb
|
|
165
180
|
- lib/reight/chip.rb
|
|
181
|
+
- lib/reight/cli.rb
|
|
166
182
|
- lib/reight/context.rb
|
|
167
183
|
- lib/reight/extension.rb
|
|
168
184
|
- lib/reight/helpers.rb
|
|
@@ -174,6 +190,7 @@ files:
|
|
|
174
190
|
- lib/reight/sound.rb
|
|
175
191
|
- lib/reight/sprite.rb
|
|
176
192
|
- lib/reight/text.rb
|
|
193
|
+
- pod.rake
|
|
177
194
|
- reight.gemspec
|
|
178
195
|
- res/icons.png
|
|
179
196
|
- test/helper.rb
|