markly-merge 7.1.7 → 7.1.8

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: 0a8c5e110ad3f85cdea5de2a1880d577db42a29456519fba599ea98217322a68
4
- data.tar.gz: 3f066a9fa8e262555950d482f890e0d12e967765dd7e3b7119ac3e09f7613740
3
+ metadata.gz: 3382fbb8e4cd0bee3af7a00b2b8c9058d7e3ec6042566f18e1da9af8ca7e13cc
4
+ data.tar.gz: dcc5aab98f54da4180a4251c8ddea3b1331461c8cf1288f9f9bbcf98c80dff1d
5
5
  SHA512:
6
- metadata.gz: 49184c8698480f33eb3ee26348f5754465af0c4d9aedd0dce87d766298161b504414b206471649adb0bb97fdb19644e20bfd3e5db019fc0e32ce14789f2c6b69
7
- data.tar.gz: 4c09a4a37068be0c59d32327355349d033416519912cb9ee7b93f4e73ffe946baed3023795b9b1128d94f793c4b585b0c57a136aae37dc9fb2efd42cdf7db93a
6
+ metadata.gz: 4598dd94e2c2b7c1efc08a81ca2cc67e6ba9ebfe83ed706efb988bae2d604732292f8a53f2dfb8db1eecab70f8d3d3ff4b6a6abc3456447aa68b1138a8e10b74
7
+ data.tar.gz: 6fbad72e62e61c4f2af6caa1de5fadf86b86f5134952fc8f32783554b8e96c35ce8eb4d8118b1e5fb2942f4bd1415a778d3ac36fba420869151616ef80b41cb5
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'markly/merge'
4
+
5
+ module Markly
6
+ module Merge
7
+ module RSpec
8
+ # Native Markly block kinds, source positions, and known attributes for
9
+ # portable provider contract snapshots.
10
+ module ProviderSnapshotExtension
11
+ NATIVE_ATTRIBUTES = %i[
12
+ fence_info
13
+ header_level
14
+ list_delim
15
+ list_start
16
+ list_tight
17
+ list_type
18
+ title
19
+ url
20
+ ].freeze
21
+
22
+ module_function
23
+
24
+ def call(tree:, **)
25
+ {
26
+ schema: 'structuredmerge.extension/ruby-markly/v1',
27
+ namespace: 'ruby-markly',
28
+ capabilities: %w[attributes block-kinds source-positions],
29
+ payload: {
30
+ nodes: project_nodes(tree.root_node),
31
+ native_tree_visibility: 'provider_internal'
32
+ }
33
+ }
34
+ end
35
+
36
+ # rubocop:disable Metrics/MethodLength -- breadth-first projection carries path and native evidence together
37
+ def project_nodes(root)
38
+ queue = [[root, '0']]
39
+ queue.map do |node, path|
40
+ children = node.children
41
+ children.each_with_index { |child, index| queue << [child, "#{path}.#{index}"] }
42
+ {
43
+ path: path,
44
+ type: node.type.to_s,
45
+ native_type: node.raw_type.to_s,
46
+ source_position: node.inner_source_position,
47
+ attributes: native_attributes(node)
48
+ }
49
+ end
50
+ end
51
+ # rubocop:enable Metrics/MethodLength
52
+ private_class_method :project_nodes
53
+
54
+ def native_attributes(node)
55
+ NATIVE_ATTRIBUTES.each_with_object({}) do |name, attributes|
56
+ next unless node.inner_node.respond_to?(name)
57
+
58
+ value = read_native_attribute(node.inner_node, name)
59
+ attributes[name] = value if value.is_a?(String) || value.is_a?(Numeric) || value == true || value == false
60
+ end
61
+ end
62
+ private_class_method :native_attributes
63
+
64
+ def read_native_attribute(node, name)
65
+ node.public_send(name)
66
+ rescue ::Markly::Error
67
+ nil
68
+ end
69
+ private_class_method :read_native_attribute
70
+ end
71
+ end
72
+ end
73
+ end
@@ -5,7 +5,7 @@ module Markly
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = '7.1.7'
8
+ VERSION = '7.1.8'
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  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: markly-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.7
4
+ version: 7.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -43,14 +43,14 @@ dependencies:
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: 7.1.7
46
+ version: 7.1.8
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - '='
52
52
  - !ruby/object:Gem::Version
53
- version: 7.1.7
53
+ version: 7.1.8
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: markly
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +94,7 @@ dependencies:
94
94
  version: '3.0'
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: 3.0.17
97
+ version: 3.0.31
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
@@ -104,7 +104,7 @@ dependencies:
104
104
  version: '3.0'
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
- version: 3.0.17
107
+ version: 3.0.31
108
108
  - !ruby/object:Gem::Dependency
109
109
  name: bundler-audit
110
110
  requirement: !ruby/object:Gem::Requirement
@@ -182,7 +182,7 @@ dependencies:
182
182
  version: '3.2'
183
183
  - - ">="
184
184
  - !ruby/object:Gem::Version
185
- version: 3.2.2
185
+ version: 3.2.3
186
186
  type: :development
187
187
  prerelease: false
188
188
  version_requirements: !ruby/object:Gem::Requirement
@@ -192,7 +192,7 @@ dependencies:
192
192
  version: '3.2'
193
193
  - - ">="
194
194
  - !ruby/object:Gem::Version
195
- version: 3.2.2
195
+ version: 3.2.3
196
196
  - !ruby/object:Gem::Dependency
197
197
  name: kettle-test
198
198
  requirement: !ruby/object:Gem::Requirement
@@ -222,7 +222,7 @@ dependencies:
222
222
  version: '3.2'
223
223
  - - ">="
224
224
  - !ruby/object:Gem::Version
225
- version: 3.2.6
225
+ version: 3.2.7
226
226
  type: :development
227
227
  prerelease: false
228
228
  version_requirements: !ruby/object:Gem::Requirement
@@ -232,7 +232,7 @@ dependencies:
232
232
  version: '3.2'
233
233
  - - ">="
234
234
  - !ruby/object:Gem::Version
235
- version: 3.2.6
235
+ version: 3.2.7
236
236
  - !ruby/object:Gem::Dependency
237
237
  name: ruby-progressbar
238
238
  requirement: !ruby/object:Gem::Requirement
@@ -306,6 +306,7 @@ files:
306
306
  - lib/markly/merge/freeze_node.rb
307
307
  - lib/markly/merge/partial_template_merger.rb
308
308
  - lib/markly/merge/provider.rb
309
+ - lib/markly/merge/rspec/provider_snapshot_extension.rb
309
310
  - lib/markly/merge/smart_merger.rb
310
311
  - lib/markly/merge/version.rb
311
312
  - sig/markly/merge.rbs
@@ -315,10 +316,10 @@ licenses:
315
316
  - PolyForm-Small-Business-1.0.0
316
317
  metadata:
317
318
  homepage_uri: https://structuredmerge.org
318
- source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.7
319
- changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.7/CHANGELOG.md
319
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.8
320
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.8/CHANGELOG.md
320
321
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
321
- documentation_uri: https://www.rubydoc.info/gems/markly-merge/7.1.7
322
+ documentation_uri: https://www.rubydoc.info/gems/markly-merge/7.1.8
322
323
  funding_uri: https://github.com/sponsors/pboling
323
324
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
324
325
  news_uri: https://www.railsbling.com/tags/markly-merge
metadata.gz.sig CHANGED
Binary file