R3EXS 1.1.0 → 1.1.1
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/.yardopts +2 -2
- data/CHANGELOG.md +5 -0
- data/ext/R3EXS/R3EXS.c +601 -0
- data/ext/R3EXS/extconf.rb +3 -0
- data/lib/R3EXS/RGSS3.rb +71 -49
- data/lib/R3EXS/RGSS3_R3EXS.rb +483 -267
- data/lib/R3EXS/ast.rb +33 -24
- data/lib/R3EXS/error.rb +95 -59
- data/lib/R3EXS/extract_strings.rb +0 -1
- data/lib/R3EXS/inject_strings.rb +0 -1
- data/lib/R3EXS/json_rvdata2.rb +0 -1
- data/lib/R3EXS/rvdata2_json.rb +2 -1
- data/lib/R3EXS/utils.rb +5 -2
- data/lib/R3EXS/version.rb +1 -1
- data/lib/R3EXS.rb +2 -1
- metadata +10 -11
- data/ext/rgss3a_rvdata2/extconf.rb +0 -3
- data/ext/rgss3a_rvdata2/rgss3a_rvdata2.c +0 -616
data/lib/R3EXS/ast.rb
CHANGED
@@ -7,8 +7,21 @@ module R3EXS
|
|
7
7
|
# 用来提取源码生成的 AST 中的字符串和符号
|
8
8
|
class StringsExtractor < Prism::Visitor
|
9
9
|
|
10
|
+
# 提取后存储的字符串数组
|
11
|
+
#
|
12
|
+
# @return [Array<String>]
|
13
|
+
attr_reader :strings
|
14
|
+
|
15
|
+
# 是否包含脚本中的符号
|
16
|
+
#
|
17
|
+
# @return [Boolean]
|
18
|
+
attr_reader :with_symbol
|
19
|
+
|
20
|
+
# 初始化 StringsExtractor
|
21
|
+
#
|
10
22
|
# @param strings [Array<String>] 存储提取出的字符串的数组
|
11
23
|
# @param with_symbol [Boolean] 是否包含脚本中的符号
|
24
|
+
#
|
12
25
|
# @return [StringsExtractor]
|
13
26
|
def initialize(strings, with_symbol)
|
14
27
|
@strings = strings
|
@@ -18,6 +31,7 @@ module R3EXS
|
|
18
31
|
# 处理类型为 StringNode 的节点
|
19
32
|
#
|
20
33
|
# @param node [Prism::StringNode] AST 节点
|
34
|
+
#
|
21
35
|
# @return [void]
|
22
36
|
def visit_string_node(node)
|
23
37
|
@strings << node.content
|
@@ -27,22 +41,12 @@ module R3EXS
|
|
27
41
|
# 处理类型为 SymbolNode 的节点
|
28
42
|
#
|
29
43
|
# @param node [Prism::SymbolNode] AST 节点
|
44
|
+
#
|
30
45
|
# @return [void]
|
31
46
|
def visit_symbol_node(node)
|
32
47
|
@strings << node.value if @with_symbol
|
33
48
|
super
|
34
49
|
end
|
35
|
-
|
36
|
-
# 提取后存储的字符串数组
|
37
|
-
#
|
38
|
-
# @return [Array<String>]
|
39
|
-
attr_accessor :strings
|
40
|
-
|
41
|
-
# 是否包含脚本中的符号
|
42
|
-
#
|
43
|
-
# @return [Boolean]
|
44
|
-
attr_accessor :with_symbol
|
45
|
-
|
46
50
|
end
|
47
51
|
|
48
52
|
# 用来替换源码里面的字符串和符号
|
@@ -51,18 +55,6 @@ module R3EXS
|
|
51
55
|
# 用来记录字符串的位置
|
52
56
|
class Location
|
53
57
|
|
54
|
-
# @note start_offset 是字符串在二进制下打开时的位置
|
55
|
-
#
|
56
|
-
# @param start_offset [Integer] 字符串在源文件中的起始位置
|
57
|
-
# @param length [Integer] 字符串的长度
|
58
|
-
# @param content [String] 字符串内容
|
59
|
-
# @return [Location]
|
60
|
-
def initialize(start_offset, length, content)
|
61
|
-
@start_offset = start_offset
|
62
|
-
@length = length
|
63
|
-
@content = content
|
64
|
-
end
|
65
|
-
|
66
58
|
# 字符串在二进制源文件中的起始位置
|
67
59
|
#
|
68
60
|
# @return [Integer]
|
@@ -78,9 +70,24 @@ module R3EXS
|
|
78
70
|
# @return [String]
|
79
71
|
attr_reader :content
|
80
72
|
|
73
|
+
# @note start_offset 是字符串在二进制下打开时的位置
|
74
|
+
#
|
75
|
+
# @param start_offset [Integer] 字符串在源文件中的起始位置
|
76
|
+
# @param length [Integer] 字符串的长度
|
77
|
+
# @param content [String] 字符串内容
|
78
|
+
#
|
79
|
+
# @return [Location]
|
80
|
+
def initialize(start_offset, length, content)
|
81
|
+
@start_offset = start_offset
|
82
|
+
@length = length
|
83
|
+
@content = content
|
84
|
+
end
|
81
85
|
end
|
82
86
|
|
87
|
+
# 初始化 StringsInjector
|
88
|
+
#
|
83
89
|
# @param hash [Hash<String, String>] 字符串翻译表
|
90
|
+
#
|
84
91
|
# @return [StringsInjector]
|
85
92
|
def initialize(hash)
|
86
93
|
@strings_hash = hash
|
@@ -91,6 +98,7 @@ module R3EXS
|
|
91
98
|
# 处理类型为 StringNode 的节点
|
92
99
|
#
|
93
100
|
# @param node [Prism::StringNode] AST 节点
|
101
|
+
#
|
94
102
|
# @return [void]
|
95
103
|
def visit_string_node(node)
|
96
104
|
location = node.content_loc
|
@@ -104,6 +112,7 @@ module R3EXS
|
|
104
112
|
# 处理类型为 SymbolNode 的节点
|
105
113
|
#
|
106
114
|
# @param node [Prism::SymbolNode] AST 节点
|
115
|
+
#
|
107
116
|
# @return [void]
|
108
117
|
def visit_symbol_node(node)
|
109
118
|
location = node.value_loc
|
@@ -121,6 +130,7 @@ module R3EXS
|
|
121
130
|
#
|
122
131
|
# @param script [String] Ruby 源码,以二进制编码打开
|
123
132
|
# @param ast_root [Prism::ProgramNode] AST 树根节点
|
133
|
+
#
|
124
134
|
# @return [String]
|
125
135
|
def rewrite(script, ast_root)
|
126
136
|
# 首先遍历一遍,找到所有需要替换的字符串的位置
|
@@ -143,7 +153,6 @@ module R3EXS
|
|
143
153
|
@code.map! { |str| str.force_encoding('ASCII-8BIT') unless str.nil? }
|
144
154
|
@code.join
|
145
155
|
end
|
146
|
-
|
147
156
|
end
|
148
157
|
|
149
158
|
end
|
data/lib/R3EXS/error.rb
CHANGED
@@ -5,205 +5,241 @@ module R3EXS
|
|
5
5
|
# 用来处理 RPG 模块下的类型错误的异常
|
6
6
|
class RPGTypeError < TypeError
|
7
7
|
|
8
|
+
# 引发异常的类
|
9
|
+
#
|
10
|
+
# @return [Object]
|
11
|
+
attr_reader :obj
|
12
|
+
|
13
|
+
# 初始化 RPGTypeError
|
14
|
+
#
|
8
15
|
# @param msg [String] 异常信息
|
9
16
|
# @param obj [Object] 引发异常的类
|
17
|
+
#
|
10
18
|
# @return [RPGTypeError]
|
11
19
|
def initialize(msg = '', obj)
|
12
20
|
super(msg)
|
13
21
|
@obj = obj
|
14
22
|
end
|
15
|
-
|
16
|
-
# 引发异常的类
|
17
|
-
#
|
18
|
-
# @return [Object]
|
19
|
-
attr_reader :obj
|
20
23
|
end
|
21
24
|
|
22
25
|
# 用来处理 R3EXS 模块下的类型错误的异常
|
23
26
|
class R3EXSTypeError < TypeError
|
24
27
|
|
28
|
+
# 引发异常的类型
|
29
|
+
#
|
30
|
+
# @return [Object]
|
31
|
+
attr_reader :obj
|
32
|
+
|
33
|
+
# 初始化 R3EXSTypeError
|
34
|
+
#
|
25
35
|
# @param msg [String] 异常信息
|
26
36
|
# @param obj [Object] 引发异常的的类型
|
37
|
+
#
|
27
38
|
# @return [R3EXSTypeError]
|
28
39
|
def initialize(msg = '', obj)
|
29
40
|
super(msg)
|
30
41
|
@obj = obj
|
31
42
|
end
|
32
|
-
|
33
|
-
# 引发异常的类型
|
34
|
-
#
|
35
|
-
# @return [Object]
|
36
|
-
attr_reader :obj
|
37
43
|
end
|
38
44
|
|
39
45
|
# 用来处理 Game.rgss3a 文件加密格式不支持的异常
|
40
46
|
class RGSS3AFileError < StandardError
|
41
47
|
|
48
|
+
# 引发异常的 rgss3a 文件路径
|
49
|
+
#
|
50
|
+
# @return [String]
|
51
|
+
attr_reader :rgss3a_path
|
52
|
+
|
53
|
+
# 初始化 RGSS3AFileError
|
54
|
+
#
|
42
55
|
# @param msg [String] 异常信息
|
43
56
|
# @param rgss3a_path [String] 引发异常的 rgss3a 文件路径
|
57
|
+
#
|
44
58
|
# @return [Rvdata2DirError]
|
45
59
|
def initialize(msg = '', rgss3a_path)
|
46
60
|
super(msg)
|
47
61
|
@rgss3a_path = rgss3a_path
|
48
62
|
end
|
49
|
-
|
50
|
-
# 引发异常的 rgss3a 文件路径
|
51
|
-
#
|
52
|
-
# @return [String]
|
53
|
-
attr_reader :rgss3a_path
|
54
63
|
end
|
55
64
|
|
56
65
|
# 用来处理 rvdata2 文件损坏的异常
|
57
66
|
class Rvdata2FileError < StandardError
|
58
67
|
|
68
|
+
# 引发异常的 rvdata2 文件路径
|
69
|
+
#
|
70
|
+
# @return [String]
|
71
|
+
attr_reader :rvdata2_path
|
72
|
+
|
73
|
+
# 初始化 Rvdata2FileError
|
74
|
+
#
|
59
75
|
# @param msg [String] 异常信息
|
60
76
|
# @param rvdata2_path [String] 引发异常的 rvdata2 文件路径
|
77
|
+
#
|
61
78
|
# @return [Rvdata2DirError]
|
62
79
|
def initialize(msg = '', rvdata2_path)
|
63
80
|
super(msg)
|
64
81
|
@rvdata2_path = rvdata2_path
|
65
82
|
end
|
66
|
-
|
67
|
-
# 引发异常的 rvdata2 文件路径
|
68
|
-
#
|
69
|
-
# @return [String]
|
70
|
-
attr_reader :rvdata2_path
|
71
83
|
end
|
72
84
|
|
73
85
|
# 用来处理 RPG 模块下 JSON 文件损坏的异常
|
74
86
|
class RPGJsonFileError < StandardError
|
75
87
|
|
88
|
+
# 引发异常的 json 文件路径
|
89
|
+
#
|
90
|
+
# @return [String]
|
91
|
+
attr_reader :json_path
|
92
|
+
|
93
|
+
# 初始化 RPGJsonFileError
|
94
|
+
#
|
76
95
|
# @param msg [String] 异常信息
|
77
96
|
# @param json_path [String] 引发异常的 json 文件路径
|
97
|
+
#
|
78
98
|
# @return [RPGJsonFileError]
|
79
99
|
def initialize(msg = '', json_path)
|
80
100
|
super(msg)
|
81
101
|
@json_path = json_path
|
82
102
|
end
|
103
|
+
end
|
104
|
+
|
105
|
+
# 用来处理 R3EXS 模块下 JSON 文件损坏的异常
|
106
|
+
class R3EXSJsonFileError < StandardError
|
83
107
|
|
84
108
|
# 引发异常的 json 文件路径
|
85
109
|
#
|
86
110
|
# @return [String]
|
87
111
|
attr_reader :json_path
|
88
|
-
end
|
89
|
-
|
90
|
-
# 用来处理 R3EXS 模块下 JSON 文件损坏的异常
|
91
|
-
class R3EXSJsonFileError < StandardError
|
92
112
|
|
113
|
+
# 初始化 R3EXSJsonFileError
|
114
|
+
#
|
93
115
|
# @param msg [String] 异常信息
|
94
116
|
# @param json_path [String] 引发异常的 json 文件路径
|
117
|
+
#
|
95
118
|
# @return [R3EXSJsonFileError]
|
96
119
|
def initialize(msg = '', json_path)
|
97
120
|
super(msg)
|
98
121
|
@json_path = json_path
|
99
122
|
end
|
100
|
-
|
101
|
-
# 引发异常的 json 文件路径
|
102
|
-
#
|
103
|
-
# @return [String]
|
104
|
-
attr_reader :json_path
|
105
123
|
end
|
106
124
|
|
107
125
|
# 用来处理模块名错误的异常
|
108
126
|
class ModuleNameError < ArgumentError
|
109
127
|
|
128
|
+
# 引发异常的模块名
|
129
|
+
#
|
130
|
+
# @return [Symbol]
|
131
|
+
attr_reader :module_name
|
132
|
+
|
133
|
+
# 初始化 ModuleNameError
|
134
|
+
#
|
110
135
|
# @param msg [String] 异常信息
|
111
136
|
# @param module_name [Symbol] 引发异常的模块名
|
137
|
+
#
|
112
138
|
# @return [ModuleNameError]
|
113
139
|
def initialize(msg = '', module_name)
|
114
140
|
super(msg)
|
115
141
|
@module_name = module_name
|
116
142
|
end
|
117
|
-
|
118
|
-
# 引发异常的模块名
|
119
|
-
#
|
120
|
-
# @return [Symbol]
|
121
|
-
attr_reader :module_name
|
122
143
|
end
|
123
144
|
|
124
145
|
# 用来处理文件名错误的异常
|
125
146
|
class FileBaseNameError < ArgumentError
|
126
147
|
|
148
|
+
# 引发异常的文件名
|
149
|
+
#
|
150
|
+
# @return [String]
|
151
|
+
attr_reader :filebasename
|
152
|
+
|
153
|
+
# 初始化 FileBaseNameError
|
154
|
+
#
|
127
155
|
# @param msg [String] 异常信息
|
128
156
|
# @param filebasename [String] 引发异常的文件名
|
157
|
+
#
|
129
158
|
# @return [FileBaseNameError]
|
130
159
|
def initialize(msg = '', filebasename)
|
131
160
|
super(msg)
|
132
161
|
@filebasename = filebasename
|
133
162
|
end
|
134
|
-
|
135
|
-
# 引发异常的文件名
|
136
|
-
#
|
137
|
-
# @return [String]
|
138
|
-
attr_reader :filebasename
|
139
163
|
end
|
140
164
|
|
141
165
|
# 用来处理 *.rvdata2 文件目录不存在的异常
|
142
166
|
class Rvdata2DirError < IOError
|
143
167
|
|
168
|
+
# 引发异常的 *.rvdata2 文件目录
|
169
|
+
#
|
170
|
+
# @return [String]
|
171
|
+
attr_reader :rvdata2_dir
|
172
|
+
|
173
|
+
# 初始化 Rvdata2DirError
|
174
|
+
#
|
144
175
|
# @param msg [String] 异常信息
|
145
176
|
# @param rvdata2_dir [String] 引发异常的 *.rvdata2 文件目录
|
177
|
+
#
|
146
178
|
# @return [Rvdata2DirError]
|
147
179
|
def initialize(msg = '', rvdata2_dir)
|
148
180
|
super(msg)
|
149
181
|
@rvdata2_dir = rvdata2_dir
|
150
182
|
end
|
151
|
-
|
152
|
-
# 引发异常的 *.rvdata2 文件目录
|
153
|
-
#
|
154
|
-
# @return [String]
|
155
|
-
attr_reader :rvdata2_dir
|
156
183
|
end
|
157
184
|
|
158
185
|
# 用来处理 *.json 文件目录不存在的异常
|
159
186
|
class JsonDirError < IOError
|
160
187
|
|
188
|
+
# 引发异常的 *.json 文件目录
|
189
|
+
#
|
190
|
+
# @return [String]
|
191
|
+
attr_reader :json_dir
|
192
|
+
|
193
|
+
# 初始化 JsonDirError
|
194
|
+
#
|
161
195
|
# @param msg [String] 异常信息
|
162
196
|
# @param json_dir [String] 引发异常的 *.json 文件目录
|
197
|
+
#
|
163
198
|
# @return [JsonDirError]
|
164
199
|
def initialize(msg = '', json_dir)
|
165
200
|
super(msg)
|
166
201
|
@json_dir = json_dir
|
167
202
|
end
|
168
|
-
|
169
|
-
# 引发异常的 *.json 文件目录
|
170
|
-
#
|
171
|
-
# @return [String]
|
172
|
-
attr_reader :json_dir
|
173
203
|
end
|
174
204
|
|
175
205
|
# 用来处理 Scripts_info.json 文件不存在的异常
|
176
206
|
class ScriptsInfoPathError < IOError
|
177
207
|
|
208
|
+
# 引发异常的 Scripts_info.json 文件路径
|
209
|
+
#
|
210
|
+
# @return [String]
|
211
|
+
attr_reader :scripts_info_path
|
212
|
+
|
213
|
+
# 初始化 ScriptsInfoPathError
|
214
|
+
#
|
178
215
|
# @param msg [String] 异常信息
|
179
216
|
# @param scripts_info_path [String] 引发异常的 Scripts_info.json 文件路径
|
217
|
+
#
|
180
218
|
# @return [ScriptsInfoPathError]
|
181
219
|
def initialize(msg = '', scripts_info_path)
|
182
220
|
super(msg)
|
183
221
|
@scripts_info_path = scripts_info_path
|
184
222
|
end
|
185
|
-
|
186
|
-
# 引发异常的 Scripts_info.json 文件路径
|
187
|
-
#
|
188
|
-
# @return [String]
|
189
|
-
attr_reader :scripts_info_path
|
190
223
|
end
|
191
224
|
|
192
225
|
# 用来处理 ManualTransFile.json 文件不存在的异常
|
193
226
|
class ManualTransFilePathError < IOError
|
194
227
|
|
228
|
+
# 引发异常的 ManualTransFile.json 文件路径
|
229
|
+
#
|
230
|
+
# @return [String]
|
231
|
+
attr_reader :manualtransfile_path
|
232
|
+
|
233
|
+
# 初始化 ManualTransFilePathError
|
234
|
+
#
|
195
235
|
# @param msg [String] 异常信息
|
196
236
|
# @param manualtransfile_path [String] 引发异常的 ManualTransFile.json 文件路径
|
237
|
+
#
|
197
238
|
# @return [ManualTransFilePathError]
|
198
239
|
def initialize(msg = '', manualtransfile_path)
|
199
240
|
super(msg)
|
200
241
|
@manualtransfile_path = manualtransfile_path
|
201
242
|
end
|
202
|
-
|
203
|
-
# 引发异常的 ManualTransFile.json 文件路径
|
204
|
-
#
|
205
|
-
# @return [String]
|
206
|
-
attr_reader :manualtransfile_path
|
207
243
|
end
|
208
244
|
|
209
245
|
end
|
data/lib/R3EXS/inject_strings.rb
CHANGED
data/lib/R3EXS/json_rvdata2.rb
CHANGED
data/lib/R3EXS/rvdata2_json.rb
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
require 'zlib'
|
4
4
|
require_relative 'utils'
|
5
|
-
require_relative 'RGSS3_R3EXS'
|
6
5
|
|
7
6
|
module R3EXS
|
8
7
|
|
@@ -10,6 +9,7 @@ module R3EXS
|
|
10
9
|
#
|
11
10
|
# @param scripts [Array<Object>] 待转换的 Script 对象数组
|
12
11
|
# @param output_dir [Pathname] 输出目录
|
12
|
+
#
|
13
13
|
# @return [void]
|
14
14
|
def R3EXS.scripts_rb(scripts, output_dir)
|
15
15
|
output_dir.mkpath unless output_dir.exist?
|
@@ -38,6 +38,7 @@ module R3EXS
|
|
38
38
|
# @param output_dir [Pathname] 输出目录
|
39
39
|
# @param complete [Boolean] 是否序列化所有内容
|
40
40
|
# @param with_notes [Boolean] 是否包含备注
|
41
|
+
#
|
41
42
|
# @return [void]
|
42
43
|
def R3EXS.commonevents_json(commonevents, output_dir, complete, with_notes)
|
43
44
|
full_dir = output_dir.join('CommonEvents')
|
data/lib/R3EXS/utils.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'oj'
|
4
|
+
require_relative 'RGSS3'
|
4
5
|
require_relative 'RGSS3_R3EXS'
|
5
6
|
|
6
7
|
module R3EXS
|
@@ -207,7 +208,7 @@ module R3EXS
|
|
207
208
|
|--[int:3(Game Data)]--|
|
208
209
|
| |--[int:5(Character)]---[int:{-1:Player, 0:This Event, 1:EV001, ...}]---[int:{0:Map X, 1:Map Y, 2:Direction, 3:Screen X ,4:Screen Y}]---END
|
209
210
|
| |
|
210
|
-
| |--[int:6(Party)]---[int:{0~7}(Member ID)]---[int:0]---END
|
211
|
+
| |--[int:6(Party)]---[int:{0~7}(Member ID)]---[int:0]---END
|
211
212
|
| |
|
212
213
|
| |--[int:7(Other)]---[int:{0(Map ID), 1(Party Members), 2(Gold), 3(Steps), 4(Play Time), 5(Timer), 6(Save Count), 7(Battle Count)}]---[int:0]---END
|
213
214
|
|
|
@@ -320,7 +321,7 @@ module R3EXS
|
|
320
321
|
| |
|
321
322
|
[int:{0:This Event, 1:EV001, ...}]----------|--[int:1(Designation with Variables)]---[int(Map X Corresponded Variable ID)]---[int(Map Y Corresponded Variable ID)]--|--[int:{0:Retain, 2:Down, 4:Left, 6:Right, 8:Up}(Direction)]---END
|
322
323
|
| |
|
323
|
-
|--[int:2(Exchange with Another Event)]---[int(Exchanged Event ID)]---[int:0]
|
324
|
+
|--[int:2(Exchange with Another Event)]---[int(Exchanged Event ID)]---[int:0]-------------------------------------------|
|
324
325
|
=end
|
325
326
|
203 => 'SetEventLocation',
|
326
327
|
|
@@ -1060,6 +1061,7 @@ module R3EXS
|
|
1060
1061
|
#
|
1061
1062
|
# @param object [Object] 待序列化的对象
|
1062
1063
|
# @param output_file [Pathname] 输出文件路径
|
1064
|
+
#
|
1063
1065
|
# @return [void]
|
1064
1066
|
def Utils.object_json(object, output_file)
|
1065
1067
|
output_file.dirname.mkpath unless output_file.dirname.exist?
|
@@ -1070,6 +1072,7 @@ module R3EXS
|
|
1070
1072
|
#
|
1071
1073
|
# @param object [Object] 待序列化的对象
|
1072
1074
|
# @param output_file [Pathname] 输出文件路径
|
1075
|
+
#
|
1073
1076
|
# @return [void]
|
1074
1077
|
def Utils.object_rvdata2(object, output_file)
|
1075
1078
|
output_file.dirname.mkpath unless output_file.dirname.exist?
|
data/lib/R3EXS/version.rb
CHANGED
data/lib/R3EXS.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: R3EXS
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- LuoTat
|
@@ -29,14 +29,14 @@ dependencies:
|
|
29
29
|
requirements:
|
30
30
|
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
32
|
+
version: 1.3.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 1.
|
39
|
+
version: 1.3.0
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: yard
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -71,14 +71,14 @@ dependencies:
|
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: 1.3.
|
74
|
+
version: 1.3.17
|
75
75
|
type: :development
|
76
76
|
prerelease: false
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: 1.3.
|
81
|
+
version: 1.3.17
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: gli
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,18 +111,18 @@ email: LuoTat.s@gmail.com
|
|
111
111
|
executables:
|
112
112
|
- R3EXS
|
113
113
|
extensions:
|
114
|
-
- "./ext/
|
114
|
+
- "./ext/R3EXS/extconf.rb"
|
115
115
|
extra_rdoc_files: []
|
116
116
|
files:
|
117
|
-
- "./ext/
|
117
|
+
- "./ext/R3EXS/extconf.rb"
|
118
118
|
- ".yardopts"
|
119
119
|
- CHANGELOG.md
|
120
120
|
- LICENSE
|
121
121
|
- README.md
|
122
122
|
- README_EN.md
|
123
123
|
- bin/R3EXS
|
124
|
-
- ext/
|
125
|
-
- ext/
|
124
|
+
- ext/R3EXS/R3EXS.c
|
125
|
+
- ext/R3EXS/extconf.rb
|
126
126
|
- lib/R3EXS.rb
|
127
127
|
- lib/R3EXS/RGSS3.rb
|
128
128
|
- lib/R3EXS/RGSS3_R3EXS.rb
|
@@ -145,7 +145,6 @@ metadata:
|
|
145
145
|
rdoc_options: []
|
146
146
|
require_paths:
|
147
147
|
- lib
|
148
|
-
- lib
|
149
148
|
required_ruby_version: !ruby/object:Gem::Requirement
|
150
149
|
requirements:
|
151
150
|
- - ">="
|
@@ -157,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
156
|
- !ruby/object:Gem::Version
|
158
157
|
version: '0'
|
159
158
|
requirements: []
|
160
|
-
rubygems_version: 3.
|
159
|
+
rubygems_version: 3.7.0
|
161
160
|
specification_version: 4
|
162
161
|
summary: A tool for extracting and translating strings from the RGSS3 game engine
|
163
162
|
test_files: []
|