bootinq 1.2.0 → 1.4.2
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/lib/bootinq.rb +57 -19
- data/lib/bootinq/switch.rb +20 -0
- data/lib/bootinq/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4bbde8bd5a9047488c41a60788b57c99ffba1de61217a0e5ac6613a856e5fc66
|
|
4
|
+
data.tar.gz: 6932d67aa5b2f484726331b5f1483352bc1f6bd535ea187dabe13d7e909630ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 48c42edfe5b1a4475ad65b5cec66e6a5a124073b6aea9b6fceeea94cc76ce3ddac1786c30f4c0290cbe677e40a677e4ce4350e080867d3a8032fd36a0552d12e
|
|
7
|
+
data.tar.gz: 95db837f38266267c0fe733edcd91ad51694ff8c5a90c849e1f28335637a385cda2de1ea1c285e5a6e8f8bb5f00be2e121b5ef27bbfe9213a3ecf17e97454c22
|
data/lib/bootinq.rb
CHANGED
|
@@ -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
|
#
|
|
@@ -66,28 +67,36 @@ class Bootinq
|
|
|
66
67
|
# :call-seq:
|
|
67
68
|
# Bootinq.require(*groups, verbose: false, &block)
|
|
68
69
|
#
|
|
69
|
-
#
|
|
70
|
-
#
|
|
71
|
-
# invokes the <tt>Bootinq.setup</tt> method with the given verbose key argument & block,
|
|
72
|
-
# and, finally, gets Bundler to require the given groups.
|
|
70
|
+
# Invokes the <tt>Bootinq.init</tt> method with the given verbose key argument & block,
|
|
71
|
+
# and, finally, makes Bundler to require the given groups.
|
|
73
72
|
def self.require(*groups, verbose: false, &block) # :yields: Bootinq.instance
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
setup(verbose: verbose, &block)
|
|
77
|
-
|
|
73
|
+
init(verbose: verbose, &block)
|
|
78
74
|
Bundler.require(*instance.groups(*groups))
|
|
79
75
|
end
|
|
80
76
|
|
|
81
77
|
# :call-seq:
|
|
82
|
-
# Bootinq.setup(verbose: false, &block)
|
|
78
|
+
# Bootinq.setup(*groups, verbose: false, &block)
|
|
83
79
|
#
|
|
84
|
-
#
|
|
80
|
+
# Invokes the <tt>Bootinq.init</tt> method with the given verbose key argument & block,
|
|
81
|
+
# and, finally, makes Bundler to setup the given groups.
|
|
82
|
+
def self.setup(*groups, verbose: false, &block) # :yields: Bootinq.instance
|
|
83
|
+
init(verbose: verbose, &block)
|
|
84
|
+
Bundler.setup(*instance.groups(*groups))
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# :call-seq:
|
|
88
|
+
# Bootinq.init(verbose: false, &block) -> true or false
|
|
89
|
+
#
|
|
90
|
+
# Initializes itself. Sets the BOOTINQ_PATH enviroment variable if it is missing.
|
|
91
|
+
# To track inquired components use <tt>verbose: true</tt> key argument.
|
|
85
92
|
# Optionally yields block within the own instance's binding.
|
|
86
|
-
def self.
|
|
93
|
+
def self.init(verbose: false, &block) # :yields: Bootinq.instance
|
|
94
|
+
ENV['BOOTINQ_PATH'] ||= File.expand_path('../bootinq.yml', caller_locations(2, 1)[0].path)
|
|
95
|
+
|
|
87
96
|
instance
|
|
97
|
+
instance.instance_variable_set(:@_on_ready, block.to_proc) if block_given?
|
|
88
98
|
puts "Bootinq: loading components #{instance.components.join(', ')}" if verbose
|
|
89
|
-
instance.
|
|
90
|
-
instance
|
|
99
|
+
instance.ready!
|
|
91
100
|
end
|
|
92
101
|
|
|
93
102
|
attr_reader :flags
|
|
@@ -110,6 +119,25 @@ class Bootinq
|
|
|
110
119
|
config['mount'].each { |flag, name| enable_component(name, flag: flag, as: Mountable) }
|
|
111
120
|
end
|
|
112
121
|
|
|
122
|
+
delegated def ready? # :no-doc:
|
|
123
|
+
!!@ready
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# :call-seq:
|
|
127
|
+
# Bootinq.ready! -> nil or self
|
|
128
|
+
#
|
|
129
|
+
# At the first call marks Bootinq as ready and returns the instance,
|
|
130
|
+
# otherwise returns nil.
|
|
131
|
+
delegated def ready!
|
|
132
|
+
return if ready?
|
|
133
|
+
@ready = true
|
|
134
|
+
if defined?(@_on_ready)
|
|
135
|
+
instance_exec(&@_on_ready)
|
|
136
|
+
remove_instance_variable :@_on_ready
|
|
137
|
+
end
|
|
138
|
+
freeze
|
|
139
|
+
end
|
|
140
|
+
|
|
113
141
|
# :call-seq:
|
|
114
142
|
# Bootinq.enable_component(name, flag: [, as: Component])
|
|
115
143
|
#
|
|
@@ -228,6 +256,22 @@ class Bootinq
|
|
|
228
256
|
is_matched
|
|
229
257
|
end
|
|
230
258
|
|
|
259
|
+
# :call-seq:
|
|
260
|
+
# Bottinq.switch(*parts) { block } -> nil
|
|
261
|
+
#
|
|
262
|
+
# Collector method.
|
|
263
|
+
#
|
|
264
|
+
# Example:
|
|
265
|
+
#
|
|
266
|
+
# Bootinq.switch do |part|
|
|
267
|
+
# part.frontend { … }
|
|
268
|
+
# part.backend { … }
|
|
269
|
+
# end
|
|
270
|
+
delegated def switch # :yields: Bootinq::Switch.new
|
|
271
|
+
yield(Switch.new)
|
|
272
|
+
nil
|
|
273
|
+
end
|
|
274
|
+
|
|
231
275
|
# Freezes every instance variables and the instance itself.
|
|
232
276
|
def freeze
|
|
233
277
|
@_value.freeze
|
|
@@ -236,10 +280,4 @@ class Bootinq
|
|
|
236
280
|
@components.freeze
|
|
237
281
|
super
|
|
238
282
|
end
|
|
239
|
-
|
|
240
|
-
def self.new
|
|
241
|
-
super.freeze
|
|
242
|
-
end
|
|
243
|
-
|
|
244
|
-
private_class_method :new
|
|
245
283
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Bootinq
|
|
4
|
+
class Switch < ::BasicObject # :no-doc:
|
|
5
|
+
undef_method :==
|
|
6
|
+
undef_method :equal?
|
|
7
|
+
|
|
8
|
+
def raise(*args) # :no-doc:
|
|
9
|
+
::Object.send(:raise, *args)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def method_missing(name, *)
|
|
13
|
+
if ::Bootinq.enabled?(name)
|
|
14
|
+
yield()
|
|
15
|
+
else
|
|
16
|
+
nil
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
data/lib/bootinq/version.rb
CHANGED
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
|
|
4
|
+
version: 1.4.2
|
|
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-
|
|
11
|
+
date: 2020-06-30 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
|
-
|
|
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
|