hegeltest 0.1.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.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +22 -0
  3. data/CODE_OF_CONDUCT.md +10 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +264 -0
  6. data/Rakefile +19 -0
  7. data/docs/README.md +25 -0
  8. data/docs/adr/0001-bind-libhegel-through-fiddle.md +54 -0
  9. data/docs/adr/0002-ship-one-prebuilt-engine-per-platform-specific-gem.md +48 -0
  10. data/docs/adr/0003-publish-as-hegeltest-require-as-hegel.md +39 -0
  11. data/docs/adr/0004-expose-generators-through-a-mixin-with-keyword-options.md +42 -0
  12. data/docs/adr/0005-name-drawn-values-from-the-callers-source-with-prism.md +40 -0
  13. data/docs/adr/0006-verify-the-binding-in-seven-layers-with-full-coverage.md +51 -0
  14. data/docs/adr/0007-ship-a-thin-ruby-skill-shaped-for-donation.md +56 -0
  15. data/docs/adr/0008-revisit-the-binding-after-milestone-c-on-measurement.md +81 -0
  16. data/docs/adr/0009-turn-the-example-database-on-with-a-key.md +89 -0
  17. data/docs/adr/0010-declare-stateful-rules-with-a-class-macro.md +113 -0
  18. data/docs/adr/0011-let-the-test-case-own-every-pool-drawn-from-it.md +83 -0
  19. data/docs/adr/0012-build-a-failure-origin-from-the-callers-own-frame.md +72 -0
  20. data/docs/adr/0013-bind-libhegel-through-the-ffi-gem.md +102 -0
  21. data/docs/architecture.md +182 -0
  22. data/lib/hegel/draw_name.rb +109 -0
  23. data/lib/hegel/errors.rb +47 -0
  24. data/lib/hegel/generator.rb +98 -0
  25. data/lib/hegel/generators.rb +865 -0
  26. data/lib/hegel/lib_hegel/real.rb +1149 -0
  27. data/lib/hegel/lib_hegel.rb +269 -0
  28. data/lib/hegel/libhegel_version.rb +9 -0
  29. data/lib/hegel/locate.rb +188 -0
  30. data/lib/hegel/report.rb +87 -0
  31. data/lib/hegel/runner.rb +464 -0
  32. data/lib/hegel/settings.rb +164 -0
  33. data/lib/hegel/state_machine.rb +89 -0
  34. data/lib/hegel/stateful/pool.rb +111 -0
  35. data/lib/hegel/stateful.rb +120 -0
  36. data/lib/hegel/syntax/methods.rb +173 -0
  37. data/lib/hegel/test_case.rb +523 -0
  38. data/lib/hegel/version.rb +5 -0
  39. data/lib/hegel.rb +92 -0
  40. data/lib/hegeltest.rb +7 -0
  41. data/lib/tasks/libhegel.rake +112 -0
  42. data/lib/tasks/platform_gems.rake +111 -0
  43. data/sig/hegel.rbs +563 -0
  44. data/skills/hegel-ruby/SKILL.md +30 -0
  45. data/skills/hegel-ruby/references/ruby/reference.md +1210 -0
  46. metadata +113 -0
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hegeltest
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - meganemura
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: ffi
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.17'
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: 1.17.4
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '1.17'
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.17.4
32
+ description: |
33
+ An unofficial Ruby implementation of the Hegel protocol. Hegel is a
34
+ property-based testing framework based on Hypothesis. This gem drives
35
+ libhegel, the same native engine that backs the Rust, Go, TypeScript,
36
+ Java, OCaml, and C++ implementations.
37
+ email:
38
+ - meganemura@users.noreply.github.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - CHANGELOG.md
44
+ - CODE_OF_CONDUCT.md
45
+ - LICENSE.txt
46
+ - README.md
47
+ - Rakefile
48
+ - docs/README.md
49
+ - docs/adr/0001-bind-libhegel-through-fiddle.md
50
+ - docs/adr/0002-ship-one-prebuilt-engine-per-platform-specific-gem.md
51
+ - docs/adr/0003-publish-as-hegeltest-require-as-hegel.md
52
+ - docs/adr/0004-expose-generators-through-a-mixin-with-keyword-options.md
53
+ - docs/adr/0005-name-drawn-values-from-the-callers-source-with-prism.md
54
+ - docs/adr/0006-verify-the-binding-in-seven-layers-with-full-coverage.md
55
+ - docs/adr/0007-ship-a-thin-ruby-skill-shaped-for-donation.md
56
+ - docs/adr/0008-revisit-the-binding-after-milestone-c-on-measurement.md
57
+ - docs/adr/0009-turn-the-example-database-on-with-a-key.md
58
+ - docs/adr/0010-declare-stateful-rules-with-a-class-macro.md
59
+ - docs/adr/0011-let-the-test-case-own-every-pool-drawn-from-it.md
60
+ - docs/adr/0012-build-a-failure-origin-from-the-callers-own-frame.md
61
+ - docs/adr/0013-bind-libhegel-through-the-ffi-gem.md
62
+ - docs/architecture.md
63
+ - lib/hegel.rb
64
+ - lib/hegel/draw_name.rb
65
+ - lib/hegel/errors.rb
66
+ - lib/hegel/generator.rb
67
+ - lib/hegel/generators.rb
68
+ - lib/hegel/lib_hegel.rb
69
+ - lib/hegel/lib_hegel/real.rb
70
+ - lib/hegel/libhegel_version.rb
71
+ - lib/hegel/locate.rb
72
+ - lib/hegel/report.rb
73
+ - lib/hegel/runner.rb
74
+ - lib/hegel/settings.rb
75
+ - lib/hegel/state_machine.rb
76
+ - lib/hegel/stateful.rb
77
+ - lib/hegel/stateful/pool.rb
78
+ - lib/hegel/syntax/methods.rb
79
+ - lib/hegel/test_case.rb
80
+ - lib/hegel/version.rb
81
+ - lib/hegeltest.rb
82
+ - lib/tasks/libhegel.rake
83
+ - lib/tasks/platform_gems.rake
84
+ - sig/hegel.rbs
85
+ - skills/hegel-ruby/SKILL.md
86
+ - skills/hegel-ruby/references/ruby/reference.md
87
+ homepage: https://github.com/meganemura/hegel-ruby
88
+ licenses:
89
+ - MIT
90
+ metadata:
91
+ allowed_push_host: https://rubygems.org
92
+ homepage_uri: https://github.com/meganemura/hegel-ruby
93
+ source_code_uri: https://github.com/meganemura/hegel-ruby
94
+ changelog_uri: https://github.com/meganemura/hegel-ruby/blob/main/CHANGELOG.md
95
+ rubygems_mfa_required: 'true'
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 3.3.0
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ requirements: []
110
+ rubygems_version: 4.0.16
111
+ specification_version: 4
112
+ summary: Property-based testing for Ruby, built on Hypothesis
113
+ test_files: []