sexp_processor 4.14.1 → 4.15.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +6 -0
- data/lib/sexp_matcher.rb +4 -7
- data/lib/sexp_processor.rb +1 -1
- data/test/test_sexp.rb +4 -1
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dae436d9eece3ad19a5d390da622ee2b73db2db5e73a4a6b06fe351e8759d45f
|
4
|
+
data.tar.gz: 64c4cda4d2f25f759812de2dea4bd7d85e948a6d9cba8507a7d64318c358d116
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8647ce87dca77073d067bd2027b139499fa8db297ea524c453d709f5e52f057c9355b8b2f49e265aa09aef7c1a29dc6038409fb5ba19d33c9fb2eeb972b4c210
|
7
|
+
data.tar.gz: 38eb466cf27e2eeb30a14c9eabae202ab3b1d7f119b7b2a715c848fdcf98b8e2e130d656e05336781572d7ca9ff74ea8185683e065e6af557cac50f483b92436
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
data/lib/sexp_matcher.rb
CHANGED
@@ -455,7 +455,7 @@ class Sexp #:nodoc:
|
|
455
455
|
# | NAME:name => name.to_sym
|
456
456
|
# UP_NAME: /[A-Z]\w*/
|
457
457
|
# NAME : /:?[\w?!=~-]+/
|
458
|
-
# CMD :
|
458
|
+
# CMD : t | k | m | atom | not? | - | any | child | include
|
459
459
|
|
460
460
|
def parse_sexp
|
461
461
|
token = next_token
|
@@ -505,7 +505,7 @@ class Sexp #:nodoc:
|
|
505
505
|
##
|
506
506
|
# A collection of allowed commands to convert into matchers.
|
507
507
|
|
508
|
-
ALLOWED = [:t, :m, :k, :atom, :not?, :-, :any].freeze
|
508
|
+
ALLOWED = [:t, :m, :k, :atom, :not?, :-, :any, :child, :include].freeze
|
509
509
|
|
510
510
|
##
|
511
511
|
# Parses a balanced command. A command is denoted by square
|
@@ -760,11 +760,8 @@ class Sexp #:nodoc:
|
|
760
760
|
# +child+.
|
761
761
|
|
762
762
|
def satisfy? o
|
763
|
-
|
764
|
-
|
765
|
-
elsif o.kind_of? Sexp
|
766
|
-
o.search_each(child).any?
|
767
|
-
end
|
763
|
+
child.satisfy?(o) ||
|
764
|
+
(o.kind_of?(Sexp) && o.search_each(child).any?)
|
768
765
|
end
|
769
766
|
|
770
767
|
def == o # :nodoc:
|
data/lib/sexp_processor.rb
CHANGED
data/test/test_sexp.rb
CHANGED
@@ -906,7 +906,7 @@ class TestChild < MatcherTestCase
|
|
906
906
|
end
|
907
907
|
|
908
908
|
def sexp
|
909
|
-
s(:x, s(:a))
|
909
|
+
s(:x, s(:b), s(:a))
|
910
910
|
end
|
911
911
|
|
912
912
|
def bad_sexp
|
@@ -926,6 +926,8 @@ class TestChild < MatcherTestCase
|
|
926
926
|
|
927
927
|
def test_satisfy_eh_by_child
|
928
928
|
assert_satisfy matcher, s(:a)
|
929
|
+
assert_satisfy matcher, sexp
|
930
|
+
refute_satisfy matcher, bad_sexp
|
929
931
|
end
|
930
932
|
end
|
931
933
|
|
@@ -1602,6 +1604,7 @@ class TestSexpMatcherParser < Minitest::Test
|
|
1602
1604
|
test_parse "not?", delay{ not?(m(/^_$/)) }, "[not? [m /^_$/]]"
|
1603
1605
|
test_parse "not2", delay{ -_ }, "[- _]"
|
1604
1606
|
test_parse "any", delay{ q(:a) | q(:b) }, "[any (a) (b)]"
|
1607
|
+
test_parse "child", delay{ child(q(:str, m(/woot/))) }, "[child (str [m /woot/])]"
|
1605
1608
|
|
1606
1609
|
test_parse "klass", delay{ q(:lit, k(Float)) }, "(lit [k Float])"
|
1607
1610
|
test_parse "const", delay{ q(:const, :Float) }, "(const :Float)"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sexp_processor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
m5x9IDiApM+vCELNwDXXGNFEnQBBK+wAe4Pek8o1V1TTOxL1kGPewVOitX1p3xoN
|
30
30
|
h7iEjga8iM1LbZUfiISZ+WrB
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2020-
|
32
|
+
date: 2020-06-10 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rdoc
|
metadata.gz.sig
CHANGED
Binary file
|