tree_haver 7.1.0 → 7.1.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/tree_haver/backend_registry.rb +1 -1
- data/lib/tree_haver/backends/citrus.rb +5 -4
- data/lib/tree_haver/backends/ffi.rb +2 -2
- data/lib/tree_haver/backends/parslet.rb +2 -2
- data/lib/tree_haver/backends/prism.rb +1 -1
- data/lib/tree_haver/backends/tslp.rb +1 -1
- data/lib/tree_haver/base/node.rb +1 -1
- data/lib/tree_haver/peg_backends.rb +1 -1
- data/lib/tree_haver/rspec/dependency_tags.rb +11 -7
- data/lib/tree_haver/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +4 -4
- 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: d38ccb2f105723076324150db5e1d46d08346d4ca120ab64601b6e14fb7a0828
|
|
4
|
+
data.tar.gz: 8c0314bdd8c6ec2304576267e154f183f82d1f6bbb36ca5e5988ec8c2ca86d55
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2a5f7c90fd563240599e97b79b7247fa2eb992ffed613049da9c6fd5505edf22b71cb4de7ce61f199972fd96bedd285a365868aa250b67fe1556488bdf79f208
|
|
7
|
+
data.tar.gz: 0fa468aab52793b331fee9e860b83206aaefc3ecaa124ede7e68cedff6d90d893c0a900022144a3c46fcbb441373cd4863536fe6faeb8ef39ed1fcecafbe4d1b
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
|
@@ -457,11 +457,12 @@ module TreeHaver
|
|
|
457
457
|
# If we have a pattern like "(rule1 | rule2)*", we can't determine
|
|
458
458
|
# the type without looking at actual matches, but that causes recursion
|
|
459
459
|
# So just return a generic type based on the pattern
|
|
460
|
-
|
|
460
|
+
case str
|
|
461
|
+
when /^\(.*\)\*$/
|
|
461
462
|
return 'repeat'
|
|
462
|
-
|
|
463
|
+
when /^\(.*\)\?$/
|
|
463
464
|
return 'optional'
|
|
464
|
-
|
|
465
|
+
when /^.*\|.*$/
|
|
465
466
|
return 'choice'
|
|
466
467
|
end
|
|
467
468
|
|
|
@@ -473,7 +474,7 @@ module TreeHaver
|
|
|
473
474
|
|
|
474
475
|
lines_before = @source[0...offset].count("\n")
|
|
475
476
|
# Find the newline before this offset (or -1 if we're on line 0)
|
|
476
|
-
line_start = (@source.rindex("\n", offset - 1) if offset
|
|
477
|
+
line_start = (@source.rindex("\n", offset - 1) if offset.positive?)
|
|
477
478
|
line_start ||= -1
|
|
478
479
|
column = offset - line_start - 1
|
|
479
480
|
{ row: lines_before, column: column }
|
|
@@ -741,7 +741,7 @@ module TreeHaver
|
|
|
741
741
|
# @param index [Integer] child index
|
|
742
742
|
# @return [Node, nil] child node or nil if index out of bounds
|
|
743
743
|
def child(index)
|
|
744
|
-
return if index >= child_count || index
|
|
744
|
+
return if index >= child_count || index.negative?
|
|
745
745
|
|
|
746
746
|
child_node = Native.ts_node_child(@val, index)
|
|
747
747
|
Node.new(child_node)
|
|
@@ -886,7 +886,7 @@ module TreeHaver
|
|
|
886
886
|
# @param index [Integer] named child index (0-based)
|
|
887
887
|
# @return [Node, nil] named child or nil if index out of bounds
|
|
888
888
|
def named_child(index)
|
|
889
|
-
return if index
|
|
889
|
+
return if index.negative? || index >= named_child_count
|
|
890
890
|
|
|
891
891
|
child_node = Native.ts_node_named_child(@val, index)
|
|
892
892
|
return if Native.ts_node_is_null(child_node)
|
|
@@ -492,7 +492,7 @@ module TreeHaver
|
|
|
492
492
|
return { row: 0, column: 0 } if offset <= 0
|
|
493
493
|
|
|
494
494
|
lines_before = @source[0...offset].count("\n")
|
|
495
|
-
line_start = (@source.rindex("\n", offset - 1) if offset
|
|
495
|
+
line_start = (@source.rindex("\n", offset - 1) if offset.positive?)
|
|
496
496
|
line_start ||= -1
|
|
497
497
|
column = offset - line_start - 1
|
|
498
498
|
{ row: lines_before, column: column }
|
|
@@ -521,7 +521,7 @@ module TreeHaver
|
|
|
521
521
|
when ::Parslet::Slice
|
|
522
522
|
obj
|
|
523
523
|
when Hash
|
|
524
|
-
obj.
|
|
524
|
+
obj.each_value do |v|
|
|
525
525
|
result = find_first_slice(v)
|
|
526
526
|
return result if result
|
|
527
527
|
end
|
|
@@ -551,7 +551,7 @@ module TreeHaver
|
|
|
551
551
|
# @param block [Proc] block to pass
|
|
552
552
|
# @return [Object] result from the underlying node
|
|
553
553
|
def method_missing(method_name, *args, **kwargs, &block)
|
|
554
|
-
if inner_node
|
|
554
|
+
if inner_node.respond_to?(method_name)
|
|
555
555
|
inner_node.public_send(method_name, *args, **kwargs, &block)
|
|
556
556
|
else
|
|
557
557
|
super
|
|
@@ -122,7 +122,7 @@ module TreeHaver
|
|
|
122
122
|
return false unless parser
|
|
123
123
|
|
|
124
124
|
tree = parser.parse(source)
|
|
125
|
-
return false unless tree
|
|
125
|
+
return false unless tree.respond_to?(:root_node)
|
|
126
126
|
|
|
127
127
|
root = tree.root_node
|
|
128
128
|
root && !node_has_error?(root)
|
data/lib/tree_haver/base/node.rb
CHANGED
|
@@ -6,6 +6,16 @@ module TreeHaver
|
|
|
6
6
|
module RSpec
|
|
7
7
|
module DependencyTags
|
|
8
8
|
class << self
|
|
9
|
+
def configure_filters(config)
|
|
10
|
+
TreeHaver::BackendRegistry.registered_tags.each do |tag|
|
|
11
|
+
if TreeHaver::BackendRegistry.tag_available?(tag)
|
|
12
|
+
config.filter_run_excluding("not_#{tag}": true)
|
|
13
|
+
else
|
|
14
|
+
config.filter_run_excluding(tag => true)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
9
19
|
def available?(tag_name)
|
|
10
20
|
TreeHaver::BackendRegistry.tag_available?(tag_name)
|
|
11
21
|
end
|
|
@@ -30,13 +40,7 @@ end
|
|
|
30
40
|
|
|
31
41
|
if defined?(::RSpec)
|
|
32
42
|
::RSpec.configure do |config|
|
|
33
|
-
TreeHaver::
|
|
34
|
-
if TreeHaver::BackendRegistry.tag_available?(tag)
|
|
35
|
-
config.filter_run_excluding("not_#{tag}": true)
|
|
36
|
-
else
|
|
37
|
-
config.filter_run_excluding(tag => true)
|
|
38
|
-
end
|
|
39
|
-
end
|
|
43
|
+
TreeHaver::RSpec::DependencyTags.configure_filters(config)
|
|
40
44
|
|
|
41
45
|
config.before(:suite) do
|
|
42
46
|
next if ENV.fetch('TREE_HAVER_DEBUG', 'false').casecmp?('false')
|
data/lib/tree_haver/version.rb
CHANGED
|
@@ -4,7 +4,7 @@ module TreeHaver
|
|
|
4
4
|
# Version namespace for this gem.
|
|
5
5
|
module Version
|
|
6
6
|
# Current gem version.
|
|
7
|
-
VERSION = '7.1.
|
|
7
|
+
VERSION = '7.1.1'
|
|
8
8
|
end
|
|
9
9
|
# Current gem version exposed at the traditional constant location.
|
|
10
10
|
VERSION = Version::VERSION # Traditional Constant Location
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tree_haver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.1.
|
|
4
|
+
version: 7.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -389,10 +389,10 @@ licenses:
|
|
|
389
389
|
- PolyForm-Small-Business-1.0.0
|
|
390
390
|
metadata:
|
|
391
391
|
homepage_uri: https://structuredmerge.org
|
|
392
|
-
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.
|
|
393
|
-
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.
|
|
392
|
+
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.1
|
|
393
|
+
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.1/CHANGELOG.md
|
|
394
394
|
bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
|
|
395
|
-
documentation_uri: https://www.rubydoc.info/gems/tree_haver/7.1.
|
|
395
|
+
documentation_uri: https://www.rubydoc.info/gems/tree_haver/7.1.1
|
|
396
396
|
funding_uri: https://github.com/sponsors/pboling
|
|
397
397
|
wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
|
|
398
398
|
news_uri: https://www.railsbling.com/tags/tree_haver
|
metadata.gz.sig
CHANGED
|
Binary file
|