felflame 1.0.2 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -46,16 +46,16 @@
46
46
 
47
47
  <li class="odd ">
48
48
  <div class="item">
49
- <span class='object_link'><a href="FelFlame/ComponentManager.html#[]-class_method" title="FelFlame::ComponentManager.[] (method)">[]</a></span>
50
- <small>FelFlame::ComponentManager</small>
49
+ <span class='object_link'><a href="FelFlame/Scenes.html#add-instance_method" title="FelFlame::Scenes#add (method)">#add</a></span>
50
+ <small>FelFlame::Scenes</small>
51
51
  </div>
52
52
  </li>
53
53
 
54
54
 
55
55
  <li class="even ">
56
56
  <div class="item">
57
- <span class='object_link'><a href="FelFlame/Entities.html#[]-class_method" title="FelFlame::Entities.[] (method)">[]</a></span>
58
- <small>FelFlame::Entities</small>
57
+ <span class='object_link'><a href="FelFlame/Stage.html#add-class_method" title="FelFlame::Stage.add (method)">add</a></span>
58
+ <small>FelFlame::Stage</small>
59
59
  </div>
60
60
  </li>
61
61
 
@@ -68,22 +68,6 @@
68
68
  </li>
69
69
 
70
70
 
71
- <li class="even ">
72
- <div class="item">
73
- <span class='object_link'><a href="FelFlame/Scenes.html#add-instance_method" title="FelFlame::Scenes#add (method)">#add</a></span>
74
- <small>FelFlame::Scenes</small>
75
- </div>
76
- </li>
77
-
78
-
79
- <li class="odd ">
80
- <div class="item">
81
- <span class='object_link'><a href="FelFlame/Stage.html#add-class_method" title="FelFlame::Stage.add (method)">add</a></span>
82
- <small>FelFlame::Stage</small>
83
- </div>
84
- </li>
85
-
86
-
87
71
  <li class="even ">
88
72
  <div class="item">
89
73
  <span class='object_link'><a href="FelFlame/Systems.html#addition_triggers-instance_method" title="FelFlame::Systems#addition_triggers (method)">#addition_triggers</a></span>
@@ -109,14 +93,6 @@
109
93
 
110
94
 
111
95
  <li class="odd ">
112
- <div class="item">
113
- <span class='object_link'><a href="FelFlame/ComponentManager.html#attr_changed_trigger_systems-instance_method" title="FelFlame::ComponentManager#attr_changed_trigger_systems (method)">#attr_changed_trigger_systems</a></span>
114
- <small>FelFlame::ComponentManager</small>
115
- </div>
116
- </li>
117
-
118
-
119
- <li class="even ">
120
96
  <div class="item">
121
97
  <span class='object_link'><a href="FelFlame/Systems.html#attr_triggers-instance_method" title="FelFlame::Systems#attr_triggers (method)">#attr_triggers</a></span>
122
98
  <small>FelFlame::Systems</small>
@@ -124,17 +100,9 @@
124
100
  </li>
125
101
 
126
102
 
127
- <li class="odd ">
128
- <div class="item">
129
- <span class='object_link'><a href="FelFlame/ComponentManager.html#attr_triggers-instance_method" title="FelFlame::ComponentManager#attr_triggers (method)">#attr_triggers</a></span>
130
- <small>FelFlame::ComponentManager</small>
131
- </div>
132
- </li>
133
-
134
-
135
103
  <li class="even ">
136
104
  <div class="item">
137
- <span class='object_link'><a href="FelFlame/ComponentManager.html#attr_triggers-class_method" title="FelFlame::ComponentManager.attr_triggers (method)">attr_triggers</a></span>
105
+ <span class='object_link'><a href="FelFlame/ComponentManager.html#attr_triggers-instance_method" title="FelFlame::ComponentManager#attr_triggers (method)">#attr_triggers</a></span>
138
106
  <small>FelFlame::ComponentManager</small>
139
107
  </div>
140
108
  </li>
@@ -142,7 +110,7 @@
142
110
 
143
111
  <li class="odd ">
144
112
  <div class="item">
145
- <span class='object_link'><a href="FelFlame/ComponentManager.html#attrs-instance_method" title="FelFlame::ComponentManager#attrs (method)">#attrs</a></span>
113
+ <span class='object_link'><a href="FelFlame/ComponentManager.html#attr_triggers-class_method" title="FelFlame::ComponentManager.attr_triggers (method)">attr_triggers</a></span>
146
114
  <small>FelFlame::ComponentManager</small>
147
115
  </div>
148
116
  </li>
@@ -150,8 +118,8 @@
150
118
 
151
119
  <li class="even ">
152
120
  <div class="item">
153
- <span class='object_link'><a href="FelFlame/Systems.html#call-instance_method" title="FelFlame::Systems#call (method)">#call</a></span>
154
- <small>FelFlame::Systems</small>
121
+ <span class='object_link'><a href="FelFlame.html#call-class_method" title="FelFlame.call (method)">call</a></span>
122
+ <small>FelFlame</small>
155
123
  </div>
156
124
  </li>
157
125
 
@@ -174,8 +142,8 @@
174
142
 
175
143
  <li class="odd ">
176
144
  <div class="item">
177
- <span class='object_link'><a href="FelFlame.html#call-class_method" title="FelFlame.call (method)">call</a></span>
178
- <small>FelFlame</small>
145
+ <span class='object_link'><a href="FelFlame/Systems.html#call-instance_method" title="FelFlame::Systems#call (method)">#call</a></span>
146
+ <small>FelFlame::Systems</small>
179
147
  </div>
180
148
  </li>
181
149
 
@@ -206,7 +174,7 @@
206
174
 
207
175
  <li class="odd ">
208
176
  <div class="item">
209
- <span class='object_link'><a href="FelFlame/Entities.html#components-instance_method" title="FelFlame::Entities#components (method)">#components</a></span>
177
+ <span class='object_link'><a href="FelFlame/Entities.html#component-instance_method" title="FelFlame::Entities#component (method)">#component</a></span>
210
178
  <small>FelFlame::Entities</small>
211
179
  </div>
212
180
  </li>
@@ -214,29 +182,21 @@
214
182
 
215
183
  <li class="even ">
216
184
  <div class="item">
217
- <span class='object_link'><a href="FelFlame/Systems.html#const_name-instance_method" title="FelFlame::Systems#const_name (method)">#const_name</a></span>
218
- <small>FelFlame::Systems</small>
185
+ <span class='object_link'><a href="FelFlame/Entities.html#components-instance_method" title="FelFlame::Entities#components (method)">#components</a></span>
186
+ <small>FelFlame::Entities</small>
219
187
  </div>
220
188
  </li>
221
189
 
222
190
 
223
191
  <li class="odd ">
224
192
  <div class="item">
225
- <span class='object_link'><a href="FelFlame/Scenes.html#const_name-instance_method" title="FelFlame::Scenes#const_name (method)">#const_name</a></span>
226
- <small>FelFlame::Scenes</small>
193
+ <span class='object_link'><a href="FelFlame/Systems.html#const_cache-class_method" title="FelFlame::Systems.const_cache (method)">const_cache</a></span>
194
+ <small>FelFlame::Systems</small>
227
195
  </div>
228
196
  </li>
229
197
 
230
198
 
231
199
  <li class="even ">
232
- <div class="item">
233
- <span class='object_link'><a href="FelFlame/ComponentManager.html#delete-instance_method" title="FelFlame::ComponentManager#delete (method)">#delete</a></span>
234
- <small>FelFlame::ComponentManager</small>
235
- </div>
236
- </li>
237
-
238
-
239
- <li class="odd ">
240
200
  <div class="item">
241
201
  <span class='object_link'><a href="FelFlame/Entities.html#delete-instance_method" title="FelFlame::Entities#delete (method)">#delete</a></span>
242
202
  <small>FelFlame::Entities</small>
@@ -244,38 +204,14 @@
244
204
  </li>
245
205
 
246
206
 
247
- <li class="even ">
248
- <div class="item">
249
- <span class='object_link'><a href="FelFlame/Systems.html#each-class_method" title="FelFlame::Systems.each (method)">each</a></span>
250
- <small>FelFlame::Systems</small>
251
- </div>
252
- </li>
253
-
254
-
255
207
  <li class="odd ">
256
208
  <div class="item">
257
- <span class='object_link'><a href="FelFlame/Components.html#each-class_method" title="FelFlame::Components.each (method)">each</a></span>
258
- <small>FelFlame::Components</small>
259
- </div>
260
- </li>
261
-
262
-
263
- <li class="even ">
264
- <div class="item">
265
- <span class='object_link'><a href="FelFlame/ComponentManager.html#each-class_method" title="FelFlame::ComponentManager.each (method)">each</a></span>
209
+ <span class='object_link'><a href="FelFlame/ComponentManager.html#delete-instance_method" title="FelFlame::ComponentManager#delete (method)">#delete</a></span>
266
210
  <small>FelFlame::ComponentManager</small>
267
211
  </div>
268
212
  </li>
269
213
 
270
214
 
271
- <li class="odd ">
272
- <div class="item">
273
- <span class='object_link'><a href="FelFlame/Entities.html#each-class_method" title="FelFlame::Entities.each (method)">each</a></span>
274
- <small>FelFlame::Entities</small>
275
- </div>
276
- </li>
277
-
278
-
279
215
  <li class="even ">
280
216
  <div class="item">
281
217
  <span class='object_link'><a href="FelFlame/ComponentManager.html#entities-instance_method" title="FelFlame::ComponentManager#entities (method)">#entities</a></span>
@@ -286,7 +222,7 @@
286
222
 
287
223
  <li class="odd ">
288
224
  <div class="item">
289
- <span class='object_link'><a href="FelFlame/ComponentManager.html#id-instance_method" title="FelFlame::ComponentManager#id (method)">#id</a></span>
225
+ <span class='object_link'><a href="FelFlame/ComponentManager.html#entity-instance_method" title="FelFlame::ComponentManager#entity (method)">#entity</a></span>
290
226
  <small>FelFlame::ComponentManager</small>
291
227
  </div>
292
228
  </li>
@@ -294,48 +230,48 @@
294
230
 
295
231
  <li class="even ">
296
232
  <div class="item">
297
- <span class='object_link'><a href="FelFlame/Entities.html#id-instance_method" title="FelFlame::Entities#id (method)">#id</a></span>
298
- <small>FelFlame::Entities</small>
233
+ <span class='object_link'><a href="FelFlame/Scenes.html#initialize-instance_method" title="FelFlame::Scenes#initialize (method)">#initialize</a></span>
234
+ <small>FelFlame::Scenes</small>
299
235
  </div>
300
236
  </li>
301
237
 
302
238
 
303
239
  <li class="odd ">
304
240
  <div class="item">
305
- <span class='object_link'><a href="FelFlame/Systems.html#initialize-instance_method" title="FelFlame::Systems#initialize (method)">#initialize</a></span>
306
- <small>FelFlame::Systems</small>
241
+ <span class='object_link'><a href="FelFlame/Entities.html#initialize-instance_method" title="FelFlame::Entities#initialize (method)">#initialize</a></span>
242
+ <small>FelFlame::Entities</small>
307
243
  </div>
308
244
  </li>
309
245
 
310
246
 
311
247
  <li class="even ">
312
248
  <div class="item">
313
- <span class='object_link'><a href="FelFlame/ComponentManager.html#initialize-instance_method" title="FelFlame::ComponentManager#initialize (method)">#initialize</a></span>
314
- <small>FelFlame::ComponentManager</small>
249
+ <span class='object_link'><a href="FelFlame/Systems.html#initialize-instance_method" title="FelFlame::Systems#initialize (method)">#initialize</a></span>
250
+ <small>FelFlame::Systems</small>
315
251
  </div>
316
252
  </li>
317
253
 
318
254
 
319
255
  <li class="odd ">
320
256
  <div class="item">
321
- <span class='object_link'><a href="FelFlame/Entities.html#initialize-instance_method" title="FelFlame::Entities#initialize (method)">#initialize</a></span>
322
- <small>FelFlame::Entities</small>
257
+ <span class='object_link'><a href="FelFlame/ComponentManager.html#initialize-instance_method" title="FelFlame::ComponentManager#initialize (method)">#initialize</a></span>
258
+ <small>FelFlame::ComponentManager</small>
323
259
  </div>
324
260
  </li>
325
261
 
326
262
 
327
263
  <li class="even ">
328
264
  <div class="item">
329
- <span class='object_link'><a href="FelFlame/Scenes.html#initialize-instance_method" title="FelFlame::Scenes#initialize (method)">#initialize</a></span>
330
- <small>FelFlame::Scenes</small>
265
+ <span class='object_link'><a href="FelFlame/Components.html#new-class_method" title="FelFlame::Components.new (method)">new</a></span>
266
+ <small>FelFlame::Components</small>
331
267
  </div>
332
268
  </li>
333
269
 
334
270
 
335
271
  <li class="odd ">
336
272
  <div class="item">
337
- <span class='object_link'><a href="FelFlame/Components.html#new-class_method" title="FelFlame::Components.new (method)">new</a></span>
338
- <small>FelFlame::Components</small>
273
+ <span class='object_link'><a href="FelFlame/Scenes.html#priority-instance_method" title="FelFlame::Scenes#priority (method)">#priority</a></span>
274
+ <small>FelFlame::Scenes</small>
339
275
  </div>
340
276
  </li>
341
277
 
@@ -382,24 +318,24 @@
382
318
 
383
319
  <li class="odd ">
384
320
  <div class="item">
385
- <span class='object_link'><a href="FelFlame/Entities.html#remove-instance_method" title="FelFlame::Entities#remove (method)">#remove</a></span>
386
- <small>FelFlame::Entities</small>
321
+ <span class='object_link'><a href="FelFlame/Scenes.html#remove-instance_method" title="FelFlame::Scenes#remove (method)">#remove</a></span>
322
+ <small>FelFlame::Scenes</small>
387
323
  </div>
388
324
  </li>
389
325
 
390
326
 
391
327
  <li class="even ">
392
328
  <div class="item">
393
- <span class='object_link'><a href="FelFlame/Scenes.html#remove-instance_method" title="FelFlame::Scenes#remove (method)">#remove</a></span>
394
- <small>FelFlame::Scenes</small>
329
+ <span class='object_link'><a href="FelFlame/Stage.html#remove-class_method" title="FelFlame::Stage.remove (method)">remove</a></span>
330
+ <small>FelFlame::Stage</small>
395
331
  </div>
396
332
  </li>
397
333
 
398
334
 
399
335
  <li class="odd ">
400
336
  <div class="item">
401
- <span class='object_link'><a href="FelFlame/Stage.html#remove-class_method" title="FelFlame::Stage.remove (method)">remove</a></span>
402
- <small>FelFlame::Stage</small>
337
+ <span class='object_link'><a href="FelFlame/Entities.html#remove-instance_method" title="FelFlame::Entities#remove (method)">#remove</a></span>
338
+ <small>FelFlame::Entities</small>
403
339
  </div>
404
340
  </li>
405
341
 
@@ -414,29 +350,37 @@
414
350
 
415
351
  <li class="odd ">
416
352
  <div class="item">
417
- <span class='object_link'><a href="FelFlame/Scenes.html#systems-instance_method" title="FelFlame::Scenes#systems (method)">#systems</a></span>
418
- <small>FelFlame::Scenes</small>
353
+ <span class='object_link'><a href="FelFlame/Systems.html#scenes-instance_method" title="FelFlame::Systems#scenes (method)">#scenes</a></span>
354
+ <small>FelFlame::Systems</small>
419
355
  </div>
420
356
  </li>
421
357
 
422
358
 
423
359
  <li class="even ">
424
360
  <div class="item">
425
- <span class='object_link'><a href="FelFlame/ComponentManager.html#to_i-instance_method" title="FelFlame::ComponentManager#to_i (method)">#to_i</a></span>
426
- <small>FelFlame::ComponentManager</small>
361
+ <span class='object_link'><a href="FelFlame/Order.html#sort-class_method" title="FelFlame::Order.sort (method)">sort</a></span>
362
+ <small>FelFlame::Order</small>
427
363
  </div>
428
364
  </li>
429
365
 
430
366
 
431
367
  <li class="odd ">
432
368
  <div class="item">
433
- <span class='object_link'><a href="FelFlame/Entities.html#to_i-instance_method" title="FelFlame::Entities#to_i (method)">#to_i</a></span>
434
- <small>FelFlame::Entities</small>
369
+ <span class='object_link'><a href="FelFlame/Scenes.html#systems-instance_method" title="FelFlame::Scenes#systems (method)">#systems</a></span>
370
+ <small>FelFlame::Scenes</small>
435
371
  </div>
436
372
  </li>
437
373
 
438
374
 
439
375
  <li class="even ">
376
+ <div class="item">
377
+ <span class='object_link'><a href="FelFlame/ComponentManager.html#to_h-instance_method" title="FelFlame::ComponentManager#to_h (method)">#to_h</a></span>
378
+ <small>FelFlame::ComponentManager</small>
379
+ </div>
380
+ </li>
381
+
382
+
383
+ <li class="odd ">
440
384
  <div class="item">
441
385
  <span class='object_link'><a href="FelFlame/Systems.html#trigger_when_added-instance_method" title="FelFlame::Systems#trigger_when_added (method)">#trigger_when_added</a></span>
442
386
  <small>FelFlame::Systems</small>
@@ -444,7 +388,7 @@
444
388
  </li>
445
389
 
446
390
 
447
- <li class="odd ">
391
+ <li class="even ">
448
392
  <div class="item">
449
393
  <span class='object_link'><a href="FelFlame/Systems.html#trigger_when_is_changed-instance_method" title="FelFlame::Systems#trigger_when_is_changed (method)">#trigger_when_is_changed</a></span>
450
394
  <small>FelFlame::Systems</small>
@@ -452,7 +396,7 @@
452
396
  </li>
453
397
 
454
398
 
455
- <li class="even ">
399
+ <li class="odd ">
456
400
  <div class="item">
457
401
  <span class='object_link'><a href="FelFlame/Systems.html#trigger_when_removed-instance_method" title="FelFlame::Systems#trigger_when_removed (method)">#trigger_when_removed</a></span>
458
402
  <small>FelFlame::Systems</small>
@@ -460,7 +404,7 @@
460
404
  </li>
461
405
 
462
406
 
463
- <li class="odd ">
407
+ <li class="even ">
464
408
  <div class="item">
465
409
  <span class='object_link'><a href="FelFlame/ComponentManager.html#update_attrs-instance_method" title="FelFlame::ComponentManager#update_attrs (method)">#update_attrs</a></span>
466
410
  <small>FelFlame::ComponentManager</small>
@@ -82,9 +82,9 @@
82
82
  <p class="children">
83
83
 
84
84
 
85
-
85
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="FelFlame.html" title="FelFlame (module)">FelFlame</a></span>, <span class='object_link'><a href="Felflame_.html" title="Felflame (module)">Felflame</a></span>
86
86
 
87
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="FelFlame.html" title="FelFlame (class)">FelFlame</a></span>
87
+
88
88
 
89
89
 
90
90
  </p>
@@ -101,7 +101,7 @@
101
101
  <div class="docstring">
102
102
  <div class="discussion">
103
103
 
104
- <p>An alias for <span class='object_link'><a href="FelFlame.html" title="FelFlame (class)">FelFlame</a></span></p>
104
+ <p>An alias for <span class='object_link'><a href="FelFlame.html" title="FelFlame (module)">FelFlame</a></span></p>
105
105
 
106
106
 
107
107
  </div>
@@ -111,7 +111,7 @@
111
111
 
112
112
  </div>
113
113
  </dt>
114
- <dd><pre class="code"><span class='const'><span class='object_link'><a href="FelFlame.html" title="FelFlame (class)">FelFlame</a></span></span></pre></dd>
114
+ <dd><pre class="code"><span class='const'><span class='object_link'><a href="FelFlame.html" title="FelFlame (module)">FelFlame</a></span></span></pre></dd>
115
115
 
116
116
  </dl>
117
117
 
@@ -127,7 +127,7 @@
127
127
  </div>
128
128
 
129
129
  <div id="footer">
130
- Generated on Fri Jul 9 01:56:53 2021 by
130
+ Generated on Tue Feb 1 23:28:33 2022 by
131
131
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
132
132
  0.9.26 (ruby-2.7.3).
133
133
  </div>
data/felflame.gemspec CHANGED
@@ -1,44 +1,44 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "lib/felflame/version"
3
+ require_relative 'lib/felflame/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "felflame"
6
+ spec.name = 'felflame'
7
7
  spec.version = Felflame::VERSION
8
- spec.authors = ["Tradam"]
9
- spec.email = ["felflame@tradam.dev"]
8
+ spec.authors = ['Tradam']
9
+ spec.email = ['felflame@tradam.dev']
10
10
 
11
- spec.summary = "The Engine Agnostic ECS Ruby Framework"
12
- #spec.description = "TODO: Write a longer description or delete this line."
13
- spec.homepage = "https://felflame.tradam.fyi"
14
- spec.license = "MIT"
15
- spec.required_ruby_version = ">= 2.4.0"
11
+ spec.summary = 'Renamed to FelECS: https://rubygems.org/gems/felecs' #'The Engine Agnostic ECS Ruby Framework'
12
+ # spec.description = "TODO: Write a longer description or delete this line."
13
+ spec.homepage = 'https://felflame.tradam.fyi'
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = '>= 2.4.0'
16
16
 
17
- #spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
17
+ # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
18
18
 
19
- spec.metadata["homepage_uri"] = spec.homepage
20
- spec.metadata["source_code_uri"] = "https://github.com/realtradam/FelFlame"
21
- #spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
19
+ spec.metadata['homepage_uri'] = spec.homepage
20
+ spec.metadata['source_code_uri'] = 'https://github.com/realtradam/FelFlame'
21
+ # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
22
22
 
23
23
  # Specify which files should be added to the gem when it is released.
24
24
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
25
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
26
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features|deprecated|codeclimate|logos)/}) }
27
27
  end
28
- spec.bindir = "exe"
28
+ spec.bindir = 'exe'
29
29
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
- spec.require_paths = ["lib"]
30
+ spec.require_paths = ['lib']
31
31
 
32
32
  # Uncomment to register a new dependency of your gem
33
33
  # spec.add_dependency "example-gem", "~> 1.0"
34
- spec.add_development_dependency 'minitest-reporters', '~> 1.4', '>= 1.4.3'#, require: false
34
+ spec.add_development_dependency 'minitest-reporters', '~> 1.4', '>= 1.4.3' # , require: false
35
+ spec.add_development_dependency 'redcarpet', '~> 3.5', '>= 3.5.1' # , require: false
35
36
  spec.add_development_dependency 'rspec', '~> 3.10'
36
- spec.add_development_dependency 'simplecov', '~> 0.21.2'#, require: false
37
- spec.add_development_dependency 'simplecov-console', '~> 0.9.1'
38
- spec.add_development_dependency 'simplecov_json_formatter', '~> 0.1.3'#, require: false
39
- spec.add_development_dependency 'redcarpet', '~> 3.5', '>= 3.5.1'#, require: false
40
- spec.add_development_dependency 'yard', '~> 0.9.26'#, require: false
41
37
  spec.add_development_dependency 'rubocop', '~> 1.7'
38
+ spec.add_development_dependency 'simplecov', '~> 0.21.2' # , require: false
39
+ spec.add_development_dependency 'simplecov-console', '~> 0.9.1'
40
+ spec.add_development_dependency 'simplecov_json_formatter', '~> 0.1.3' # , require: false
41
+ spec.add_development_dependency 'yard', '~> 0.9.26' # , require: false
42
42
 
43
43
  # For more information and examples about making a new gem, checkout our
44
44
  # guide at: https://bundler.io/guides/creating_gem.html