markdown-merge 7.1.1 → 7.1.4

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.
@@ -5,7 +5,7 @@ module Markdown
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = '7.1.1'
8
+ VERSION = '7.1.4'
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
@@ -54,6 +54,8 @@ module Markdown
54
54
  autoload :OutputBuilder, 'markdown/merge/output_builder'
55
55
  autoload :PartialTemplateMerger, 'markdown/merge/partial_template_merger'
56
56
  autoload :PreservationSupport, 'markdown/merge/preservation_support'
57
+ autoload :ProviderBackend, 'markdown/merge/source_preserving_provider'
58
+ autoload :SourcePreservingProvider, 'markdown/merge/source_preserving_provider'
57
59
  autoload :SmartMerger, 'markdown/merge/smart_merger'
58
60
  autoload :SmartMergerBase, 'markdown/merge/smart_merger_base'
59
61
  autoload :TableMatchAlgorithm, 'markdown/merge/table_match_algorithm'
@@ -61,6 +63,40 @@ module Markdown
61
63
  autoload :WhitespaceNormalizer, 'markdown/merge/whitespace_normalizer'
62
64
  autoload :WrapperSupport, 'markdown/merge/wrapper_support'
63
65
 
66
+ # Default acyclic Markdown workflow provider backed by the language pack.
67
+ class Provider < SourcePreservingProvider
68
+ # rubocop:disable Metrics/MethodLength -- constructor declares the complete provider boundary
69
+ def initialize
70
+ super(
71
+ provider_id: 'ruby.markdown',
72
+ role: :workflow,
73
+ backend: ProviderBackend.new(
74
+ id: :'kreuzberg-language-pack',
75
+ package: PACKAGE_NAME,
76
+ dialects: %i[markdown],
77
+ parser: lambda { |source|
78
+ Markdown::Merge.register_backend!
79
+ TreeHaver.with_backend('kreuzberg-language-pack') { TreeHaver.parser_for(:markdown).parse(source) }
80
+ },
81
+ headings: ProviderBackend.method(:tree_sitter_headings)
82
+ )
83
+ )
84
+ end
85
+ # rubocop:enable Metrics/MethodLength
86
+ end
87
+
88
+ class << self
89
+ def merge_provider
90
+ @merge_provider ||= Provider.new
91
+ end
92
+
93
+ def register_provider!(replace: false)
94
+ return unless Ast::Merge.respond_to?(:register_provider)
95
+
96
+ Ast::Merge.register_provider(merge_provider, replace: replace)
97
+ end
98
+ end
99
+
64
100
  def register_backend!
65
101
  BACKEND_REGISTRY.mutex.synchronize do
66
102
  return if BACKEND_REGISTRY.registered
@@ -675,6 +711,8 @@ module Markdown
675
711
  end
676
712
  end
677
713
 
714
+ Markdown::Merge.register_provider!
715
+
678
716
  %w[
679
717
  commonmarker/merge/backend
680
718
  markly/merge/backend
@@ -4,5 +4,59 @@ module Markdown
4
4
  VERSION: String
5
5
  end
6
6
  VERSION: String
7
+
8
+ class ProviderBackend
9
+ attr_reader id: Symbol
10
+ attr_reader package: String
11
+ attr_reader dialects: Array[Symbol]
12
+
13
+ def initialize: (
14
+ id: Symbol | String,
15
+ package: String,
16
+ dialects: Array[Symbol | String],
17
+ parser: Proc,
18
+ headings: Proc
19
+ ) -> void
20
+ def parse: (String source) -> [untyped, Array[ProviderBackend::Heading]]
21
+
22
+ def self.native_headings: (untyped root, String source, ?kramdown: bool) -> Array[ProviderBackend::Heading]
23
+ def self.tree_sitter_headings: (untyped root, String source) -> Array[ProviderBackend::Heading]
24
+
25
+ class Heading
26
+ attr_reader level: Integer
27
+ attr_reader text: String
28
+ attr_reader start_line: Integer
29
+ attr_reader end_line: Integer
30
+ attr_reader style: Symbol
31
+
32
+ def initialize: (
33
+ level: Integer,
34
+ text: String,
35
+ start_line: Integer,
36
+ end_line: Integer,
37
+ style: Symbol
38
+ ) -> void
39
+ end
40
+ end
41
+
42
+ class SourcePreservingProvider
43
+ attr_reader backend: ProviderBackend
44
+
45
+ def initialize: (provider_id: String, role: Symbol, backend: ProviderBackend) -> void
46
+ def provider_id: () -> String
47
+ def family: () -> String
48
+ def capabilities: () -> Hash[Symbol, untyped]
49
+ def analyze: (Hash[Symbol, untyped] request) -> Hash[Symbol, untyped]
50
+ def diff2: (Hash[Symbol, untyped] request) -> Hash[Symbol, untyped]
51
+ def merge2: (Hash[Symbol, untyped] request) -> Hash[Symbol, untyped]
52
+ def merge3: (Hash[Symbol, untyped] request) -> Hash[Symbol, untyped]
53
+ end
54
+
55
+ class Provider < SourcePreservingProvider
56
+ def initialize: () -> void
57
+ end
58
+
59
+ def self.merge_provider: () -> Provider
60
+ def self.register_provider!: (?replace: bool) -> untyped
7
61
  end
8
62
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdown-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.1
4
+ version: 7.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -43,28 +43,28 @@ dependencies:
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: 7.1.1
46
+ version: 7.1.4
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.1
53
+ version: 7.1.4
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: tree_haver
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - '='
59
59
  - !ruby/object:Gem::Version
60
- version: 7.1.1
60
+ version: 7.1.4
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - '='
66
66
  - !ruby/object:Gem::Version
67
- version: 7.1.1
67
+ version: 7.1.4
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: version_gem
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -91,20 +91,20 @@ dependencies:
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: '2.5'
94
+ version: '3.0'
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: 2.5.17
97
+ version: 3.0.7
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '2.5'
104
+ version: '3.0'
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
- version: 2.5.17
107
+ version: 3.0.7
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.0
185
+ version: 3.2.2
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.0
195
+ version: 3.2.2
196
196
  - !ruby/object:Gem::Dependency
197
197
  name: kettle-test
198
198
  requirement: !ruby/object:Gem::Requirement
@@ -202,7 +202,7 @@ dependencies:
202
202
  version: '2.0'
203
203
  - - ">="
204
204
  - !ruby/object:Gem::Version
205
- version: 2.0.19
205
+ version: 2.0.20
206
206
  type: :development
207
207
  prerelease: false
208
208
  version_requirements: !ruby/object:Gem::Requirement
@@ -212,7 +212,7 @@ dependencies:
212
212
  version: '2.0'
213
213
  - - ">="
214
214
  - !ruby/object:Gem::Version
215
- version: 2.0.19
215
+ version: 2.0.20
216
216
  - !ruby/object:Gem::Dependency
217
217
  name: turbo_tests2
218
218
  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.4
225
+ version: 3.2.6
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.4
235
+ version: 3.2.6
236
236
  - !ruby/object:Gem::Dependency
237
237
  name: ruby-progressbar
238
238
  requirement: !ruby/object:Gem::Requirement
@@ -276,7 +276,7 @@ dependencies:
276
276
  version: '2.0'
277
277
  - - ">="
278
278
  - !ruby/object:Gem::Version
279
- version: 2.0.11
279
+ version: 2.0.12
280
280
  type: :development
281
281
  prerelease: false
282
282
  version_requirements: !ruby/object:Gem::Requirement
@@ -286,7 +286,7 @@ dependencies:
286
286
  version: '2.0'
287
287
  - - ">="
288
288
  - !ruby/object:Gem::Version
289
- version: 2.0.11
289
+ version: 2.0.12
290
290
  description: "☯️ Portable Markdown owner analysis and matching behavior for Structured
291
291
  Merge."
292
292
  email:
@@ -329,8 +329,10 @@ files:
329
329
  - lib/markdown/merge/output_builder.rb
330
330
  - lib/markdown/merge/partial_template_merger.rb
331
331
  - lib/markdown/merge/preservation_support.rb
332
+ - lib/markdown/merge/rspec/shared_examples/source_preserving_provider.rb
332
333
  - lib/markdown/merge/smart_merger.rb
333
334
  - lib/markdown/merge/smart_merger_base.rb
335
+ - lib/markdown/merge/source_preserving_provider.rb
334
336
  - lib/markdown/merge/table_match_algorithm.rb
335
337
  - lib/markdown/merge/table_match_refiner.rb
336
338
  - lib/markdown/merge/version.rb
@@ -343,10 +345,10 @@ licenses:
343
345
  - PolyForm-Small-Business-1.0.0
344
346
  metadata:
345
347
  homepage_uri: https://structuredmerge.org
346
- source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.1
347
- changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.1/CHANGELOG.md
348
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.4
349
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.4/CHANGELOG.md
348
350
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
349
- documentation_uri: https://www.rubydoc.info/gems/markdown-merge/7.1.1
351
+ documentation_uri: https://www.rubydoc.info/gems/markdown-merge/7.1.4
350
352
  funding_uri: https://github.com/sponsors/pboling
351
353
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
352
354
  news_uri: https://www.railsbling.com/tags/markdown-merge
metadata.gz.sig CHANGED
Binary file