markly-merge 7.0.0 → 7.1.3

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.
data/lib/markly/merge.rb CHANGED
@@ -1,15 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "markdown-merge"
4
- require "markly"
3
+ require 'markdown-merge'
4
+ require 'markly'
5
+ require_relative 'merge/version'
6
+ require_relative 'merge/backend'
5
7
 
6
8
  module Markly
7
9
  module Merge
8
- extend self
10
+ module_function
9
11
 
10
- PACKAGE_NAME = "markly-merge"
11
- BACKEND_REFERENCE = TreeHaver::BackendReference.new(id: "markly", family: "native").freeze
12
+ PACKAGE_NAME = 'markly-merge'
13
+ BACKEND_REFERENCE = TreeHaver::BackendReference.new(id: 'markly', family: 'native').freeze
12
14
  TreeHaver::BackendRegistry.register(BACKEND_REFERENCE)
15
+ Markdown::Merge::WrapperSupport.install!(
16
+ wrapper_module: self,
17
+ require_prefix: 'markly/merge',
18
+ default_freeze_token: 'markly-merge',
19
+ default_inner_merge_code_blocks: true,
20
+ registry_tag: :markly_merge,
21
+ merger_class: 'Markly::Merge::SmartMerger'
22
+ )
13
23
 
14
24
  def markdown_feature_profile
15
25
  Markdown::Merge.markdown_feature_profile
@@ -21,7 +31,9 @@ module Markly
21
31
 
22
32
  def markdown_backend_feature_profile(backend: nil)
23
33
  requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
24
- return unsupported_feature_result("Unsupported Markdown backend #{requested}.") unless requested == BACKEND_REFERENCE.id
34
+ unless requested == BACKEND_REFERENCE.id
35
+ return unsupported_feature_result("Unsupported Markdown backend #{requested}.")
36
+ end
25
37
 
26
38
  markdown_feature_profile.merge(backend: BACKEND_REFERENCE.id, backend_ref: BACKEND_REFERENCE.to_h)
27
39
  end
@@ -45,41 +57,41 @@ module Markly
45
57
  package: PACKAGE_NAME,
46
58
  backend: BACKEND_REFERENCE.id,
47
59
  structured_edit_profile: {
48
- family: "markdown",
60
+ family: 'markdown',
49
61
  structure_profile: Ast::Merge.structured_edit_structure_profile(
50
- owner_scope: "heading_sections",
51
- owner_selector: "heading_sections",
52
- owner_selector_family: "section_branch",
62
+ owner_scope: 'heading_sections',
63
+ owner_selector: 'heading_sections',
64
+ owner_selector_family: 'section_branch',
53
65
  known_owner_selector: true,
54
66
  supported_comment_regions: [],
55
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
67
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
56
68
  ),
57
69
  selection_profile: Ast::Merge.structured_edit_selection_profile(
58
- owner_scope: "heading_sections",
59
- owner_selector: "heading_sections",
60
- owner_selector_family: "section_branch",
61
- selector_kind: "heading_section",
62
- selection_intent: "section_branch",
63
- selection_intent_family: "section_branch",
70
+ owner_scope: 'heading_sections',
71
+ owner_selector: 'heading_sections',
72
+ owner_selector_family: 'section_branch',
73
+ selector_kind: 'heading_section',
74
+ selection_intent: 'section_branch',
75
+ selection_intent_family: 'section_branch',
64
76
  known_selection_intent: true,
65
77
  comment_region: nil,
66
78
  include_trailing_gap: false,
67
79
  comment_anchored: false,
68
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
80
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
69
81
  ),
70
82
  match_profile: Ast::Merge.structured_edit_match_profile(
71
- start_boundary: "owner_start",
72
- start_boundary_family: "structural_owner",
83
+ start_boundary: 'owner_start',
84
+ start_boundary_family: 'structural_owner',
73
85
  known_start_boundary: true,
74
- end_boundary: "owner_end",
75
- end_boundary_family: "structural_owner",
86
+ end_boundary: 'owner_end',
87
+ end_boundary_family: 'structural_owner',
76
88
  known_end_boundary: true,
77
- payload_kind: "section_branch",
78
- payload_family: "section_branch",
89
+ payload_kind: 'section_branch',
90
+ payload_family: 'section_branch',
79
91
  known_payload_kind: true,
80
92
  comment_anchored: false,
81
93
  trailing_gap_extended: false,
82
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
94
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
83
95
  )
84
96
  }
85
97
  }
@@ -90,37 +102,37 @@ module Markly
90
102
  package: PACKAGE_NAME,
91
103
  backend: BACKEND_REFERENCE.id,
92
104
  structured_edit_request: Ast::Merge.structured_edit_request(
93
- operation_kind: "replace",
105
+ operation_kind: 'replace',
94
106
  content: "# Title\n\n## Synopsis\n\nOld synopsis.\n\n## Install\n\nInstall text.\n",
95
- source_label: "README.md",
96
- target_selector: "Synopsis@2",
97
- target_selector_family: "section_branch",
107
+ source_label: 'README.md',
108
+ target_selector: 'Synopsis@2',
109
+ target_selector_family: 'section_branch',
98
110
  target_selection: Ast::Merge.structured_edit_target_selection(
99
- selector_kind: "heading_section",
100
- selection_intent: "section_branch",
101
- selection_intent_family: "section_branch",
111
+ selector_kind: 'heading_section',
112
+ selection_intent: 'section_branch',
113
+ selection_intent_family: 'section_branch',
102
114
  known_selection_intent: true,
103
115
  comment_region: nil,
104
116
  include_trailing_gap: false,
105
117
  comment_anchored: false,
106
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
118
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
107
119
  ),
108
120
  target_match: Ast::Merge.structured_edit_target_match(
109
- start_boundary: "owner_start",
110
- start_boundary_family: "structural_owner",
121
+ start_boundary: 'owner_start',
122
+ start_boundary_family: 'structural_owner',
111
123
  known_start_boundary: true,
112
- end_boundary: "owner_end",
113
- end_boundary_family: "structural_owner",
124
+ end_boundary: 'owner_end',
125
+ end_boundary_family: 'structural_owner',
114
126
  known_end_boundary: true,
115
- payload_kind: "section_branch",
116
- payload_family: "section_branch",
127
+ payload_kind: 'section_branch',
128
+ payload_family: 'section_branch',
117
129
  known_payload_kind: true,
118
130
  comment_anchored: false,
119
131
  trailing_gap_extended: false,
120
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
132
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
121
133
  ),
122
134
  payload_text: "## Synopsis\n\nNew synopsis.\n",
123
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
135
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
124
136
  )
125
137
  }
126
138
  end
@@ -130,23 +142,23 @@ module Markly
130
142
  package: PACKAGE_NAME,
131
143
  backend: BACKEND_REFERENCE.id,
132
144
  structured_edit_result: Ast::Merge.structured_edit_result(
133
- operation_kind: "replace",
145
+ operation_kind: 'replace',
134
146
  updated_content: "# Title\n\n## Synopsis\n\nNew synopsis.\n\n## Install\n\nInstall text.\n",
135
147
  changed: true,
136
148
  captured_text: "## Synopsis\n\nOld synopsis.\n",
137
149
  match_count: 1,
138
150
  operation_profile: Ast::Merge.structured_edit_operation_profile(
139
- operation_kind: "replace",
140
- operation_family: "rewrite",
151
+ operation_kind: 'replace',
152
+ operation_family: 'rewrite',
141
153
  known_operation_kind: true,
142
- source_requirement: "required",
143
- destination_requirement: "none",
144
- replacement_source: "explicit_text",
154
+ source_requirement: 'required',
155
+ destination_requirement: 'none',
156
+ replacement_source: 'explicit_text',
145
157
  captures_source_text: true,
146
158
  supports_if_missing: false,
147
- metadata: { source: "legacy_crispr_reference" }
159
+ metadata: { source: 'legacy_crispr_reference' }
148
160
  ),
149
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
161
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
150
162
  )
151
163
  }
152
164
  end
@@ -158,7 +170,7 @@ module Markly
158
170
  structured_edit_application: Ast::Merge.structured_edit_application(
159
171
  request: markdown_structured_edit_request_projection[:structured_edit_request],
160
172
  result: markdown_structured_edit_result_projection[:structured_edit_result],
161
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
173
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
162
174
  )
163
175
  }
164
176
  end
@@ -169,10 +181,10 @@ module Markly
169
181
  backend: BACKEND_REFERENCE.id,
170
182
  structured_edit_execution_report: Ast::Merge.structured_edit_execution_report(
171
183
  application: markdown_structured_edit_application_projection[:structured_edit_application],
172
- provider_family: "markdown",
184
+ provider_family: 'markdown',
173
185
  provider_backend: BACKEND_REFERENCE.id,
174
186
  diagnostics: [],
175
- metadata: { source: "legacy_crispr_reference" }
187
+ metadata: { source: 'legacy_crispr_reference' }
176
188
  )
177
189
  }
178
190
  end
@@ -185,34 +197,34 @@ module Markly
185
197
  structured_edit_batch_request: Ast::Merge.structured_edit_batch_request(
186
198
  requests: [
187
199
  Ast::Merge.structured_edit_request(
188
- operation_kind: "replace",
200
+ operation_kind: 'replace',
189
201
  content: content,
190
- source_label: "README.md",
191
- target_selector: "Synopsis@2",
192
- target_selector_family: "section_branch",
202
+ source_label: 'README.md',
203
+ target_selector: 'Synopsis@2',
204
+ target_selector_family: 'section_branch',
193
205
  payload_text: "## Synopsis\n\nNew synopsis.\n",
194
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
206
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
195
207
  ),
196
208
  Ast::Merge.structured_edit_request(
197
- operation_kind: "insert",
209
+ operation_kind: 'insert',
198
210
  content: content,
199
- source_label: "source",
200
- destination_selector: "/heading/usage",
201
- destination_selector_family: "section_branch",
211
+ source_label: 'source',
212
+ destination_selector: '/heading/usage',
213
+ destination_selector_family: 'section_branch',
202
214
  payload_text: "### Managed Usage\n\nInserted usage text.\n",
203
- if_missing: "append",
204
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
215
+ if_missing: 'append',
216
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
205
217
  ),
206
218
  Ast::Merge.structured_edit_request(
207
- operation_kind: "delete",
219
+ operation_kind: 'delete',
208
220
  content: content,
209
- source_label: "README.md",
210
- target_selector: "Deprecated@2",
211
- target_selector_family: "section_branch",
212
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
221
+ source_label: 'README.md',
222
+ target_selector: 'Deprecated@2',
223
+ target_selector_family: 'section_branch',
224
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
213
225
  )
214
226
  ],
215
- metadata: { batch_label: "markdown_markly_triad", source: "legacy_crispr_reference" }
227
+ metadata: { batch_label: 'markdown_markly_triad', source: 'legacy_crispr_reference' }
216
228
  )
217
229
  }
218
230
  end
@@ -227,152 +239,154 @@ module Markly
227
239
  Ast::Merge.structured_edit_execution_report(
228
240
  application: Ast::Merge.structured_edit_application(
229
241
  request: Ast::Merge.structured_edit_request(
230
- operation_kind: "replace",
242
+ operation_kind: 'replace',
231
243
  content: content,
232
- source_label: "README.md",
233
- target_selector: "Synopsis@2",
234
- target_selector_family: "section_branch",
244
+ source_label: 'README.md',
245
+ target_selector: 'Synopsis@2',
246
+ target_selector_family: 'section_branch',
235
247
  payload_text: "## Synopsis\n\nNew synopsis.\n",
236
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
248
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
237
249
  ),
238
250
  result: Ast::Merge.structured_edit_result(
239
- operation_kind: "replace",
251
+ operation_kind: 'replace',
240
252
  updated_content: "# Title\n\n## Synopsis\n\nNew synopsis.\n\n## Usage\n\nExisting text.\n\n## Deprecated\n\nDeprecated text.\n",
241
253
  changed: true,
242
254
  captured_text: "## Synopsis\n\nOld synopsis.\n",
243
255
  match_count: 1,
244
256
  operation_profile: Ast::Merge.structured_edit_operation_profile(
245
- operation_kind: "replace",
246
- operation_family: "rewrite",
257
+ operation_kind: 'replace',
258
+ operation_family: 'rewrite',
247
259
  known_operation_kind: true,
248
- source_requirement: "required",
249
- destination_requirement: "none",
250
- replacement_source: "explicit_text",
260
+ source_requirement: 'required',
261
+ destination_requirement: 'none',
262
+ replacement_source: 'explicit_text',
251
263
  captures_source_text: true,
252
264
  supports_if_missing: false,
253
- metadata: { source: "legacy_crispr_reference" }
265
+ metadata: { source: 'legacy_crispr_reference' }
254
266
  ),
255
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
267
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
256
268
  ),
257
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
269
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
258
270
  ),
259
- provider_family: "markdown",
271
+ provider_family: 'markdown',
260
272
  provider_backend: BACKEND_REFERENCE.id,
261
273
  diagnostics: [],
262
- metadata: { source: "legacy_crispr_reference" }
274
+ metadata: { source: 'legacy_crispr_reference' }
263
275
  ),
264
276
  Ast::Merge.structured_edit_execution_report(
265
277
  application: Ast::Merge.structured_edit_application(
266
278
  request: Ast::Merge.structured_edit_request(
267
- operation_kind: "insert",
279
+ operation_kind: 'insert',
268
280
  content: content,
269
- source_label: "source",
270
- destination_selector: "/heading/usage",
271
- destination_selector_family: "section_branch",
281
+ source_label: 'source',
282
+ destination_selector: '/heading/usage',
283
+ destination_selector_family: 'section_branch',
272
284
  payload_text: "### Managed Usage\n\nInserted usage text.\n",
273
- if_missing: "append",
274
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
285
+ if_missing: 'append',
286
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
275
287
  ),
276
288
  result: Ast::Merge.structured_edit_result(
277
- operation_kind: "insert",
289
+ operation_kind: 'insert',
278
290
  updated_content: "# Title\n\n## Synopsis\n\nOld synopsis.\n\n## Usage\n\nExisting text.\n### Managed Usage\n\nInserted usage text.\n\n## Deprecated\n\nDeprecated text.\n",
279
291
  changed: true,
280
292
  operation_profile: Ast::Merge.structured_edit_operation_profile(
281
- operation_kind: "insert",
282
- operation_family: "insertion",
293
+ operation_kind: 'insert',
294
+ operation_family: 'insertion',
283
295
  known_operation_kind: true,
284
- source_requirement: "none",
285
- destination_requirement: "optional",
286
- replacement_source: "explicit_text",
296
+ source_requirement: 'none',
297
+ destination_requirement: 'optional',
298
+ replacement_source: 'explicit_text',
287
299
  captures_source_text: false,
288
300
  supports_if_missing: true,
289
- metadata: { source: "legacy_crispr_reference" }
301
+ metadata: { source: 'legacy_crispr_reference' }
290
302
  ),
291
303
  destination_profile: Ast::Merge.structured_edit_destination_profile(
292
- resolution_kind: "append_fallback",
293
- resolution_source: "none",
294
- anchor_boundary: "none",
295
- resolution_family: "append",
296
- resolution_source_family: "implicit",
297
- anchor_boundary_family: "none",
304
+ resolution_kind: 'append_fallback',
305
+ resolution_source: 'none',
306
+ anchor_boundary: 'none',
307
+ resolution_family: 'append',
308
+ resolution_source_family: 'implicit',
309
+ anchor_boundary_family: 'none',
298
310
  known_resolution_kind: true,
299
311
  known_resolution_source: true,
300
312
  known_anchor_boundary: true,
301
313
  used_if_missing: true,
302
- metadata: { family: "shared", source: "legacy_crispr_reference" }
314
+ metadata: { family: 'shared', source: 'legacy_crispr_reference' }
303
315
  ),
304
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
316
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
305
317
  ),
306
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
318
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
307
319
  ),
308
- provider_family: "markdown",
320
+ provider_family: 'markdown',
309
321
  provider_backend: BACKEND_REFERENCE.id,
310
322
  diagnostics: [],
311
- metadata: { source: "legacy_crispr_reference" }
323
+ metadata: { source: 'legacy_crispr_reference' }
312
324
  ),
313
325
  Ast::Merge.structured_edit_execution_report(
314
326
  application: Ast::Merge.structured_edit_application(
315
327
  request: Ast::Merge.structured_edit_request(
316
- operation_kind: "delete",
328
+ operation_kind: 'delete',
317
329
  content: content,
318
- source_label: "README.md",
319
- target_selector: "Deprecated@2",
320
- target_selector_family: "section_branch",
321
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
330
+ source_label: 'README.md',
331
+ target_selector: 'Deprecated@2',
332
+ target_selector_family: 'section_branch',
333
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
322
334
  ),
323
335
  result: Ast::Merge.structured_edit_result(
324
- operation_kind: "delete",
336
+ operation_kind: 'delete',
325
337
  updated_content: "# Title\n\n## Synopsis\n\nOld synopsis.\n\n## Usage\n\nExisting text.\n",
326
338
  changed: true,
327
339
  captured_text: "## Deprecated\n\nDeprecated text.\n",
328
340
  match_count: 1,
329
341
  operation_profile: Ast::Merge.structured_edit_operation_profile(
330
- operation_kind: "delete",
331
- operation_family: "removal",
342
+ operation_kind: 'delete',
343
+ operation_family: 'removal',
332
344
  known_operation_kind: true,
333
- source_requirement: "required",
334
- destination_requirement: "none",
335
- replacement_source: "none",
345
+ source_requirement: 'required',
346
+ destination_requirement: 'none',
347
+ replacement_source: 'none',
336
348
  captures_source_text: true,
337
349
  supports_if_missing: false,
338
- metadata: { source: "legacy_crispr_reference" }
350
+ metadata: { source: 'legacy_crispr_reference' }
339
351
  ),
340
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
352
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
341
353
  ),
342
- metadata: { family: "markdown", provider: BACKEND_REFERENCE.id, source: "legacy_crispr_reference" }
354
+ metadata: { family: 'markdown', provider: BACKEND_REFERENCE.id, source: 'legacy_crispr_reference' }
343
355
  ),
344
- provider_family: "markdown",
356
+ provider_family: 'markdown',
345
357
  provider_backend: BACKEND_REFERENCE.id,
346
358
  diagnostics: [],
347
- metadata: { source: "legacy_crispr_reference" }
359
+ metadata: { source: 'legacy_crispr_reference' }
348
360
  )
349
361
  ],
350
362
  diagnostics: [
351
363
  {
352
- severity: "info",
353
- category: "assumed_default",
354
- message: "markdown batch preserved request ordering."
364
+ severity: 'info',
365
+ category: 'assumed_default',
366
+ message: 'markdown batch preserved request ordering.'
355
367
  }
356
368
  ],
357
- metadata: { batch_label: "markdown_markly_triad", source: "legacy_crispr_reference" }
369
+ metadata: { batch_label: 'markdown_markly_triad', source: 'legacy_crispr_reference' }
358
370
  )
359
371
  }
360
372
  end
361
373
 
362
374
  def parse_markdown(source, dialect, backend: nil)
363
375
  requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
364
- return unsupported_feature_result("Unsupported Markdown backend #{requested}.") unless requested == BACKEND_REFERENCE.id
376
+ unless requested == BACKEND_REFERENCE.id
377
+ return unsupported_feature_result("Unsupported Markdown backend #{requested}.")
378
+ end
365
379
 
366
- ::Markly.parse(source, flags: ::Markly::DEFAULT, extensions: [:table])
380
+ TreeHaver.with_backend(BACKEND_REFERENCE.id) { TreeHaver.parser_for(:markdown).parse(source) }
367
381
  normalized = Markdown::Merge.normalize_source(source)
368
382
  {
369
383
  ok: true,
370
384
  diagnostics: [],
371
385
  analysis: {
372
- kind: "markdown",
386
+ kind: 'markdown',
373
387
  dialect: dialect,
374
388
  normalized_source: normalized,
375
- root_kind: "document",
389
+ root_kind: 'document',
376
390
  owners: Markdown::Merge.collect_markdown_owners(normalized)
377
391
  },
378
392
  policies: []
@@ -380,7 +394,7 @@ module Markly
380
394
  rescue StandardError => e
381
395
  {
382
396
  ok: false,
383
- diagnostics: [{ severity: "error", category: "parse_error", message: e.message }],
397
+ diagnostics: [{ severity: 'error', category: 'parse_error', message: e.message }],
384
398
  policies: []
385
399
  }
386
400
  end
@@ -391,14 +405,19 @@ module Markly
391
405
 
392
406
  def merge_markdown(template_source, destination_source, dialect, backend: nil)
393
407
  requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
394
- return unsupported_feature_result("Unsupported Markdown backend #{requested}.") unless requested == BACKEND_REFERENCE.id
408
+ unless requested == BACKEND_REFERENCE.id
409
+ return unsupported_feature_result("Unsupported Markdown backend #{requested}.")
410
+ end
395
411
 
396
412
  Markdown::Merge.merge_markdown(template_source, destination_source, dialect)
397
413
  end
398
414
 
399
- def merge_markdown_with_reviewed_nested_outputs(template_source, destination_source, dialect, review_state, applied_children, backend: nil)
415
+ def merge_markdown_with_reviewed_nested_outputs(template_source, destination_source, dialect, review_state,
416
+ applied_children, backend: nil)
400
417
  requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
401
- return unsupported_feature_result("Unsupported Markdown backend #{requested}.") unless requested == BACKEND_REFERENCE.id
418
+ unless requested == BACKEND_REFERENCE.id
419
+ return unsupported_feature_result("Unsupported Markdown backend #{requested}.")
420
+ end
402
421
 
403
422
  Markdown::Merge.merge_markdown_with_reviewed_nested_outputs(
404
423
  template_source,
@@ -409,9 +428,12 @@ module Markly
409
428
  )
410
429
  end
411
430
 
412
- def merge_markdown_with_reviewed_nested_outputs_from_replay_bundle(template_source, destination_source, dialect, replay_bundle, backend: nil)
431
+ def merge_markdown_with_reviewed_nested_outputs_from_replay_bundle(template_source, destination_source, dialect,
432
+ replay_bundle, backend: nil)
413
433
  requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
414
- return unsupported_feature_result("Unsupported Markdown backend #{requested}.") unless requested == BACKEND_REFERENCE.id
434
+ unless requested == BACKEND_REFERENCE.id
435
+ return unsupported_feature_result("Unsupported Markdown backend #{requested}.")
436
+ end
415
437
 
416
438
  Markdown::Merge.merge_markdown_with_reviewed_nested_outputs_from_replay_bundle(
417
439
  template_source,
@@ -421,9 +443,12 @@ module Markly
421
443
  )
422
444
  end
423
445
 
424
- def merge_markdown_with_reviewed_nested_outputs_from_replay_bundle_envelope(template_source, destination_source, dialect, envelope, backend: nil)
446
+ def merge_markdown_with_reviewed_nested_outputs_from_replay_bundle_envelope(template_source, destination_source,
447
+ dialect, envelope, backend: nil)
425
448
  requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
426
- return unsupported_feature_result("Unsupported Markdown backend #{requested}.") unless requested == BACKEND_REFERENCE.id
449
+ unless requested == BACKEND_REFERENCE.id
450
+ return unsupported_feature_result("Unsupported Markdown backend #{requested}.")
451
+ end
427
452
 
428
453
  Markdown::Merge.merge_markdown_with_reviewed_nested_outputs_from_replay_bundle_envelope(
429
454
  template_source,
@@ -433,9 +458,12 @@ module Markly
433
458
  )
434
459
  end
435
460
 
436
- def merge_markdown_with_reviewed_nested_outputs_from_review_state(template_source, destination_source, dialect, review_state, backend: nil)
461
+ def merge_markdown_with_reviewed_nested_outputs_from_review_state(template_source, destination_source, dialect,
462
+ review_state, backend: nil)
437
463
  requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
438
- return unsupported_feature_result("Unsupported Markdown backend #{requested}.") unless requested == BACKEND_REFERENCE.id
464
+ unless requested == BACKEND_REFERENCE.id
465
+ return unsupported_feature_result("Unsupported Markdown backend #{requested}.")
466
+ end
439
467
 
440
468
  Markdown::Merge.merge_markdown_with_reviewed_nested_outputs_from_review_state(
441
469
  template_source,
@@ -445,9 +473,12 @@ module Markly
445
473
  )
446
474
  end
447
475
 
448
- def merge_markdown_with_reviewed_nested_outputs_from_review_state_envelope(template_source, destination_source, dialect, envelope, backend: nil)
476
+ def merge_markdown_with_reviewed_nested_outputs_from_review_state_envelope(template_source, destination_source,
477
+ dialect, envelope, backend: nil)
449
478
  requested = backend.to_s.empty? ? BACKEND_REFERENCE.id : backend.to_s
450
- return unsupported_feature_result("Unsupported Markdown backend #{requested}.") unless requested == BACKEND_REFERENCE.id
479
+ unless requested == BACKEND_REFERENCE.id
480
+ return unsupported_feature_result("Unsupported Markdown backend #{requested}.")
481
+ end
451
482
 
452
483
  Markdown::Merge.merge_markdown_with_reviewed_nested_outputs_from_review_state_envelope(
453
484
  template_source,
@@ -464,7 +495,7 @@ module Markly
464
495
  def unsupported_feature_result(message)
465
496
  {
466
497
  ok: false,
467
- diagnostics: [{ severity: "error", category: "unsupported_feature", message: message }],
498
+ diagnostics: [{ severity: 'error', category: 'unsupported_feature', message: message }],
468
499
  policies: []
469
500
  }
470
501
  end
@@ -494,3 +525,8 @@ module Markly
494
525
  )
495
526
  end
496
527
  end
528
+
529
+ require_relative 'merge/provider'
530
+ Markly::Merge.register_provider!
531
+
532
+ Markly::Merge.ensure_backend_loaded!
data/lib/markly-merge.rb CHANGED
@@ -1,3 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "markly/merge"
3
+ require_relative 'markly/merge'
4
+ require 'version_gem'
5
+ require_relative 'markly/merge/version'
6
+
7
+ Markly::Merge::Version.class_eval do
8
+ extend VersionGem::Basic
9
+ end
@@ -0,0 +1,15 @@
1
+ module Markly
2
+ module Merge
3
+ module Version
4
+ VERSION: String
5
+ end
6
+ VERSION: String
7
+
8
+ class Provider < Markdown::Merge::SourcePreservingProvider
9
+ def initialize: () -> void
10
+ end
11
+
12
+ def self.merge_provider: () -> Provider
13
+ def self.register_provider!: (?replace: bool) -> untyped
14
+ end
15
+ end
data.tar.gz.sig CHANGED
Binary file