speculate_about 1.0.6 → 1.1.1

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: d5fd5bedf8d21cdc315dfbb8b3c24b22bc9956f1bfb0c08008902aecb9c83771
4
- data.tar.gz: 141662a9daae3a23c62926d77cdc42d728d6108f36815ce169c183f0c9ae2ddc
3
+ metadata.gz: 7868260e0662a461c5c24efa28c175ded0562772e8d6da88a434dcbc323ef494
4
+ data.tar.gz: dffa0f2475fc381275a1d4090e3872b9f38ca199c6bd69a78e8ac229a614b326
5
5
  SHA512:
6
- metadata.gz: c7a0573301627f5bb460368e2034cf8355985055bbbaa6ba8e61740d6483248335d496d5ad7c309656a5e7d75f695c908044fccb047ce82cd264566c22376097
7
- data.tar.gz: 53d9e35f85b1382bd00edc134ccf06e108c8e23127cc544ca415e3b22acb0837f71134b163b7800fad555b0096fcecaf25d0d81ae6d53a69c5367093a5344c34
6
+ metadata.gz: d59efce2df52aaf3a3e7185c73fdd8969132a5b357f6ec0b7bf589c1433c51a69d44d77b914a5ba284500bbf363531707ecd0f623f1e7e53fa101fb2c9308600
7
+ data.tar.gz: 4043d9e4922d63202b29efee2aabfea64367901ebaca7fc9e58da0436bbd202798bd335864e544c3029f57b8a8af2e9eb303cec9a6d24e871f850142c5e98e7b
@@ -16,6 +16,7 @@ module Speculations
16
16
  when "-f", "--force"
17
17
  force = true
18
18
  args = args.drop(1)
19
+ return _compile_and_maybe_run(args, debug:, force:)
19
20
  else
20
21
  return _compile_and_maybe_run(args, debug:, force:)
21
22
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Speculations
4
- VERSION = "1.0.6"
4
+ VERSION = "1.1.1"
5
5
  end
6
6
  # SPDX-License-Identifier: AGPL-3.0-or-later
data/lib/speculations.rb CHANGED
@@ -3,6 +3,9 @@ require_relative 'debugging'
3
3
  require_relative 'speculations/parser'
4
4
  module Speculations extend self
5
5
 
6
+ HELPER_FILE = 'speculations_helper'
7
+ HELPER_PATH = "spec/#{HELPER_FILE}.rb"
8
+
6
9
  DISCLAIMER = <<-EOD
7
10
  # DO NOT EDIT!!!
8
11
  # This file was generated from FILENAME with the speculate_about gem, if you modify this file
@@ -32,12 +35,17 @@ module Speculations extend self
32
35
  def _compile(infile:, outfile:, debug:)
33
36
  ast = Speculations::Parser.new.parse_from_file(infile, debug:)
34
37
  code = _decorated_ast_code ast, infile
35
- File.write(outfile, code.join("\n"))
38
+ File.write(outfile, code.join("\n")) if code
36
39
  end
37
40
 
38
41
  def _decorated_ast_code ast, filename
39
- [DISCLAIMER.gsub("FILENAME", filename.inspect).split("\n"), %{RSpec.describe #{filename.inspect} do}] +
40
- ast.to_code + ["end"]
42
+ code = ast.to_code
43
+ return if code.empty?
44
+
45
+ [
46
+ disclaimer(filename),
47
+ %{RSpec.describe #{filename.inspect} do}
48
+ ] + code + ["end"]
41
49
  end
42
50
 
43
51
  def _out_of_date?(outf, inf)
@@ -52,5 +60,19 @@ module Speculations extend self
52
60
  rspec = File.basename(file, ".md")
53
61
  File.join(dest_dir, "#{rspec}_spec.rb")
54
62
  end
63
+
64
+ def disclaimer(filename)
65
+ DISCLAIMER
66
+ .gsub("FILENAME", filename.inspect).split("\n") +
67
+ require_speculations_helper
68
+ end
69
+
70
+ def require_speculations_helper
71
+ if File.readable?(HELPER_PATH)
72
+ ["require #{HELPER_FILE.inspect}"]
73
+ else
74
+ []
75
+ end
76
+ end
55
77
  end
56
78
  # SPDX-License-Identifier: Apache-2.0
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: speculate_about
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-04-25 00:00:00.000000000 Z
10
+ date: 2025-06-02 00:00:00.000000000 Z
12
11
  dependencies: []
13
12
  description: Allows Markdown or other text files to be used as literal specs, à la
14
13
  Elixir doctest, but from any file.
@@ -39,7 +38,6 @@ homepage: https://codeberg.org/lab419/speculate_about
39
38
  licenses:
40
39
  - AGPL-3.0-or-later
41
40
  metadata: {}
42
- post_install_message:
43
41
  rdoc_options: []
44
42
  require_paths:
45
43
  - lib
@@ -47,15 +45,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
47
45
  requirements:
48
46
  - - ">="
49
47
  - !ruby/object:Gem::Version
50
- version: 3.3.0
48
+ version: 3.4.1
51
49
  required_rubygems_version: !ruby/object:Gem::Requirement
52
50
  requirements:
53
51
  - - ">="
54
52
  - !ruby/object:Gem::Version
55
53
  version: '0'
56
54
  requirements: []
57
- rubygems_version: 3.5.6
58
- signing_key:
55
+ rubygems_version: 3.6.8
59
56
  specification_version: 4
60
57
  summary: Extract RSpecs from Markdown
61
58
  test_files: []