rspec-rfc-helper 0.1.1 → 0.2.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 +4 -4
 - data/CHANGELOG.md +11 -0
 - data/lib/rspec/rfc_helper/json_renderer.rb +84 -0
 - data/lib/rspec/rfc_helper/markdown_renderer.rb +7 -5
 - data/lib/rspec/rfc_helper/specs.rb +10 -1
 - data/lib/rspec/rfc_helper/version.rb +1 -1
 - data/lib/rspec/rfc_helper.rb +6 -0
 - data/report.md +36 -36
 - data/sig/rspec/rfc_helper/json_renderer.rbs +12 -0
 - data/sig/rspec/rfc_helper/specs.rbs +1 -0
 - data/sig/rspec/rfc_helper.rbs +2 -0
 - metadata +4 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 617f5c1b9bb3004b21596e44926cb45b231460685238b6cb38166935fc653b48
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 22d66950729d05cd571547409ef29d21b7eb848b3582a643639cf4d18e8d7b60
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 7f06421f6a3105af0546cba88114e226c014074c53c0cf30c0b1d129da26656b3cf95cd6a3b58cbc78caf894967afa9f504f3bc22a7eeec28c71c36142c1946a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3af8fbb4a87448bab6349a3ffdf85da3f9acc92dfe4481fd55c9772c5c7966b2a196eaf1c43efda3a9a3fb60d6c63e6feb85bad0f33ef1104aa742b897a525d0
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -28,6 +28,17 @@ 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 
     | 
    
         
            +
             
     | 
| 
       31 
42 
     | 
    
         
             
            ## [0.1.1] - 2023-11-10 - Fixes
         
     | 
| 
       32 
43 
     | 
    
         | 
| 
       33 
44 
     | 
    
         
             
            ### FIXED
         
     | 
| 
         @@ -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 
     | 
    
         
            -
                       
     | 
| 
      
 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 
     | 
    
         
            -
                     
     | 
| 
      
 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 
     | 
    
         
             
                  ##
         
     | 
| 
         @@ -4,13 +4,14 @@ require 'yaml' 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            require_relative 'spec'
         
     | 
| 
       6 
6 
     | 
    
         
             
            require_relative 'markdown_renderer'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require_relative 'json_renderer'
         
     | 
| 
       7 
8 
     | 
    
         | 
| 
       8 
9 
     | 
    
         
             
            module RSpec
         
     | 
| 
       9 
10 
     | 
    
         
             
              module RfcHelper
         
     | 
| 
       10 
11 
     | 
    
         
             
                ##
         
     | 
| 
       11 
12 
     | 
    
         
             
                # Spec collection
         
     | 
| 
       12 
13 
     | 
    
         
             
                class Specs
         
     | 
| 
       13 
     | 
    
         
            -
                  attr_reader :name, :specs_url, :sections
         
     | 
| 
      
 14 
     | 
    
         
            +
                  attr_reader :name, :specs_url, :sections, :specs
         
     | 
| 
       14 
15 
     | 
    
         | 
| 
       15 
16 
     | 
    
         
             
                  ##
         
     | 
| 
       16 
17 
     | 
    
         
             
                  # Instantiates a Spec collection from a YAML file.
         
     | 
| 
         @@ -124,6 +125,14 @@ module RSpec 
     | 
|
| 
       124 
125 
     | 
    
         
             
                    File.write file, RSpec::RfcHelper::MarkdownRenderer.new(self).render
         
     | 
| 
       125 
126 
     | 
    
         
             
                  end
         
     | 
| 
       126 
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 
     | 
    
         
            +
             
     | 
| 
       127 
136 
     | 
    
         
             
                  private
         
     | 
| 
       128 
137 
     | 
    
         | 
| 
       129 
138 
     | 
    
         
             
                  ##
         
     | 
    
        data/lib/rspec/rfc_helper.rb
    CHANGED
    
    
    
        data/report.md
    CHANGED
    
    | 
         @@ -1,32 +1,32 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Compliance status: RSpec RFC Helper
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            Report generated on 2023-11- 
     | 
| 
      
 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> |  
     | 
| 
      
 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> |  
     | 
| 
       52 
     | 
    
         
            -
            | <span style='color: green'>passed</span> |  
     | 
| 
      
 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> |  
     | 
| 
      
 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> |  
     | 
| 
      
 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> |  
     | 
| 
      
 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> |  
     | 
| 
      
 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 
     | 
    
         | 
    
        data/sig/rspec/rfc_helper.rbs
    CHANGED
    
    
    
        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. 
     | 
| 
      
 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- 
     | 
| 
      
 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
         
     |