bootinq 1.2.0 → 1.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: 266e204b1e16ba81aaaf17e2ab6b638f2c33b1717a9c728e65332b6b2274e98d
4
- data.tar.gz: 0f8210ddf0aae40d21ccc68b3964df30b7102ea35cb76c04779e3a2f48d0f9dd
3
+ metadata.gz: 02d532d3f79f581c02a9cf22de365c865a5fc455460ff5559d9f32893fc72daa
4
+ data.tar.gz: 274bbc9139607038551bd75d73104301a6d14a561dfe8a736d33c50fc91f473b
5
5
  SHA512:
6
- metadata.gz: d8d3172c9a7a38e335585b0b1a35dc7bdaccbb993076095cd414a317f891d0506e6b0995b5e7eb4cdea9f885553658cd175219273a788db797994d63eca59a44
7
- data.tar.gz: 182655c54c91a0a4cac2d7c17e5750e59e8941309a9ce492faddc1204f30e72a90c847f5e48e23ffb549cc9dc60ad4ed0c0b064eb92348960a6b85286380321b
6
+ metadata.gz: 424dd6941e25ad8b8b5a5497bf5ff5853bf66255774677e2831ca4972756b87956eb93ed55d3fcb87285ad2fc51c24279073c579fcea93a2ce36fa3689105d3d
7
+ data.tar.gz: 8b807c29dffd4a66ee89ce6b3790560fe0cf3aa69ee1ef1544ed87a5e32f3204077b981df613d05c22530952506a35fa275b86669965610760c025c13484785d
@@ -4,6 +4,7 @@ require "yaml"
4
4
  require "singleton"
5
5
  require "forwardable"
6
6
  require "bootinq/component"
7
+ require "bootinq/switch"
7
8
 
8
9
  # = Bootinq
9
10
  #
@@ -105,6 +106,7 @@ class Bootinq
105
106
  @_neg = @_value.start_with?(?-, ?^)
106
107
  @flags = []
107
108
  @components = []
109
+ @switch = Switch.new(*@components)
108
110
 
109
111
  config['parts'].each { |flag, name| enable_component(name, flag: flag) }
110
112
  config['mount'].each { |flag, name| enable_component(name, flag: flag, as: Mountable) }
@@ -228,6 +230,22 @@ class Bootinq
228
230
  is_matched
229
231
  end
230
232
 
233
+ # :call-seq:
234
+ # Bottinq.switch(*parts) { block } -> nil
235
+ #
236
+ # Collector method.
237
+ #
238
+ # Example:
239
+ #
240
+ # Bootinq.switch do |part|
241
+ # part.frontend { … }
242
+ # part.backend { … }
243
+ # end
244
+ delegated def switch # :yields: Bootinq::Switch.new
245
+ yield(@switch)
246
+ nil
247
+ end
248
+
231
249
  # Freezes every instance variables and the instance itself.
232
250
  def freeze
233
251
  @_value.freeze
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Bootinq
4
+ class Switch < ::BasicObject # :no-doc:
5
+ undef_method :==
6
+ undef_method :equal?
7
+
8
+ module YieldMixin
9
+ def yield_block
10
+ yield
11
+ end
12
+ end
13
+
14
+ private_constant :YieldMixin
15
+
16
+ def self.new(*names)
17
+ switch = super()
18
+ mixin = ::Module.new
19
+ mixin.include(YieldMixin)
20
+ names.each { |name| mixin.alias_method name, :yield_block }
21
+ mixin.send(:private, :yield_block)
22
+ mixin.send(:extend_object, switch)
23
+ switch
24
+ ensure
25
+ mixin = nil
26
+ end
27
+
28
+ def raise(*args) # :no-doc:
29
+ ::Object.send(:raise, *args)
30
+ end
31
+
32
+ def method_missing(*)
33
+ nil
34
+ end
35
+ end
36
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Bootinq
4
- VERSION = "1.2.0"
4
+ VERSION = "1.3.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootinq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-24 00:00:00.000000000 Z
11
+ date: 2020-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,6 +58,7 @@ files:
58
58
  - lib/bootinq.rb
59
59
  - lib/bootinq.yml
60
60
  - lib/bootinq/component.rb
61
+ - lib/bootinq/switch.rb
61
62
  - lib/bootinq/version.rb
62
63
  homepage: https://github.com/estum/bootinq
63
64
  licenses:
@@ -78,8 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
79
  - !ruby/object:Gem::Version
79
80
  version: '0'
80
81
  requirements: []
81
- rubyforge_project:
82
- rubygems_version: 2.7.6
82
+ rubygems_version: 3.0.3
83
83
  signing_key:
84
84
  specification_version: 4
85
85
  summary: Rails Boot Inquirer