bash-merge 7.1.9 → 7.1.11

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: fccd05f8020f601e0ea803a9451a578b46313ad3f0ce3c2315af7b6169c33e75
4
- data.tar.gz: e2ef11053b28cd3b096d283af2f11e6677bae23748f14f15bc47dd6656cd9d1a
3
+ metadata.gz: 123dae7219ce26037d3297a38241d4558ab5a04eb6900321f32754a34f3d1d8a
4
+ data.tar.gz: 309f9daa0c1003f1b4c315926d78f50de7b71364460653ce3ddac60c27a35652
5
5
  SHA512:
6
- metadata.gz: 6e5b840951062a0ad95cc5cb3c949225578d66ccc7cecfe35392934970af7f920e4978184def079fdbfbf996ccae3bb0748bfd35f53e3c3462486086d78e0518
7
- data.tar.gz: 71b1562ed0617c4f2e1fb3c294019eb6e0421c129d6bdd18d0dd56c825929424881c07311c6d082ebf94edccdf0483f252b0fd85fe516abbd4bd439dbfb3156a
6
+ metadata.gz: 6b576340b074ff3bf0774da61434d97b950229e3adb0050e3581a1506d84de9a01ce39277b38d8baa561cdd5239e01dc9b8c03d59ffba5062223ad51ae04e51d
7
+ data.tar.gz: 5d84127744a77716c69a7f345333ed3d18594f7241b450acabb20321e762cec4343f470c60ae9dc48ba3f003337e303569cc59bded249ffb8ceb765654787c1d
checksums.yaml.gz.sig CHANGED
Binary file
@@ -230,6 +230,10 @@ module Bash
230
230
  # TreeHaver handles backend selection against the grammars Bash::Merge
231
231
  # has already registered during bootstrap.
232
232
  # Set TREE_HAVER_BACKEND=ffi for bash (MRI/Rust have compatibility issues)
233
+ if @parser_path && (TreeHaver.current_backend_id || ENV['TREE_HAVER_BACKEND']).to_s == 'rust_tslp'
234
+ raise TreeHaver::NotAvailable, 'Rust TSLP fallback does not support an explicit parser path'
235
+ end
236
+
233
237
  parser = if @parser_path
234
238
  TreeHaver.with_language_registration(
235
239
  :bash,
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ast/merge'
4
+ require 'ast/merge/typed_core_provider'
5
+
6
+ module Bash
7
+ module Merge
8
+ # Opt-in Rust provider for the portable top-level function/assignment and
9
+ # literal-title test-harness subset. Compatibility name, not a prototype dependency.
10
+ class RustHostProvider < Ast::Merge::TypedCoreProvider
11
+ PROVIDER_ID = 'rust.bash'
12
+ FAMILY = 'bash'
13
+ DIALECTS = [:bash].freeze
14
+ OPERATIONS = %i[analyze diff2 merge2 merge3].freeze
15
+ CORE_PROVIDER = 'kernel.bash'
16
+ CORE_PROFILE = 'kernel.bash.owners.v1'
17
+ PACKAGE = 'bash-merge'
18
+
19
+ def capabilities
20
+ super.merge(ast_ownership: :top_level_functions_assignments_and_literal_test_titles).freeze
21
+ end
22
+
23
+ private
24
+
25
+ def package_version = Bash::Merge::Version::VERSION
26
+ def parser_language(dialect) = dialect
27
+ def owner_path(owner) = owner.fetch('id')
28
+
29
+ def additional_fields = %i[path_name labels conflict_marker_size]
30
+
31
+ def policy(operation, request)
32
+ # Git supplies neutral framing even to non-rendering providers. A path
33
+ # is context, never a language selector. This profile emits no markers:
34
+ # accept only empty labels and the default width, not custom requests.
35
+ labels = request.fetch(:labels, {})
36
+ width = request[:conflict_marker_size]
37
+ width = Integer(width, 10) if width.is_a?(String)
38
+ unless labels == {} && (width.nil? || (width.is_a?(Integer) && width == 7))
39
+ raise ArgumentError, 'Typed Bash does not support custom conflict markers or labels'
40
+ end
41
+
42
+ super
43
+ end
44
+ end
45
+ end
46
+ end
@@ -5,7 +5,7 @@ module Bash
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = '7.1.9'
8
+ VERSION = '7.1.11'
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
data/lib/bash/merge.rb CHANGED
@@ -120,6 +120,7 @@ module Bash
120
120
  autoload :MergeResult, 'bash/merge/merge_result'
121
121
  autoload :NodeWrapper, 'bash/merge/node_wrapper'
122
122
  autoload :Provider, 'bash/merge/provider'
123
+ autoload :RustHostProvider, 'bash/merge/rust_host_provider'
123
124
  autoload :SmartMerger, 'bash/merge/smart_merger'
124
125
 
125
126
  class << self
@@ -144,6 +145,14 @@ module Bash
144
145
  availability(source: source).available?
145
146
  end
146
147
 
148
+ def rust_host_provider
149
+ @rust_host_provider ||= RustHostProvider.new
150
+ end
151
+
152
+ def register_rust_host_provider!(replace: false)
153
+ Ast::Merge.register_provider(rust_host_provider, replace: replace)
154
+ end
155
+
147
156
  def availability(source: "#!/usr/bin/env bash\necho hello\n")
148
157
  diagnostics = []
149
158
  grammar_path = bash_grammar_path(diagnostics)
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bash-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.9
4
+ version: 7.1.11
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.9
46
+ version: 7.1.11
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.9
53
+ version: 7.1.11
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.9
60
+ version: 7.1.11
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.9
67
+ version: 7.1.11
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: '3.0'
94
+ version: '3.1'
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: 3.0.34
97
+ version: 3.1.8
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: '3.0'
104
+ version: '3.1'
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
- version: 3.0.34
107
+ version: 3.1.8
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.3
185
+ version: 3.2.5
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.3
195
+ version: 3.2.5
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.21
205
+ version: 2.0.23
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.21
215
+ version: 2.0.23
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.7
225
+ version: 3.2.14
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.7
235
+ version: 3.2.14
236
236
  - !ruby/object:Gem::Dependency
237
237
  name: ruby-progressbar
238
238
  requirement: !ruby/object:Gem::Requirement
@@ -256,7 +256,7 @@ dependencies:
256
256
  version: '1.0'
257
257
  - - ">="
258
258
  - !ruby/object:Gem::Version
259
- version: 1.0.8
259
+ version: 1.0.9
260
260
  type: :development
261
261
  prerelease: false
262
262
  version_requirements: !ruby/object:Gem::Requirement
@@ -266,7 +266,7 @@ dependencies:
266
266
  version: '1.0'
267
267
  - - ">="
268
268
  - !ruby/object:Gem::Version
269
- version: 1.0.8
269
+ version: 1.0.9
270
270
  - !ruby/object:Gem::Dependency
271
271
  name: gitmoji-regex
272
272
  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.12
279
+ version: 2.0.15
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.12
289
+ version: 2.0.15
290
290
  description: "☯️ Bash statement, comment, freeze-block, and template merge behavior
291
291
  for Structured Merge."
292
292
  email:
@@ -307,6 +307,7 @@ files:
307
307
  - lib/bash/merge/merge_result.rb
308
308
  - lib/bash/merge/node_wrapper.rb
309
309
  - lib/bash/merge/provider.rb
310
+ - lib/bash/merge/rust_host_provider.rb
310
311
  - lib/bash/merge/smart_merger.rb
311
312
  - lib/bash/merge/test_harness_identity.rb
312
313
  - lib/bash/merge/version.rb
@@ -317,10 +318,10 @@ licenses:
317
318
  - PolyForm-Small-Business-1.0.0
318
319
  metadata:
319
320
  homepage_uri: https://structuredmerge.org
320
- source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.9
321
- changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.9/CHANGELOG.md
321
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.11
322
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.11/CHANGELOG.md
322
323
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
323
- documentation_uri: https://www.rubydoc.info/gems/bash-merge/7.1.9
324
+ documentation_uri: https://www.rubydoc.info/gems/bash-merge/7.1.11
324
325
  funding_uri: https://github.com/sponsors/pboling
325
326
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
326
327
  news_uri: https://www.railsbling.com/tags/bash-merge
@@ -350,7 +351,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
351
  - !ruby/object:Gem::Version
351
352
  version: '0'
352
353
  requirements: []
353
- rubygems_version: 4.0.17
354
+ rubygems_version: 4.0.20
354
355
  specification_version: 4
355
356
  summary: "☯️ Structured Merge Bash analysis and merge for Ruby"
356
357
  test_files: []
metadata.gz.sig CHANGED
Binary file