schemurai 2.3.0 → 3.0.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +67 -4
  3. data/ext/schemurai_native/Cargo.lock +8 -1
  4. data/ext/schemurai_native/Cargo.toml +2 -1
  5. data/ext/schemurai_native/glue.c +155 -14
  6. data/ext/schemurai_native/src/budget.rs +101 -0
  7. data/ext/schemurai_native/src/content.rs +18 -0
  8. data/ext/schemurai_native/src/diagnostics.rs +395 -225
  9. data/ext/schemurai_native/src/enumeration.rs +154 -0
  10. data/ext/schemurai_native/src/evaluation.rs +219 -0
  11. data/ext/schemurai_native/src/format.rs +118 -8
  12. data/ext/schemurai_native/src/graph.rs +50 -0
  13. data/ext/schemurai_native/src/instance_graph.rs +84 -0
  14. data/ext/schemurai_native/src/integer_scan.rs +132 -0
  15. data/ext/schemurai_native/src/lib.rs +954 -185
  16. data/ext/schemurai_native/src/memo.rs +1149 -0
  17. data/ext/schemurai_native/src/memo_scope.rs +240 -0
  18. data/ext/schemurai_native/src/number.rs +7 -8
  19. data/ext/schemurai_native/src/pattern.rs +191 -22
  20. data/ext/schemurai_native/src/scope.rs +243 -33
  21. data/ext/schemurai_native/src/structural.rs +86 -0
  22. data/ext/schemurai_native/src/tracking.rs +245 -90
  23. data/lib/schemurai/backend.rb +1 -0
  24. data/lib/schemurai/evaluator.rb +45 -3
  25. data/lib/schemurai/limit_budget.rb +78 -0
  26. data/lib/schemurai/limit_exceeded.rb +18 -0
  27. data/lib/schemurai/limited_evaluator.rb +100 -0
  28. data/lib/schemurai/native/evaluator.rb +32 -5
  29. data/lib/schemurai/schema_domain.rb +12 -7
  30. data/lib/schemurai/schema_graph.rb +10 -1
  31. data/lib/schemurai/unique_items.rb +2 -0
  32. data/lib/schemurai/version.rb +1 -1
  33. data/lib/schemurai/vm/compiler.rb +7 -3
  34. data/lib/schemurai/vm/evaluator.rb +50 -3
  35. data/lib/schemurai/vm/limited_evaluator.rb +97 -0
  36. data/lib/schemurai.rb +74 -27
  37. data/sig/schemurai.rbs +20 -12
  38. metadata +17 -4
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schemurai
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kuya KOHARA (oakcask)
@@ -43,13 +43,22 @@ files:
43
43
  - ext/schemurai_native/glue.c
44
44
  - ext/schemurai_native/protocol.def
45
45
  - ext/schemurai_native/protocol.h
46
+ - ext/schemurai_native/src/budget.rs
46
47
  - ext/schemurai_native/src/content.rs
47
48
  - ext/schemurai_native/src/diagnostics.rs
49
+ - ext/schemurai_native/src/enumeration.rs
50
+ - ext/schemurai_native/src/evaluation.rs
48
51
  - ext/schemurai_native/src/format.rs
52
+ - ext/schemurai_native/src/graph.rs
53
+ - ext/schemurai_native/src/instance_graph.rs
54
+ - ext/schemurai_native/src/integer_scan.rs
49
55
  - ext/schemurai_native/src/lib.rs
56
+ - ext/schemurai_native/src/memo.rs
57
+ - ext/schemurai_native/src/memo_scope.rs
50
58
  - ext/schemurai_native/src/number.rs
51
59
  - ext/schemurai_native/src/pattern.rs
52
60
  - ext/schemurai_native/src/scope.rs
61
+ - ext/schemurai_native/src/structural.rs
53
62
  - ext/schemurai_native/src/tracking.rs
54
63
  - lib/schemurai.rb
55
64
  - lib/schemurai/backend.rb
@@ -62,6 +71,9 @@ files:
62
71
  - lib/schemurai/evaluation.rb
63
72
  - lib/schemurai/evaluator.rb
64
73
  - lib/schemurai/formats.rb
74
+ - lib/schemurai/limit_budget.rb
75
+ - lib/schemurai/limit_exceeded.rb
76
+ - lib/schemurai/limited_evaluator.rb
65
77
  - lib/schemurai/meta_schemas.rb
66
78
  - lib/schemurai/meta_schemas/draft2019_09.rb
67
79
  - lib/schemurai/meta_schemas/draft2020_12.rb
@@ -75,6 +87,7 @@ files:
75
87
  - lib/schemurai/version.rb
76
88
  - lib/schemurai/vm/compiler.rb
77
89
  - lib/schemurai/vm/evaluator.rb
90
+ - lib/schemurai/vm/limited_evaluator.rb
78
91
  - sig/schemurai.rbs
79
92
  homepage: https://github.com/oakcask/schemurai
80
93
  licenses:
@@ -82,7 +95,7 @@ licenses:
82
95
  metadata:
83
96
  homepage_uri: https://github.com/oakcask/schemurai
84
97
  source_code_uri: https://github.com/oakcask/schemurai/tree/main
85
- documentation_uri: https://rubydoc.info/gems/schemurai/2.3.0
98
+ documentation_uri: https://rubydoc.info/gems/schemurai/3.0.1
86
99
  rubygems_mfa_required: 'true'
87
100
  rdoc_options:
88
101
  - "--main"
@@ -92,14 +105,14 @@ rdoc_options:
92
105
  - "--visibility"
93
106
  - public
94
107
  - "--exclude"
95
- - lib/schemurai/(?!version\.rb)
108
+ - lib/schemurai/(?!(?:version|limit_exceeded)\.rb)
96
109
  require_paths:
97
110
  - lib
98
111
  required_ruby_version: !ruby/object:Gem::Requirement
99
112
  requirements:
100
113
  - - ">="
101
114
  - !ruby/object:Gem::Version
102
- version: '3.4'
115
+ version: '4.0'
103
116
  required_rubygems_version: !ruby/object:Gem::Requirement
104
117
  requirements:
105
118
  - - ">="