img_to_script 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +25 -0
  3. data/.vscode/launch.json +21 -0
  4. data/CHANGELOG.md +7 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +271 -0
  7. data/Rakefile +16 -0
  8. data/img_to_script.gemspec +41 -0
  9. data/lib/img_to_script/abs_token_type.rb +33 -0
  10. data/lib/img_to_script/abstract_token/abs_func.rb +19 -0
  11. data/lib/img_to_script/abstract_token/abstract_token.rb +23 -0
  12. data/lib/img_to_script/abstract_token/assign_value.rb +20 -0
  13. data/lib/img_to_script/abstract_token/clear_screen.rb +16 -0
  14. data/lib/img_to_script/abstract_token/data_read.rb +19 -0
  15. data/lib/img_to_script/abstract_token/data_store.rb +19 -0
  16. data/lib/img_to_script/abstract_token/draw_chunk_by_hex_value.rb +19 -0
  17. data/lib/img_to_script/abstract_token/draw_line_by_abs_coords.rb +22 -0
  18. data/lib/img_to_script/abstract_token/draw_pixel_by_abs_coords.rb +20 -0
  19. data/lib/img_to_script/abstract_token/go_to.rb +19 -0
  20. data/lib/img_to_script/abstract_token/if_condition.rb +20 -0
  21. data/lib/img_to_script/abstract_token/loop_begin.rb +21 -0
  22. data/lib/img_to_script/abstract_token/loop_end.rb +19 -0
  23. data/lib/img_to_script/abstract_token/math_add.rb +20 -0
  24. data/lib/img_to_script/abstract_token/math_greater_than.rb +20 -0
  25. data/lib/img_to_script/abstract_token/math_mult.rb +20 -0
  26. data/lib/img_to_script/abstract_token/math_sub.rb +20 -0
  27. data/lib/img_to_script/abstract_token/move_point_to_abs_coords.rb +20 -0
  28. data/lib/img_to_script/abstract_token/parentheses.rb +19 -0
  29. data/lib/img_to_script/abstract_token/program_begin.rb +16 -0
  30. data/lib/img_to_script/abstract_token/program_end.rb +16 -0
  31. data/lib/img_to_script/abstract_token/remark.rb +19 -0
  32. data/lib/img_to_script/abstract_token/sign_func.rb +19 -0
  33. data/lib/img_to_script/abstract_token/wait.rb +19 -0
  34. data/lib/img_to_script/abstract_token.rb +8 -0
  35. data/lib/img_to_script/container.rb +26 -0
  36. data/lib/img_to_script/current_line_placeholder.rb +40 -0
  37. data/lib/img_to_script/formatter.rb +34 -0
  38. data/lib/img_to_script/generators/generator.rb +134 -0
  39. data/lib/img_to_script/generators/hex_mask/default.rb +24 -0
  40. data/lib/img_to_script/generators/hex_mask/enhanced.rb +220 -0
  41. data/lib/img_to_script/generators/hex_mask/hex_mask.rb +100 -0
  42. data/lib/img_to_script/generators/hex_mask.rb +13 -0
  43. data/lib/img_to_script/generators/run_length_encoding/horizontal.rb +78 -0
  44. data/lib/img_to_script/generators/run_length_encoding/run_length_encoding.rb +304 -0
  45. data/lib/img_to_script/generators/run_length_encoding/vertical.rb +79 -0
  46. data/lib/img_to_script/generators/run_length_encoding.rb +10 -0
  47. data/lib/img_to_script/generators/segmental/data_read_draw/data_read_draw.rb +70 -0
  48. data/lib/img_to_script/generators/segmental/data_read_draw/horizontal.rb +54 -0
  49. data/lib/img_to_script/generators/segmental/data_read_draw/vertical.rb +54 -0
  50. data/lib/img_to_script/generators/segmental/data_read_draw.rb +18 -0
  51. data/lib/img_to_script/generators/segmental/direct_draw/direct_draw.rb +62 -0
  52. data/lib/img_to_script/generators/segmental/direct_draw/horizontal.rb +16 -0
  53. data/lib/img_to_script/generators/segmental/direct_draw/vertical.rb +16 -0
  54. data/lib/img_to_script/generators/segmental/direct_draw.rb +12 -0
  55. data/lib/img_to_script/generators/segmental/horizontal_mixin.rb +32 -0
  56. data/lib/img_to_script/generators/segmental/segmental.rb +101 -0
  57. data/lib/img_to_script/generators/segmental/vertical_mixin.rb +38 -0
  58. data/lib/img_to_script/generators/segmental.rb +10 -0
  59. data/lib/img_to_script/generators.rb +27 -0
  60. data/lib/img_to_script/import.rb +5 -0
  61. data/lib/img_to_script/language_token.rb +8 -0
  62. data/lib/img_to_script/languages/mk90_basic/formatters/formatter.rb +49 -0
  63. data/lib/img_to_script/languages/mk90_basic/formatters/minificator.rb +316 -0
  64. data/lib/img_to_script/languages/mk90_basic/formatters/sliceable_tokens_mixin.rb +15 -0
  65. data/lib/img_to_script/languages/mk90_basic/formatters.rb +13 -0
  66. data/lib/img_to_script/languages/mk90_basic/mk90_basic_token.rb +59 -0
  67. data/lib/img_to_script/languages/mk90_basic/translators/mixin.rb +205 -0
  68. data/lib/img_to_script/languages/mk90_basic/translators/mk90_basic_10.rb +27 -0
  69. data/lib/img_to_script/languages/mk90_basic/translators/mk90_basic_20.rb +27 -0
  70. data/lib/img_to_script/languages/mk90_basic/translators/translator.rb +205 -0
  71. data/lib/img_to_script/languages/mk90_basic/translators.rb +13 -0
  72. data/lib/img_to_script/languages/mk90_basic.rb +17 -0
  73. data/lib/img_to_script/languages.rb +10 -0
  74. data/lib/img_to_script/task.rb +26 -0
  75. data/lib/img_to_script/translator.rb +31 -0
  76. data/lib/img_to_script/version.rb +5 -0
  77. data/lib/img_to_script.rb +19 -0
  78. data/sig/img_to_script.rbs +4 -0
  79. metadata +204 -0
@@ -0,0 +1,205 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ImgToScript
4
+ module Languages
5
+ module MK90Basic
6
+ module Translators
7
+ #
8
+ # Translates abstract tokens to the MK90 BASIC statements.
9
+ #
10
+ # Both v.1.0 & v.2.0 share the same syntax, but there are small
11
+ # differences. This differences are defined in the child classes
12
+ # MK90Basic10 & MK90Basic20.
13
+ #
14
+ class Translator < ImgToScript::Translator
15
+ include Mixin
16
+
17
+ private
18
+
19
+ def _translate(abstract_tokens, **)
20
+ result = []
21
+
22
+ abstract_tokens.each do |token|
23
+ result.push(_translate_token(token))
24
+ end
25
+
26
+ result
27
+ end
28
+
29
+ def _translate_token(token)
30
+ case token.type
31
+ when AbsTokenType::ABS_FUNC
32
+ _abs_func(token)
33
+ when AbsTokenType::ASSIGN_VALUE
34
+ _assign_value(token)
35
+ when AbsTokenType::CLEAR_SCREEN
36
+ _clear_screen(token)
37
+ when AbsTokenType::DATA_STORE
38
+ _data_store(token)
39
+ when AbsTokenType::DATA_READ
40
+ _data_read(token)
41
+ when AbsTokenType::DRAW_LINE_BY_ABS_COORDS
42
+ _draw_line_by_abs_coords(token)
43
+ when AbsTokenType::DRAW_PIXEL_BY_ABS_COORDS
44
+ _draw_pixel_by_abs_coords(token)
45
+ when AbsTokenType::DRAW_CHUNK_BY_HEX_VALUE
46
+ _draw_chunk_by_hex_value(token)
47
+ when AbsTokenType::MOVE_POINT_TO_ABS_COORDS
48
+ _move_point_to_abs_coords(token)
49
+ when AbsTokenType::MATH_ADD
50
+ _math_add(token)
51
+ when AbsTokenType::MATH_SUB
52
+ _math_sub(token)
53
+ when AbsTokenType::MATH_MULT
54
+ _math_mult(token)
55
+ when AbsTokenType::GO_TO
56
+ _go_to(token)
57
+ when AbsTokenType::MATH_GREATER_THAN
58
+ _math_greater_than(token)
59
+ when AbsTokenType::SIGN_FUNC
60
+ _sign_func(token)
61
+ when AbsTokenType::PARENTHESES
62
+ _parentheses(token)
63
+ when AbsTokenType::LOOP_BEGIN
64
+ _loop_begin(token)
65
+ when AbsTokenType::PROGRAM_END_LBL
66
+ _program_end(token)
67
+ when AbsTokenType::LOOP_END
68
+ _loop_end(token)
69
+ when AbsTokenType::IF_CONDITION
70
+ _if_condition(token)
71
+ when AbsTokenType::WAIT
72
+ _wait(token)
73
+ else
74
+ rem_token = AbstractToken::Remark.new(
75
+ text: "wrong abstract token type!",
76
+ require_nl: true
77
+ )
78
+ _remark(rem_token)
79
+ end
80
+ end
81
+
82
+ #
83
+ # Replace placeholders, expand nested tokens in the
84
+ # arguments, etc.
85
+ #
86
+ # @param [Array<Object>] args
87
+ # Original arguments.
88
+ #
89
+ # @return [Array<Object>]
90
+ # Translated arguments.
91
+ #
92
+ def _translate_arguments(args)
93
+ result = []
94
+
95
+ args.each do |arg|
96
+ result.push(_translate_arg(arg))
97
+ end
98
+
99
+ result
100
+ end
101
+
102
+ #
103
+ # Translate an argument based on its type.
104
+ #
105
+ # Some abstract tokens can have nested tokens as their
106
+ # arguments. Other tokens can have Symbols as placeholders
107
+ # for the variables names. Other arguments should be passed
108
+ # as is (e.g. Integers and Strings).
109
+ #
110
+ # @param [Object] arg
111
+ #
112
+ # @return [Object]
113
+ #
114
+ def _translate_arg(arg)
115
+ case arg
116
+ when AbstractToken::AbstractToken
117
+ _translate_token(arg)
118
+ when Symbol
119
+ arg.to_s.upcase
120
+ else
121
+ arg
122
+ end
123
+ end
124
+
125
+ #
126
+ # Return a token of a arithmetic operation.
127
+ #
128
+ # Operation should have a left part, a right part, and
129
+ # the operator between the parts.
130
+ #
131
+ # @param [AbstractToken] token
132
+ #
133
+ # @param [String] operator
134
+ # E.g.: "+", "-", ">", "<", etc.
135
+ #
136
+ # @return [MK90BasicToken]
137
+ #
138
+ def _math_operation(token, operator)
139
+ MK90BasicToken.new(
140
+ keyword: "",
141
+ args: _translate_arguments([
142
+ token.left,
143
+ operator,
144
+ token.right
145
+ ]),
146
+ separator: "",
147
+ require_nl: token.require_nl,
148
+ sliceable: false
149
+ )
150
+ end
151
+
152
+ #
153
+ # Return a token of a function with parentheses.
154
+ #
155
+ # Function with an expression that's wrapped in parentheses.
156
+ # E.g.: ABS(ex), SGN(ex). Keyword can be empty, in that case
157
+ # only parentheses with the expression will be returned: (ex).
158
+ #
159
+ # @param [AbstractToken] token
160
+ #
161
+ # @param [String] keyword
162
+ # E.g.: "ABS", "SGN".
163
+ #
164
+ # @return [MK90BasicToken]
165
+ #
166
+ def _function(token, keyword)
167
+ MK90BasicToken.new(
168
+ keyword: keyword,
169
+ args: _translate_arguments([
170
+ "(",
171
+ token.expression,
172
+ ")"
173
+ ]),
174
+ separator: "",
175
+ require_nl: token.require_nl,
176
+ sliceable: false
177
+ )
178
+ end
179
+
180
+ #
181
+ # Return a token of a keyword statements.
182
+ #
183
+ # A statement that consists only of a keyword, and doesn't
184
+ # take arguments, e.g.: CLS, END, STOP.
185
+ #
186
+ # @param [AbstractToken] token
187
+ #
188
+ # @param [String] keyword
189
+ #
190
+ # @return [MK90BasicToken]
191
+ #
192
+ def _single_keyword(token, keyword)
193
+ MK90BasicToken.new(
194
+ keyword: keyword,
195
+ args: [""],
196
+ separator: "",
197
+ require_nl: token.require_nl,
198
+ sliceable: false
199
+ )
200
+ end
201
+ end
202
+ end
203
+ end
204
+ end
205
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ImgToScript
4
+ module Languages
5
+ module MK90Basic
6
+ #
7
+ # Namespace for the MK90 BASIC translators.
8
+ #
9
+ module Translators
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ImgToScript
4
+ module Languages
5
+ #
6
+ # Elektronika MK90 BASIC.
7
+ #
8
+ module MK90Basic
9
+ SCR_WIDTH = 120
10
+ SCR_HEIGHT = 64
11
+ MAX_CHARS_PER_LINE = 80
12
+
13
+ LINE_OFFSET = 1
14
+ LINE_STEP = 1
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ImgToScript
4
+ #
5
+ # Namespace for target languages.
6
+ #
7
+ # A target language module should have a translator and a formatter.
8
+ #
9
+ module Languages; end
10
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ImgToScript
4
+ #
5
+ # Handles conversion.
6
+ #
7
+ class Task
8
+ include Import[
9
+ generator: "generators.hex_mask.enhanced",
10
+ translator: "languages.mk90_basic.translators.mk90_basic_10",
11
+ formatter: "languages.mk90_basic.formatters.minificator"
12
+ ]
13
+
14
+ def run(image:, scr_width:, scr_height:, **)
15
+ @formatter.format(
16
+ @translator.translate(
17
+ @generator.generate(
18
+ image: image,
19
+ scr_width: scr_width,
20
+ scr_height: scr_height
21
+ )
22
+ )
23
+ )
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ImgToScript
4
+ #
5
+ # Base class.
6
+ #
7
+ # Translates abstract tokens to more specific target language
8
+ # statements.
9
+ #
10
+ class Translator
11
+ #
12
+ # Translate the abstract tokens to the target language tokens.
13
+ #
14
+ # @param [Array<AbstractToken>] abstract_tokens
15
+ #
16
+ # @param [Hash{ Symbol => Object }] **kwargs
17
+ # Options.
18
+ #
19
+ # @return [Array<Object>]
20
+ #
21
+ def translate(abstract_tokens, **kwargs)
22
+ _translate(
23
+ Array(abstract_tokens, **kwargs)
24
+ )
25
+ end
26
+
27
+ private
28
+
29
+ def _translate(*); end
30
+ end
31
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ImgToScript
4
+ VERSION = "1.0.0"
5
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "dry/system"
4
+ require "logger"
5
+ require "run_length_encoding_rb"
6
+ require "zeitwerk"
7
+
8
+ require_relative "img_to_script/container"
9
+ require_relative "img_to_script/version"
10
+
11
+ #
12
+ # Converts binary images to executable scripts.
13
+ #
14
+ module ImgToScript
15
+ class Error < StandardError; end
16
+ # Your code goes here...
17
+
18
+ Container.finalize!
19
+ end
@@ -0,0 +1,4 @@
1
+ module ImgToScript
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,204 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: img_to_script
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - 8bit-mate
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-12-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dry-system
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: run_length_encoding_rb
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.0
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: zeitwerk
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '2.6'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 2.6.12
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '2.6'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 2.6.12
73
+ - !ruby/object:Gem::Dependency
74
+ name: rmagick-bin_magick
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.2'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.0
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.2'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.2.0
93
+ description:
94
+ email:
95
+ - you@example.com
96
+ executables: []
97
+ extensions: []
98
+ extra_rdoc_files: []
99
+ files:
100
+ - ".rubocop.yml"
101
+ - ".vscode/launch.json"
102
+ - CHANGELOG.md
103
+ - LICENSE.txt
104
+ - README.md
105
+ - Rakefile
106
+ - img_to_script.gemspec
107
+ - lib/img_to_script.rb
108
+ - lib/img_to_script/abs_token_type.rb
109
+ - lib/img_to_script/abstract_token.rb
110
+ - lib/img_to_script/abstract_token/abs_func.rb
111
+ - lib/img_to_script/abstract_token/abstract_token.rb
112
+ - lib/img_to_script/abstract_token/assign_value.rb
113
+ - lib/img_to_script/abstract_token/clear_screen.rb
114
+ - lib/img_to_script/abstract_token/data_read.rb
115
+ - lib/img_to_script/abstract_token/data_store.rb
116
+ - lib/img_to_script/abstract_token/draw_chunk_by_hex_value.rb
117
+ - lib/img_to_script/abstract_token/draw_line_by_abs_coords.rb
118
+ - lib/img_to_script/abstract_token/draw_pixel_by_abs_coords.rb
119
+ - lib/img_to_script/abstract_token/go_to.rb
120
+ - lib/img_to_script/abstract_token/if_condition.rb
121
+ - lib/img_to_script/abstract_token/loop_begin.rb
122
+ - lib/img_to_script/abstract_token/loop_end.rb
123
+ - lib/img_to_script/abstract_token/math_add.rb
124
+ - lib/img_to_script/abstract_token/math_greater_than.rb
125
+ - lib/img_to_script/abstract_token/math_mult.rb
126
+ - lib/img_to_script/abstract_token/math_sub.rb
127
+ - lib/img_to_script/abstract_token/move_point_to_abs_coords.rb
128
+ - lib/img_to_script/abstract_token/parentheses.rb
129
+ - lib/img_to_script/abstract_token/program_begin.rb
130
+ - lib/img_to_script/abstract_token/program_end.rb
131
+ - lib/img_to_script/abstract_token/remark.rb
132
+ - lib/img_to_script/abstract_token/sign_func.rb
133
+ - lib/img_to_script/abstract_token/wait.rb
134
+ - lib/img_to_script/container.rb
135
+ - lib/img_to_script/current_line_placeholder.rb
136
+ - lib/img_to_script/formatter.rb
137
+ - lib/img_to_script/generators.rb
138
+ - lib/img_to_script/generators/generator.rb
139
+ - lib/img_to_script/generators/hex_mask.rb
140
+ - lib/img_to_script/generators/hex_mask/default.rb
141
+ - lib/img_to_script/generators/hex_mask/enhanced.rb
142
+ - lib/img_to_script/generators/hex_mask/hex_mask.rb
143
+ - lib/img_to_script/generators/run_length_encoding.rb
144
+ - lib/img_to_script/generators/run_length_encoding/horizontal.rb
145
+ - lib/img_to_script/generators/run_length_encoding/run_length_encoding.rb
146
+ - lib/img_to_script/generators/run_length_encoding/vertical.rb
147
+ - lib/img_to_script/generators/segmental.rb
148
+ - lib/img_to_script/generators/segmental/data_read_draw.rb
149
+ - lib/img_to_script/generators/segmental/data_read_draw/data_read_draw.rb
150
+ - lib/img_to_script/generators/segmental/data_read_draw/horizontal.rb
151
+ - lib/img_to_script/generators/segmental/data_read_draw/vertical.rb
152
+ - lib/img_to_script/generators/segmental/direct_draw.rb
153
+ - lib/img_to_script/generators/segmental/direct_draw/direct_draw.rb
154
+ - lib/img_to_script/generators/segmental/direct_draw/horizontal.rb
155
+ - lib/img_to_script/generators/segmental/direct_draw/vertical.rb
156
+ - lib/img_to_script/generators/segmental/horizontal_mixin.rb
157
+ - lib/img_to_script/generators/segmental/segmental.rb
158
+ - lib/img_to_script/generators/segmental/vertical_mixin.rb
159
+ - lib/img_to_script/import.rb
160
+ - lib/img_to_script/language_token.rb
161
+ - lib/img_to_script/languages.rb
162
+ - lib/img_to_script/languages/mk90_basic.rb
163
+ - lib/img_to_script/languages/mk90_basic/formatters.rb
164
+ - lib/img_to_script/languages/mk90_basic/formatters/formatter.rb
165
+ - lib/img_to_script/languages/mk90_basic/formatters/minificator.rb
166
+ - lib/img_to_script/languages/mk90_basic/formatters/sliceable_tokens_mixin.rb
167
+ - lib/img_to_script/languages/mk90_basic/mk90_basic_token.rb
168
+ - lib/img_to_script/languages/mk90_basic/translators.rb
169
+ - lib/img_to_script/languages/mk90_basic/translators/mixin.rb
170
+ - lib/img_to_script/languages/mk90_basic/translators/mk90_basic_10.rb
171
+ - lib/img_to_script/languages/mk90_basic/translators/mk90_basic_20.rb
172
+ - lib/img_to_script/languages/mk90_basic/translators/translator.rb
173
+ - lib/img_to_script/task.rb
174
+ - lib/img_to_script/translator.rb
175
+ - lib/img_to_script/version.rb
176
+ - sig/img_to_script.rbs
177
+ homepage: https://github.com/8bit-mate/img_to_script.rb
178
+ licenses:
179
+ - MIT
180
+ metadata:
181
+ allowed_push_host: https://rubygems.org
182
+ homepage_uri: https://github.com/8bit-mate/img_to_script.rb
183
+ source_code_uri: https://github.com/8bit-mate/img_to_script.rb
184
+ changelog_uri: https://github.com/8bit-mate/img_to_script.rb
185
+ post_install_message:
186
+ rdoc_options: []
187
+ require_paths:
188
+ - lib
189
+ required_ruby_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: 3.0.0
194
+ required_rubygems_version: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ requirements: []
200
+ rubygems_version: 3.4.10
201
+ signing_key:
202
+ specification_version: 4
203
+ summary: Converts images to executable scripts.
204
+ test_files: []