bootinq 1.6 → 1.8

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: 33cdc97b02b2407bf6cf031dbac9e0fdae903d6a97a60e266b058729d6a43895
4
- data.tar.gz: 1cba1d8a6a48ff92ba80dbcad36623a7389f95f512b8d844debc5c7c22644e6b
3
+ metadata.gz: 70b36fe43d2052568352c6afd05fdc32f761bdb232dadaed96d3ba05f3a93f6b
4
+ data.tar.gz: 28d7999b1f29b41c87944da9b564b5641ba0582465ae703b8d582aa8814a8eca
5
5
  SHA512:
6
- metadata.gz: 7a4b636bbdea12800a0b367bd5e4294c9681738200597100725595bd3ce3f4f6a5d4b95c14594249cba8755fa11206ba6a01fc516923e1e72493a34efbb79b1d
7
- data.tar.gz: b6c5e5d242ffff08ac9f00a680dd760979879769e9a752193e039453f31d86684ce97f9d7e19167e36de4ede4003ae9e7a1e42647288082e36bee6badd58095e
6
+ metadata.gz: 85a46c57dee491a7cd41997e79992befbe184439e0d49af40e980cf222d8f513eeda9c5874fdf8006eed7561715ab41cbe36f1de24a9a4efbe081601f1dbc69f
7
+ data.tar.gz: 66d7bbe52c5835ac53bd11e3413c26b7af08eabf7c06f19b3ccc88f4627d52c1e90341381ba2b5a180504580ed171afff4f5cbf4a58f03757f6722ea73f285fb
data/README.md CHANGED
@@ -148,7 +148,7 @@ require 'bootinq'
148
148
 
149
149
  # Bundler.require :default, ENV['RACK_ENV']
150
150
  Bootinq.require :default, ENV['RACK_ENV'], verbose: true
151
-
151
+ ```
152
152
 
153
153
  ## Development
154
154
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Bootinq
4
- VERSION = "1.6"
4
+ VERSION = "1.8"
5
5
  end
data/lib/bootinq.rb CHANGED
@@ -61,6 +61,8 @@ class Bootinq
61
61
  "deps" => {}
62
62
  }.freeze
63
63
 
64
+ ALL = %i[* all].freeze
65
+
64
66
  FilterNegValue = -> (value, config) do
65
67
  if value.start_with?(?-, ?^)
66
68
  value = value.tr('\\-', '\\^')
@@ -111,7 +113,17 @@ class Bootinq
111
113
  # Reads config from the given or default path, deserializes it and returns as a hash.
112
114
  def self.deserialized_config(path: nil)
113
115
  bootinq_yaml = File.read(path || ENV.fetch('BOOTINQ_PATH'))
114
- YAML.safe_load(bootinq_yaml, [Symbol])
116
+ psych_safe_load(bootinq_yaml, [Symbol])
117
+ end
118
+
119
+ if RUBY_VERSION >= '3.1.0'
120
+ def self.psych_safe_load(path, permitted_classes)
121
+ YAML.safe_load(path, permitted_classes: permitted_classes)
122
+ end
123
+ else
124
+ def self.psych_safe_load(*args)
125
+ YAML.safe_load(*args)
126
+ end
115
127
  end
116
128
 
117
129
  attr_reader :flags
@@ -168,7 +180,7 @@ class Bootinq
168
180
  # Checks if a component with the given name (i.e. the same gem group)
169
181
  # is enabled
170
182
  def enabled?(name)
171
- components.include?(name)
183
+ ALL.include?(name) || components.include?(name)
172
184
  end
173
185
 
174
186
  # :call-seq:
@@ -233,6 +245,11 @@ class Bootinq
233
245
  # # do something when frontend and backend are enabled
234
246
  # end
235
247
  def on(name = nil, any: nil, all: nil) # :yields:
248
+ if ALL.include?(name)
249
+ yield
250
+ return true
251
+ end
252
+
236
253
  if name.nil? && any.nil? && all.nil?
237
254
  raise ArgumentError, "wrong arguments (given 0, expected 1)"
238
255
  elsif (any && all) || (name && (any || all))
@@ -253,7 +270,7 @@ class Bootinq
253
270
  # Takes a list of component names and yields a given block (optionally)
254
271
  # if all of them are enabled. Returns boolean matching status.
255
272
  def on_all(*parts) # :yields:
256
- is_matched = parts.all? { |p| enabled?(p) }
273
+ is_matched = parts.all? { |part| enabled?(part) }
257
274
  yield if is_matched && block_given?
258
275
  is_matched
259
276
  end
@@ -264,7 +281,7 @@ class Bootinq
264
281
  # Takes a list of component names and yields a given block (optionally)
265
282
  # if any of them are enabled. Returns boolean matching status.
266
283
  def on_any(*parts) # :yields:
267
- is_matched = parts.any? { |p| enabled?(p) }
284
+ is_matched = parts.any? { |part| enabled?(part) }
268
285
  yield if is_matched && block_given?
269
286
  is_matched
270
287
  end
@@ -302,25 +319,22 @@ class Bootinq
302
319
  super
303
320
  end
304
321
 
305
- delegate_template = <<~RUBY
306
- def self.%1$s(*args, &block)
307
- instance.%1$s(*args, &block)
308
- end
309
- RUBY
310
-
311
- %I(flags
312
- components
313
- ready?
314
- ready!
315
- enable_component
316
- enabled?
317
- component
318
- []
319
- each_mountable
320
- groups
321
- on
322
- on_all
323
- on_any
324
- switch
325
- ).each { |sym| class_eval(delegate_template % sym, *instance_method(sym).source_location) }
322
+ extend SingleForwardable
323
+
324
+ delegate %I[
325
+ component
326
+ components
327
+ each_mountable
328
+ enabled?
329
+ enable_component
330
+ flags
331
+ groups
332
+ on
333
+ on_all
334
+ on_any
335
+ ready!
336
+ ready?
337
+ switch
338
+ []
339
+ ] => :instance
326
340
  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.6'
4
+ version: '1.8'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-04 00:00:00.000000000 Z
11
+ date: 2022-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -64,7 +64,7 @@ homepage: https://github.com/estum/bootinq
64
64
  licenses:
65
65
  - MIT
66
66
  metadata: {}
67
- post_install_message:
67
+ post_install_message:
68
68
  rdoc_options: []
69
69
  require_paths:
70
70
  - lib
@@ -79,8 +79,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  requirements: []
82
- rubygems_version: 3.0.3
83
- signing_key:
82
+ rubygems_version: 3.3.7
83
+ signing_key:
84
84
  specification_version: 4
85
85
  summary: Rails Boot Inquirer
86
86
  test_files: []