rspec-rfc-helper 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 77bf0b42fa2165a6521a2929936cb1a1b58ab359cb19bbe19681ff7e2767d75f
4
- data.tar.gz: 42e537f5b31324440b1cf98ac49a23ae1aea884cfe734e660943441ee88acafa
3
+ metadata.gz: 617f5c1b9bb3004b21596e44926cb45b231460685238b6cb38166935fc653b48
4
+ data.tar.gz: 22d66950729d05cd571547409ef29d21b7eb848b3582a643639cf4d18e8d7b60
5
5
  SHA512:
6
- metadata.gz: ca6a4cd4d10c244b4d2ab310d17a4e51f831c3c2e3bb97abd984996913f19d76621de9e93bde197dfc005616a73be1684351d4c1867f6cf958502d70f4317400
7
- data.tar.gz: de7b0bc373efa3875b961354733c8ce5a9fc2405447d7d98d61c336fc7380bbdf8215eb8c7228c1b7a4076b2d77f80caa7c2811b6c4486695767deb4fdf48ca2
6
+ metadata.gz: 7f06421f6a3105af0546cba88114e226c014074c53c0cf30c0b1d129da26656b3cf95cd6a3b58cbc78caf894967afa9f504f3bc22a7eeec28c71c36142c1946a
7
+ data.tar.gz: 3af8fbb4a87448bab6349a3ffdf85da3f9acc92dfe4481fd55c9772c5c7966b2a196eaf1c43efda3a9a3fb60d6c63e6feb85bad0f33ef1104aa742b897a525d0
data/CHANGELOG.md CHANGED
@@ -28,6 +28,23 @@ Please, keep them in this order when updating.
28
28
 
29
29
  ## [Unreleased]
30
30
 
31
+ ## [0.2.0] - 2023-11-10 - JSON report and fixes
32
+
33
+ ### Added
34
+
35
+ - Support for beautified JSON reports
36
+ - Links to details in summary table
37
+
38
+ ### Fixed
39
+
40
+ - Don't display example type when empty
41
+
42
+ ## [0.1.1] - 2023-11-10 - Fixes
43
+
44
+ ### FIXED
45
+ - Fix missing require in Specs class file
46
+ - Fix invalid require in usage example README
47
+
31
48
  ## [0.1.0] - 2023-11-07 - Initial release
32
49
 
33
50
  Initial release
data/README.md CHANGED
@@ -89,7 +89,7 @@ TXT
89
89
  ```rb
90
90
  # spec_helper.rb
91
91
 
92
- require 'rspec-rfc-helper'
92
+ require 'rspec/rfc-helper'
93
93
 
94
94
  RSpec.configure do |config|
95
95
  config.before(:suite) do
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSpec
4
+ module RfcHelper
5
+ ##
6
+ # Markdown renderer for specs
7
+ class JsonRenderer
8
+ ##
9
+ # @param specs [RSpec::RfcHelper::Specs]
10
+ def initialize(specs)
11
+ @specs = specs
12
+ end
13
+
14
+ ##
15
+ # Generates a report in JSON format.
16
+ #
17
+ # @return [String]
18
+ def render
19
+ json = {
20
+ name: @specs.name,
21
+ url: @specs.specs_url,
22
+ specs: specs,
23
+ sections: sections,
24
+ }
25
+
26
+ JSON.pretty_generate json
27
+ end
28
+
29
+ private
30
+
31
+ ##
32
+ # Extracts sections informations
33
+ #
34
+ # @return [Array<Hash>]
35
+ def sections
36
+ list = []
37
+
38
+ @specs.sections.each_pair do |number, section|
39
+ list.push id: section[:id],
40
+ title: section[:title],
41
+ number: number,
42
+ url: section[:url]
43
+ end
44
+
45
+ list
46
+ end
47
+
48
+ ##
49
+ # Extracts specs and examples
50
+ #
51
+ # @return [Array<Hash>]
52
+ def specs
53
+ list = []
54
+ @specs.specs.each do |spec|
55
+ list.push id: spec.id,
56
+ section: spec.section,
57
+ verb: spec.verb,
58
+ text: spec.text,
59
+ examples: examples(spec)
60
+ end
61
+
62
+ list
63
+ end
64
+
65
+ ##
66
+ # Extracts examples statuses from a spec
67
+ #
68
+ # @param spec [RSpec::RfcHelper::Spec]
69
+ #
70
+ # @return [Array<Hash>]
71
+ def examples(spec)
72
+ list = []
73
+ spec.examples.each do |example|
74
+ meta = example.metadata
75
+ list.push status: meta[:last_run_status],
76
+ type: meta[:type],
77
+ location: meta[:location]
78
+ end
79
+
80
+ list
81
+ end
82
+ end
83
+ end
84
+ end
@@ -106,15 +106,16 @@ module RSpec
106
106
  # @param spec [RSpec::RfcHelper::Spec]
107
107
  #
108
108
  # @return [String]
109
- def detailed_spec_report_header(spec) # rubocop:disable Metrics/AbcSize
109
+ def detailed_spec_report_header(spec) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
110
110
  section = "#{spec.section} - #{@specs.sections[spec.section][:title]}"
111
111
  spec_link = if @specs.sections[spec.section][:url]
112
112
  "[#{section}](#{@specs.sections[spec.section][:url]})"
113
113
  else
114
114
  section
115
115
  end
116
+ anchor = spec.id ? "<a id=\"#{spec.id}\"></a>" : ''
116
117
  <<~MD.chomp
117
- ## #{status(spec.status, '○')} `#{spec.verb.upcase}` #{spec.id}
118
+ ## #{anchor}#{status(spec.status, '○')} `#{spec.verb.upcase}` #{spec.id}
118
119
 
119
120
  **Specification:** #{spec_link}
120
121
 
@@ -132,7 +133,8 @@ module RSpec
132
133
  lines = []
133
134
  spec.examples.each do |example|
134
135
  meta = example.metadata
135
- lines << "| #{status(meta[:last_run_status])} | `#{meta[:type]}`: `#{meta[:location]}` |"
136
+ type = meta[:type] ? "`#{meta[:type]}`: " : ''
137
+ lines << "| #{status(meta[:last_run_status])} | #{type}`#{meta[:location]}` |"
136
138
  end
137
139
 
138
140
  return "**No related examples**\n" if lines.empty?
@@ -154,10 +156,10 @@ module RSpec
154
156
  #
155
157
  # @return [String]
156
158
  def main_table_row(spec)
157
- id = spec.id ? "`#{spec.id}`" : ''
158
159
  section = @specs.sections[spec.section]
159
160
  section_link = section[:url] ? "[#{spec.section}](#{section[:url]})" : spec.section
160
- "| #{status(spec.status)} | #{id} | #{section_link} | #{spec.verb} | #{paragraph(spec.text)} |"
161
+ id_link = spec.id ? "[`#{spec.id}`](##{spec.id})" : ''
162
+ "| #{status(spec.status)} | #{id_link} | #{section_link} | #{spec.verb} | #{paragraph(spec.text)} |"
161
163
  end
162
164
 
163
165
  ##
@@ -3,13 +3,15 @@
3
3
  require 'yaml'
4
4
 
5
5
  require_relative 'spec'
6
+ require_relative 'markdown_renderer'
7
+ require_relative 'json_renderer'
6
8
 
7
9
  module RSpec
8
10
  module RfcHelper
9
11
  ##
10
12
  # Spec collection
11
13
  class Specs
12
- attr_reader :name, :specs_url, :sections
14
+ attr_reader :name, :specs_url, :sections, :specs
13
15
 
14
16
  ##
15
17
  # Instantiates a Spec collection from a YAML file.
@@ -123,6 +125,14 @@ module RSpec
123
125
  File.write file, RSpec::RfcHelper::MarkdownRenderer.new(self).render
124
126
  end
125
127
 
128
+ ##
129
+ # Saves the report in JSON
130
+ #
131
+ # @param file [String] Output file path
132
+ def save_json_report(file)
133
+ File.write file, RSpec::RfcHelper::JsonRenderer.new(self).render
134
+ end
135
+
126
136
  private
127
137
 
128
138
  ##
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rspec
4
4
  module RfcHelper
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
@@ -30,5 +30,11 @@ module RSpec
30
30
 
31
31
  @specs.save_markdown_report file
32
32
  end
33
+
34
+ def self.save_json_report(file)
35
+ raise 'Did you start?' unless @specs
36
+
37
+ @specs.save_json_report file
38
+ end
33
39
  end
34
40
  end
data/report.md CHANGED
@@ -1,32 +1,32 @@
1
1
  # Compliance status: RSpec RFC Helper
2
2
 
3
- Report generated on 2023-11-07 22:11:05 +0100
3
+ Report generated on 2023-11-15 11:30:49 +0100
4
4
 
5
5
  Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blob/main/specification_example.md](https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blob/main/specification_example.md)
6
6
 
7
7
  | status | id | section | verb | text |
8
8
  |-------:|---:|---------|------|------|
9
- | <span style='color: green'>pass</span> | `features__have_version` | 2.1 | must | The RFC Helper <mark>MUST</mark> have a version number |
10
- | <span style='color: green'>pass</span> | `features__can_define_spec` | 2.1 | must | The RFC Helper <mark>MUST</mark> have methods to define specs that needs to be enforced and tracked. |
11
- | <span style='color: gray'>unknown</span> | `features__wrap_verbs` | 2.1 | must | To tackle this issue, the text used in a spec defined for the RFC Helper <mark>MUST</mark> wrap the right verb in the relevant <br> paragraph into double square brackets, like, for example `<mark>VERB</mark>`. The same paragraph MAY be used in multiple specs, <br> with everytime a different verb wrapper. <br> |
12
- | <span style='color: gray'>unknown</span> | `features__use_same_paragraph_twice` | 2.1 | may | To tackle this issue, the text used in a spec defined for the RFC Helper MUST wrap the right verb in the relevant <br> paragraph into double square brackets, like, for example `<mark>VERB</mark>`. The same paragraph <mark>MAY</mark> be used in multiple specs, <br> with everytime a different verb wrapper. <br> |
13
- | <span style='color: green'>pass</span> | `features__identify_specs_with_id` | 2.1 | must | Defined specs also need to be identifiable, so a unique ID <mark>MUST</mark> be assigned to them. |
14
- | <span style='color: gray'>unknown</span> | `features__no_verb_means_note` | 2.1 | note | When a portion of text is interesting but has no imperative verb in it, it still can be added, and the RFC Helper will <br> give it a status of "note". <br> |
15
- | <span style='color: green'>pass</span> | `reporting__rfc_tag` | 2.2 | must | Once the RFC helper is configured in a RSpec suite, it <mark>MUST</mark> handle examples tagged with the `rfc` tag. |
16
- | <span style='color: green'>pass</span> | `reporting__rfc_with_single_id_or_list` | 2.2 | must | The RFC helper <mark>MUST</mark> handle a single ID, as well as an array of IDs. |
17
- | <span style='color: green'>pass</span> | `reporting__export_method` | 2.2 | must | The RFC Helper <mark>MUST</mark> have at least one method to export the generated report in a file. |
18
- | <span style='color: gray'>unknown</span> | `reporting__export_date` | 2.2 | must | The report <mark>MUST</mark> contain the generation date. |
19
- | <span style='color: gray'>unknown</span> | `usage__two_ways` | 3 | should | To have some flexibility, the helper <mark>SHOULD</mark> be useable in two ways: using the module `RSpec::RfcHelper`, or the classes. <br> |
20
- | <span style='color: gray'>unknown</span> | `usage_module__start_method` | 3.1 | must | The `RSpec::RfcHelper` <mark>MUST</mark> have a method to "start" the helper |
21
- | <span style='color: gray'>unknown</span> | `usage_module__handle_examples` | 3.1 | must | It <mark>MUST</mark> have a method to add examples to specs once they are evaluated |
22
- | <span style='color: gray'>unknown</span> | `usage_module__export_method` | 3.1 | must | it <mark>MUST</mark> have a method to save the report |
9
+ | <span style='color: green'>pass</span> | [`features__have_version`](#features__have_version) | 2.1 | must | The RFC Helper <mark>MUST</mark> have a version number |
10
+ | <span style='color: green'>pass</span> | [`features__can_define_spec`](#features__can_define_spec) | 2.1 | must | The RFC Helper <mark>MUST</mark> have methods to define specs that needs to be enforced and tracked. |
11
+ | <span style='color: gray'>unknown</span> | [`features__wrap_verbs`](#features__wrap_verbs) | 2.1 | must | To tackle this issue, the text used in a spec defined for the RFC Helper <mark>MUST</mark> wrap the right verb in the relevant <br> paragraph into double square brackets, like, for example `<mark>VERB</mark>`. The same paragraph MAY be used in multiple specs, <br> with everytime a different verb wrapper. <br> |
12
+ | <span style='color: gray'>unknown</span> | [`features__use_same_paragraph_twice`](#features__use_same_paragraph_twice) | 2.1 | may | To tackle this issue, the text used in a spec defined for the RFC Helper MUST wrap the right verb in the relevant <br> paragraph into double square brackets, like, for example `<mark>VERB</mark>`. The same paragraph <mark>MAY</mark> be used in multiple specs, <br> with everytime a different verb wrapper. <br> |
13
+ | <span style='color: green'>pass</span> | [`features__identify_specs_with_id`](#features__identify_specs_with_id) | 2.1 | must | Defined specs also need to be identifiable, so a unique ID <mark>MUST</mark> be assigned to them. |
14
+ | <span style='color: gray'>unknown</span> | [`features__no_verb_means_note`](#features__no_verb_means_note) | 2.1 | note | When a portion of text is interesting but has no imperative verb in it, it still can be added, and the RFC Helper will <br> give it a status of "note". <br> |
15
+ | <span style='color: green'>pass</span> | [`reporting__rfc_tag`](#reporting__rfc_tag) | 2.2 | must | Once the RFC helper is configured in a RSpec suite, it <mark>MUST</mark> handle examples tagged with the `rfc` tag. |
16
+ | <span style='color: green'>pass</span> | [`reporting__rfc_with_single_id_or_list`](#reporting__rfc_with_single_id_or_list) | 2.2 | must | The RFC helper <mark>MUST</mark> handle a single ID, as well as an array of IDs. |
17
+ | <span style='color: green'>pass</span> | [`reporting__export_method`](#reporting__export_method) | 2.2 | must | The RFC Helper <mark>MUST</mark> have at least one method to export the generated report in a file. |
18
+ | <span style='color: gray'>unknown</span> | [`reporting__export_date`](#reporting__export_date) | 2.2 | must | The report <mark>MUST</mark> contain the generation date. |
19
+ | <span style='color: gray'>unknown</span> | [`usage__two_ways`](#usage__two_ways) | 3 | should | To have some flexibility, the helper <mark>SHOULD</mark> be useable in two ways: using the module `RSpec::RfcHelper`, or the classes. <br> |
20
+ | <span style='color: gray'>unknown</span> | [`usage_module__start_method`](#usage_module__start_method) | 3.1 | must | The `RSpec::RfcHelper` <mark>MUST</mark> have a method to "start" the helper |
21
+ | <span style='color: gray'>unknown</span> | [`usage_module__handle_examples`](#usage_module__handle_examples) | 3.1 | must | It <mark>MUST</mark> have a method to add examples to specs once they are evaluated |
22
+ | <span style='color: gray'>unknown</span> | [`usage_module__export_method`](#usage_module__export_method) | 3.1 | must | it <mark>MUST</mark> have a method to save the report |
23
23
  | <span style='color: gray'>unknown</span> | | 3.2 | note | The RFC Helper SHOULD be used directly by instantiating a class. |
24
24
  | <span style='color: gray'>unknown</span> | | 3.2 | note | The instance MUST provide methods to add sections |
25
25
  | <span style='color: gray'>unknown</span> | | 3.2 | note | The instance MUST provide methods to define the specs |
26
26
  | <span style='color: gray'>unknown</span> | | 3.2 | note | The instance MUST provide methods to generate the report |
27
27
  | <span style='color: gray'>unknown</span> | | 3.2 | note | The instance MAY provide methods to load sections and specs from a file |
28
28
 
29
- ## <span style='color: green'>○</span> `MUST` features__have_version
29
+ ## <a id="features__have_version"></a><span style='color: green'>○</span> `MUST` features__have_version
30
30
 
31
31
  **Specification:** 2.1 - Features
32
32
 
@@ -36,9 +36,9 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
36
36
 
37
37
  | Status | Reference |
38
38
  |:------:|-----------|
39
- | <span style='color: green'>passed</span> | ``: `./spec/rspec/rfc_helper_spec.rb:4` |
39
+ | <span style='color: green'>passed</span> | `./spec/rspec/rfc_helper_spec.rb:4` |
40
40
 
41
- ## <span style='color: green'>○</span> `MUST` features__can_define_spec
41
+ ## <a id="features__can_define_spec"></a><span style='color: green'>○</span> `MUST` features__can_define_spec
42
42
 
43
43
  **Specification:** 2.1 - Features
44
44
 
@@ -48,10 +48,10 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
48
48
 
49
49
  | Status | Reference |
50
50
  |:------:|-----------|
51
- | <span style='color: green'>passed</span> | ``: `./spec/rspec/rfc_helper/spec_spec.rb:10` |
52
- | <span style='color: green'>passed</span> | ``: `./spec/rspec/rfc_helper/specs_spec.rb:64` |
51
+ | <span style='color: green'>passed</span> | `./spec/rspec/rfc_helper/spec_spec.rb:10` |
52
+ | <span style='color: green'>passed</span> | `./spec/rspec/rfc_helper/specs_spec.rb:64` |
53
53
 
54
- ## <span style='color: gray'>○</span> `MUST` features__wrap_verbs
54
+ ## <a id="features__wrap_verbs"></a><span style='color: gray'>○</span> `MUST` features__wrap_verbs
55
55
 
56
56
  **Specification:** 2.1 - Features
57
57
 
@@ -59,7 +59,7 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
59
59
 
60
60
  **No related examples**
61
61
 
62
- ## <span style='color: gray'>○</span> `MAY` features__use_same_paragraph_twice
62
+ ## <a id="features__use_same_paragraph_twice"></a><span style='color: gray'>○</span> `MAY` features__use_same_paragraph_twice
63
63
 
64
64
  **Specification:** 2.1 - Features
65
65
 
@@ -67,7 +67,7 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
67
67
 
68
68
  **No related examples**
69
69
 
70
- ## <span style='color: green'>○</span> `MUST` features__identify_specs_with_id
70
+ ## <a id="features__identify_specs_with_id"></a><span style='color: green'>○</span> `MUST` features__identify_specs_with_id
71
71
 
72
72
  **Specification:** 2.1 - Features
73
73
 
@@ -77,9 +77,9 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
77
77
 
78
78
  | Status | Reference |
79
79
  |:------:|-----------|
80
- | <span style='color: green'>passed</span> | ``: `./spec/rspec/rfc_helper/specs_spec.rb:75` |
80
+ | <span style='color: green'>passed</span> | `./spec/rspec/rfc_helper/specs_spec.rb:75` |
81
81
 
82
- ## <span style='color: gray'>○</span> `NOTE` features__no_verb_means_note
82
+ ## <a id="features__no_verb_means_note"></a><span style='color: gray'>○</span> `NOTE` features__no_verb_means_note
83
83
 
84
84
  **Specification:** 2.1 - Features
85
85
 
@@ -87,7 +87,7 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
87
87
 
88
88
  **No related examples**
89
89
 
90
- ## <span style='color: green'>○</span> `MUST` reporting__rfc_tag
90
+ ## <a id="reporting__rfc_tag"></a><span style='color: green'>○</span> `MUST` reporting__rfc_tag
91
91
 
92
92
  **Specification:** 2.2 - Reporting
93
93
 
@@ -97,9 +97,9 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
97
97
 
98
98
  | Status | Reference |
99
99
  |:------:|-----------|
100
- | <span style='color: green'>passed</span> | ``: `./spec/rspec/rfc_helper/specs_spec.rb:91` |
100
+ | <span style='color: green'>passed</span> | `./spec/rspec/rfc_helper/specs_spec.rb:91` |
101
101
 
102
- ## <span style='color: green'>○</span> `MUST` reporting__rfc_with_single_id_or_list
102
+ ## <a id="reporting__rfc_with_single_id_or_list"></a><span style='color: green'>○</span> `MUST` reporting__rfc_with_single_id_or_list
103
103
 
104
104
  **Specification:** 2.2 - Reporting
105
105
 
@@ -109,9 +109,9 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
109
109
 
110
110
  | Status | Reference |
111
111
  |:------:|-----------|
112
- | <span style='color: green'>passed</span> | ``: `./spec/rspec/rfc_helper/specs_spec.rb:91` |
112
+ | <span style='color: green'>passed</span> | `./spec/rspec/rfc_helper/specs_spec.rb:91` |
113
113
 
114
- ## <span style='color: green'>○</span> `MUST` reporting__export_method
114
+ ## <a id="reporting__export_method"></a><span style='color: green'>○</span> `MUST` reporting__export_method
115
115
 
116
116
  **Specification:** 2.2 - Reporting
117
117
 
@@ -121,9 +121,9 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
121
121
 
122
122
  | Status | Reference |
123
123
  |:------:|-----------|
124
- | <span style='color: green'>passed</span> | ``: `./spec/rspec/rfc_helper/specs_spec.rb:103` |
124
+ | <span style='color: green'>passed</span> | `./spec/rspec/rfc_helper/specs_spec.rb:103` |
125
125
 
126
- ## <span style='color: gray'>○</span> `MUST` reporting__export_date
126
+ ## <a id="reporting__export_date"></a><span style='color: gray'>○</span> `MUST` reporting__export_date
127
127
 
128
128
  **Specification:** 2.2 - Reporting
129
129
 
@@ -131,7 +131,7 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
131
131
 
132
132
  **No related examples**
133
133
 
134
- ## <span style='color: gray'>○</span> `SHOULD` usage__two_ways
134
+ ## <a id="usage__two_ways"></a><span style='color: gray'>○</span> `SHOULD` usage__two_ways
135
135
 
136
136
  **Specification:** 3 - Usage
137
137
 
@@ -139,7 +139,7 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
139
139
 
140
140
  **No related examples**
141
141
 
142
- ## <span style='color: gray'>○</span> `MUST` usage_module__start_method
142
+ ## <a id="usage_module__start_method"></a><span style='color: gray'>○</span> `MUST` usage_module__start_method
143
143
 
144
144
  **Specification:** 3.1 - Using the module
145
145
 
@@ -147,7 +147,7 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
147
147
 
148
148
  **No related examples**
149
149
 
150
- ## <span style='color: gray'>○</span> `MUST` usage_module__handle_examples
150
+ ## <a id="usage_module__handle_examples"></a><span style='color: gray'>○</span> `MUST` usage_module__handle_examples
151
151
 
152
152
  **Specification:** 3.1 - Using the module
153
153
 
@@ -155,7 +155,7 @@ Source specification: [https://gitlab.com/experimentslabs/rspec-rfc-helper/-/blo
155
155
 
156
156
  **No related examples**
157
157
 
158
- ## <span style='color: gray'>○</span> `MUST` usage_module__export_method
158
+ ## <a id="usage_module__export_method"></a><span style='color: gray'>○</span> `MUST` usage_module__export_method
159
159
 
160
160
  **Specification:** 3.1 - Using the module
161
161
 
@@ -0,0 +1,12 @@
1
+ module RSpec
2
+ module RfcHelper
3
+ class JsonRenderer
4
+ @specs: Specs
5
+
6
+ def examples: -> Array[Hash[Symbol, untyped]]
7
+ def render: -> String
8
+ def sections: -> Array[Hash[Symbol, untyped]]
9
+ def specs: -> Array[Hash[Symbol, untyped]]
10
+ end
11
+ end
12
+ end
@@ -18,6 +18,7 @@ module RSpec
18
18
  def each: -> void
19
19
  def find: -> Spec
20
20
  def ids: -> Array[Symbol]
21
+ def save_json_report: -> void
21
22
  def save_markdown_report: -> void
22
23
  def section_id: -> Symbol
23
24
  end
@@ -7,6 +7,8 @@ module RSpec
7
7
 
8
8
  def self.add_example: -> void
9
9
  def self.load_specs: -> void
10
+ def self.save_json_report: -> untyped
11
+ def self.save_markdown_report: -> untyped
10
12
  def self.start_from_file: -> void
11
13
  end
12
14
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rfc-helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel Tancoigne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-07 00:00:00.000000000 Z
11
+ date: 2023-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -40,12 +40,14 @@ files:
40
40
  - README.md
41
41
  - Rakefile
42
42
  - lib/rspec/rfc_helper.rb
43
+ - lib/rspec/rfc_helper/json_renderer.rb
43
44
  - lib/rspec/rfc_helper/markdown_renderer.rb
44
45
  - lib/rspec/rfc_helper/spec.rb
45
46
  - lib/rspec/rfc_helper/specs.rb
46
47
  - lib/rspec/rfc_helper/version.rb
47
48
  - report.md
48
49
  - sig/rspec/rfc_helper.rbs
50
+ - sig/rspec/rfc_helper/json_renderer.rbs
49
51
  - sig/rspec/rfc_helper/markdown_renderer.rbs
50
52
  - sig/rspec/rfc_helper/spec.rbs
51
53
  - sig/rspec/rfc_helper/specs.rbs