speculate_about 1.3.1 → 1.3.3

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: 55214fa13796f901f6a8d1bc3383d98665bc0108892c6ffb349a6cab179e89fb
4
- data.tar.gz: 70507372a7ea0cddab9d655385aeaeecb0103ec8837c7149d5819adb4289f6af
3
+ metadata.gz: b00ea1776b0bdcaeea52772043e732f29c47190e5efe232c07c08b8b5529f1f5
4
+ data.tar.gz: bc3d47f0393249fd537cbc2f98622e2b1ef769f616cc293899b8d741f2d84a56
5
5
  SHA512:
6
- metadata.gz: a31db003b1002096eac96dc811766609d2aae64646830815f874e3ed516d616f702803d7b7363464a12971b75ee64b2c17a79d914b1a02ac6eec317c0d7ec174
7
- data.tar.gz: f2cf3a4279e8777b3e9a5df3cdd6ce2b6887636d044ea2f132683f099a14ca9aa23867ea5c214f5cf024f2f718303484f23103de6a71174b7a5958342ce8d3f3
6
+ metadata.gz: cd60dca9c5d4c9fa24380903ae608064f670076d601c61a813de571efc69bf4bcf8ca39cb65251c935616a602518ab53154cf869050be15371f588eb9ba94bff
7
+ data.tar.gz: 48fbfe53b8edc4e46e6dc0a19f89fcc99927be3f64b5653b88e8408486426584cc27c57d2acec3e4ae7a22ec722ee1bc3455ee0b08d440c9a8f9acf98ba44187
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'l43/simple_color'
4
+ module Speculations
5
+ module Debugging
6
+ S = L43::SimpleColor
7
+
8
+ def debug__(subject=nil, msg: nil, rtrn: nil, debug:)
9
+ return rtrn || subject unless debug
10
+
11
+ S.putc(msg) if msg
12
+ S.putc(3, :bold_green, subject.inspect) if subject
13
+ rtrn || subject
14
+ end
15
+
16
+ def dbg_match(msg, data)
17
+ designation = name.split("::").last.downcase
18
+ debug__(msg: [:blue, "#{data.lnb.succ}", :reset, " #{msg} match in :#{designation}"], debug: data.debug)
19
+ end
20
+
21
+ end
22
+ end
23
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -4,7 +4,6 @@ module Speculations
4
4
  class Parser
5
5
  module State
6
6
  module SpecifyBlock extend self
7
- # def parse line, lnb, node, _ctxt, debug: false
8
7
  def parse(data)
9
8
  # data.info(:specify_block)
10
9
  line = data.line
@@ -6,7 +6,7 @@ module Speculations::Parser::State::Triggers
6
6
  GIVEN_RGX = %r[\A\s{0,3}(?:Given|When|And)\b]
7
7
  EXAMPLE_RGX = %r[\A\s{0,3}Example\:?\s+(?<title>.*)]
8
8
  RUBY_RGX = %r[\A\s{0,3}```ruby]
9
- SPEC_CONTEXT_RGX = %r[following examples:\s*\z]
9
+ SPEC_CONTEXT_RGX = %r[(?:\sfollowing examples:\s*)|(?:\sas follows:\s*)\z]
10
10
  THEN_RGX = %r[\A\s{0,3}(?:Then|But|And|Also|Or|However|Furhermore)\b\s*(?<title>.*)]
11
11
 
12
12
  def blank_line(line) = BLANK_RGX.match(line)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../debugging'
3
+ require_relative 'debugging'
4
4
  require_relative './parser/context'
5
5
  require_relative './parser/state'
6
6
  module Speculations
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Speculations
4
- VERSION = "1.3.1"
4
+ VERSION = "1.3.3"
5
5
  end
6
6
  # SPDX-License-Identifier: AGPL-3.0-or-later
data/lib/speculations.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  require 'fileutils'
2
- require_relative 'debugging'
2
+ require_relative 'speculations/debugging'
3
3
  require_relative 'speculations/data'
4
4
  require_relative 'speculations/parser'
5
5
  module Speculations extend self
6
+ include Debugging
6
7
 
7
8
  HELPER_FILE = 'speculations_helper'
8
9
  HELPER_PATH = "spec/#{HELPER_FILE}.rb"
@@ -20,13 +21,13 @@ module Speculations extend self
20
21
  raise ArgumentError, "#{infile} not found" unless File.readable? infile
21
22
  outfile ||= _speculation_path(infile)
22
23
  if _out_of_date?(outfile, infile)
23
- debug__(msg: "recompiling #{infile} -> #{outfile}", debug:)
24
+ debug__(msg: ["recompiling ", :b_blue, infile, :reset, " -> ", :b_blue, outfile], debug:)
24
25
  _compile(infile:, outfile:, debug:)
25
26
  elsif force
26
- debug__(msg: "*** forced recompilation #{infile} -> #{outfile}", debug:)
27
+ debug__(msg: [:b_yellow, "*** forced recompilation ", :b_blue, infile, :reset, " -> ", :b_blue, outfile], debug:)
27
28
  _compile(infile:, outfile:, debug:)
28
29
  else
29
- debug__(msg: "#{infile} ignored as it is upto date", debug:)
30
+ debug__(msg: [:green, infile, :reset, " ignored as it is upto date"], debug:)
30
31
  end
31
32
  outfile
32
33
  end
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: speculate_about
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-04-26 00:00:00.000000000 Z
11
- dependencies: []
10
+ date: 2026-05-06 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: l43_simple_color
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: 0.2.2
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.2.2
12
26
  description: Allows Markdown or other text files to be used as literal specs, à la
13
27
  Elixir doctest, but from any file.
14
28
  email: robert.dober@gmail.com
@@ -19,11 +33,11 @@ extra_rdoc_files: []
19
33
  files:
20
34
  - LICENSE
21
35
  - bin/speculate
22
- - lib/debugging.rb
23
36
  - lib/speculate_about.rb
24
37
  - lib/speculations.rb
25
38
  - lib/speculations/cli.rb
26
39
  - lib/speculations/data.rb
40
+ - lib/speculations/debugging.rb
27
41
  - lib/speculations/parser.rb
28
42
  - lib/speculations/parser/context.rb
29
43
  - lib/speculations/parser/context/example.rb
data/lib/debugging.rb DELETED
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Kernel
4
- def debug__(subject=nil, msg: nil, rtrn: nil, debug:)
5
- return rtrn || subject unless debug
6
-
7
- $stderr.puts(msg) if msg
8
- $stderr.puts(subject.inspect) if subject
9
- rtrn || subject
10
- end
11
-
12
- def dbg_match(msg, data)
13
- designation = name.split("::").last.downcase
14
- debug__(msg: "#{data.lnb.succ}: #{msg} match in :#{designation}", debug: data.debug)
15
- end
16
-
17
- end
18
- # SPDX-License-Identifier: AGPL-3.0-or-later