spectre-core 2.0.3 → 2.1.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: 2b37c624f29760c1122c88ec60a107bb60a96c7402aeedd5b2bc3919bbe68f7d
4
- data.tar.gz: fe69db81edfcdc648bce5f5d32f584a766b6869c7b9bd398bd9f97fab9015aa7
3
+ metadata.gz: 3f4f326a4af327d079fbf3ec5d7dc1e249432b975c4192246d214430c99a3b03
4
+ data.tar.gz: 01cd31db52a056f496111ddae40fbb8ceb0fcd6728e3aec26f29306b83c49d7f
5
5
  SHA512:
6
- metadata.gz: 53b943ea103803174ad87d51eaeb64a77724b09ce49ad1f9d97446db527e5f62b1b4ab02eec0c779f3ffedf0e2c192a6b47ce71dc6b2b1852d3ae6f68ce1b301
7
- data.tar.gz: c29017035f83ac51f171b27647a3b714b4461a77322d2d2ae8d46749cf8a1ed6c24a03bd176f5accb6de33e568ca6aaac73144f21b3312a359ab632980b97104
6
+ metadata.gz: 96f973c643e9e670ec791b433834fa394ee5814acc0534b52ddd09b47f9ddc46b4c50900a66ab7ba453ab3fb64c97ffa4e0a7f202fd53640eb51b6cb229ca463
7
+ data.tar.gz: 3d68d5b96ee5e93bdc67e646498b606ab78dbe359faa3729993c6a13ee95e240688a5a89586f279a593d5b908b4c8db80472bcf5438432a3658dc7b4f3160483
data/exe/spectre CHANGED
@@ -187,6 +187,8 @@ when 'run', 'ru'
187
187
  engine.report(runs)
188
188
  when 'env', 'en'
189
189
  engine.formatter.environment(engine.env)
190
+ when 'envs'
191
+ engine.formatter.envs(engine.environments)
190
192
  when 'mixins', 'mi', 'mx'
191
193
  search = ARGV.first
192
194
  mixins = engine.mixins.select { |x| search.nil? or x.include? search }
@@ -1,3 +1,3 @@
1
1
  module Spectre
2
- VERSION = '2.0.3'.freeze
2
+ VERSION = '2.1.0'.freeze
3
3
  end
data/lib/spectre.rb CHANGED
@@ -335,6 +335,12 @@ module Spectre
335
335
  @out.puts env.to_h.pretty
336
336
  end
337
337
 
338
+ def envs envs
339
+ @out.puts envs
340
+ .map { |env_name, _| env_name }
341
+ .join("\n")
342
+ end
343
+
338
344
  def scope desc, type
339
345
  if desc
340
346
  colored_desc = case type
@@ -554,6 +560,8 @@ module Spectre
554
560
  {
555
561
  name: spec.name,
556
562
  desc: spec.desc,
563
+ subj: spec.root.desc,
564
+ ctxt: spec.parent.desc,
557
565
  tags: spec.tags,
558
566
  file: spec.file,
559
567
  data: spec.data,
@@ -586,6 +594,12 @@ module Spectre
586
594
  @out.puts env.to_json
587
595
  end
588
596
 
597
+ def envs envs
598
+ @out.puts envs
599
+ .map { |env_name, _| env_name }
600
+ .to_json
601
+ end
602
+
589
603
  def scope desc, type
590
604
  id = SecureRandom.hex(8)
591
605
 
@@ -779,7 +793,7 @@ module Spectre
779
793
 
780
794
  # :stopdoc:
781
795
 
782
- attr_reader :name, :parent, :type, :logs, :error,
796
+ attr_reader :name, :parent, :context, :type, :logs, :error,
783
797
  :evaluations, :started, :finished, :properties, :data
784
798
 
785
799
  ##
@@ -807,7 +821,18 @@ module Spectre
807
821
  @threads = {}
808
822
 
809
823
  @name = parent.name
810
- @name += "-#{type}" unless type == :spec
824
+
825
+ # If the run type is an actual spec, the context
826
+ # of the run is its parent +Specification+ 's parent.
827
+ if type == :spec
828
+ @context = parent.parent
829
+ else
830
+ # Otherwise the run context is the parent itself
831
+ # This is the case when a setup or teardown block
832
+ # is executet, which uses its own run context.
833
+ @context = parent
834
+ @name += "-#{type}"
835
+ end
811
836
 
812
837
  @bag = OpenStruct.new(bag)
813
838
 
@@ -1410,7 +1435,7 @@ module Spectre
1410
1435
  DEFAULT_ENV_NAME = 'default'
1411
1436
 
1412
1437
  class Engine
1413
- attr_reader :env, :formatter, :config, :contexts, :mixins, :collections, :resources
1438
+ attr_reader :env, :environments, :formatter, :config, :contexts, :mixins, :collections, :resources
1414
1439
 
1415
1440
  @@current = nil
1416
1441
  @@modules = []
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spectre-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Neubauer
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-03-26 00:00:00.000000000 Z
10
+ date: 2025-03-27 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: debug