speculate_about 1.0.6 → 1.1.2

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: 48c21c25fe1599785a21e240b3107949e96680e1b616ed47d255afeeae9b8bce
4
+ data.tar.gz: 70023a2536e80c753855da7dc337cbc2981cb6489a72f51558666d1700b0bbae
5
5
  SHA512:
6
- metadata.gz: c7a0573301627f5bb460368e2034cf8355985055bbbaa6ba8e61740d6483248335d496d5ad7c309656a5e7d75f695c908044fccb047ce82cd264566c22376097
7
- data.tar.gz: 53d9e35f85b1382bd00edc134ccf06e108c8e23127cc544ca415e3b22acb0837f71134b163b7800fad555b0096fcecaf25d0d81ae6d53a69c5367093a5344c34
6
+ metadata.gz: c3d1be4088fe5633e85915a8b3e4ddd251de2e6ec06b907c0aa152532c5d20f1c97a94deda385d442e8fe07df8484b0463e3eeba3e23c726067acbe7b947607c
7
+ data.tar.gz: b9623d982ccb9d1138b15553de712a913624f78879c3260b0ebef407999c4fb56f22e4426b39c780d9d03b099fa1e7b75dcbe2a6317c9978048fc096cb88b1a7
@@ -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.2"
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,21 @@ 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
+ if code
39
+ File.write(outfile, code.join("\n"))
40
+ else
41
+ debug__(msg: "not writing #{outfile}, there were no speculations in #{infile}", debug:)
42
+ end
36
43
  end
37
44
 
38
45
  def _decorated_ast_code ast, filename
39
- [DISCLAIMER.gsub("FILENAME", filename.inspect).split("\n"), %{RSpec.describe #{filename.inspect} do}] +
40
- ast.to_code + ["end"]
46
+ code = ast.to_code
47
+ return if code.empty?
48
+
49
+ [
50
+ disclaimer(filename),
51
+ %{RSpec.describe #{filename.inspect} do}
52
+ ] + code + ["end"]
41
53
  end
42
54
 
43
55
  def _out_of_date?(outf, inf)
@@ -52,5 +64,19 @@ module Speculations extend self
52
64
  rspec = File.basename(file, ".md")
53
65
  File.join(dest_dir, "#{rspec}_spec.rb")
54
66
  end
67
+
68
+ def disclaimer(filename)
69
+ DISCLAIMER
70
+ .gsub("FILENAME", filename.inspect).split("\n") +
71
+ require_speculations_helper
72
+ end
73
+
74
+ def require_speculations_helper
75
+ if File.readable?(HELPER_PATH)
76
+ ["require #{HELPER_FILE.inspect}"]
77
+ else
78
+ []
79
+ end
80
+ end
55
81
  end
56
82
  # 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.2
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-11 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: []