kettle-jem 7.1.30 → 7.1.31

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: 8009dad8893b30d251357d02f553a4d32af34d29bffcb274ce911eeb69d30326
4
- data.tar.gz: 3b19519b494622d3c73ef6e6f92ef94cd82230a98351969bd00cea49a6d6bdbc
3
+ metadata.gz: 72080ed4328ab88ec3f072b8ff69c25ebc860a4fa031e6e31823f772bf03634d
4
+ data.tar.gz: 9ec43997a3b28a2f5bc8dd34329ba5163d44c14dc9d1adc3bd9481cd371a4e35
5
5
  SHA512:
6
- metadata.gz: fe7724acb8c7af1f5f2a2f58e18b601aef0e94b74555c70215b5f2fd78e5119a05c5641df4e2352c25464f48cfadbf48b83737050966ea96f48d6ef7e1fd1215
7
- data.tar.gz: 51286f474e10f2da5e83c19672ae074f175cbcb41dbc813adeb4bc57d5f05328192335eb31e1854f362a925ec97ea10d3351b57570cf8dd5146250e54ed3e44c
6
+ metadata.gz: be2909725b124b1e5f6978ab245e6146ecd95356114f4cf6f65a5afb2b33f4102f6a42b2071ea1fcca6fabc498c470f7c0143e5ded8e60c81a72be6eb76e1c0d
7
+ data.tar.gz: 6e5e18919a00858625ed6da7cb694059807c933d88dbc89e0e4b74a54325c19e447c7c1310e007dd53bdccb9c450c49b2ed5b8b85fb76af69018e1cdb4bbb7ab
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,29 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [7.1.31] - 2026-10-17
34
+
35
+ - TAG: [v7.1.31][7.1.31t]
36
+ - COVERAGE: 93.48% -- 11335/12125 lines in 17 files
37
+ - BRANCH COVERAGE: 77.15% -- 4881/6327 branches in 17 files
38
+ - 19.72% documented
39
+
40
+ ### Changed
41
+
42
+ - [kc] kettle-jem-deps-floor: Update kettle-jem template dependency floors:
43
+ - kettle-changelog (>= 1.0.10 -> >= 1.0.12)
44
+ - kettle-dev (>= 3.1.13 -> >= 3.1.15)
45
+ - kettle-drift (>= 1.0.16 -> >= 1.0.17)
46
+ - kettle-family (>= 1.3.10 -> >= 1.3.11)
47
+ - kettle-soup-cover (>= 3.0.12 -> >= 3.0.13)
48
+ - kettle-test (>= 2.0.25 -> >= 2.0.27)
49
+ - nomono (>= 1.1.7 -> >= 1.1.8)
50
+
51
+ - [kc] kettle-jem-workflow-pins: Update pinned GitHub Actions in kettle-jem templates:
52
+ - github/codeql-action/analyze v4.38.3 (24c54180a607b1449ed407dd24f251e4e9147c8d) -> v4.39.0 (6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee)
53
+ - github/codeql-action/autobuild v4.38.3 (24c54180a607b1449ed407dd24f251e4e9147c8d) -> v4.39.0 (6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee)
54
+ - github/codeql-action/init v4.38.3 (24c54180a607b1449ed407dd24f251e4e9147c8d) -> v4.39.0 (6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee)
55
+
33
56
  ## [7.1.30] - 2026-10-15
34
57
 
35
58
  - TAG: [v7.1.30][7.1.30t]
@@ -2264,7 +2287,9 @@ Please file a bug if you notice a violation of semantic versioning.
2264
2287
  - Released kettle-jem as part of the initial StructuredMerge Ruby 7.0.0 gem set.
2265
2288
  - Included packaged templates and parser-backed merge support for Ruby gem templating.
2266
2289
 
2267
- [Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.30...HEAD
2290
+ [Unreleased]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.31...HEAD
2291
+ [7.1.31]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.30...v7.1.31
2292
+ [7.1.31t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.31
2268
2293
  [7.1.30]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.29...v7.1.30
2269
2294
  [7.1.30t]: https://github.com/structuredmerge/structuredmerge-ruby/releases/tag/v7.1.30
2270
2295
  [7.1.29]: https://github.com/structuredmerge/structuredmerge-ruby/compare/v7.1.28...v7.1.29
data/README.md CHANGED
@@ -807,7 +807,7 @@ If none of the available licenses suit your use case, please [contact us](mailto
807
807
  [📌gitmoji]: https://gitmoji.dev
808
808
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
809
809
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
810
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-12.149-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
810
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-12.125-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
811
811
  [🔐security]: https://github.com/structuredmerge/structuredmerge-ruby/blob/main/SECURITY.md
812
812
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
813
813
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -118,7 +118,7 @@ Gem::Specification.new do |spec|
118
118
  # and preferably a modular one (see gemfiles/modular/*.gemfile).
119
119
 
120
120
  # Dev, Test, & Release Tasks
121
- spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.13") # ruby >= {KJ|MIN_TEST_RUBY}
121
+ spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.15") # ruby >= {KJ|MIN_TEST_RUBY}
122
122
 
123
123
  # Security
124
124
  spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0
@@ -133,7 +133,7 @@ Gem::Specification.new do |spec|
133
133
  # Loads version files in anonymous namespaces for coverage without constant redefinition warnings.
134
134
  spec.add_development_dependency("anonymous_loader", "~> 0.1", ">= 0.1.3") # ruby >= 2.2.0
135
135
  spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.5") # ruby >= 1.8.7, for testing against multiple versions of dependencies
136
- spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.25") # ruby >= {KJ|MIN_TEST_RUBY}
136
+ spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.27") # ruby >= {KJ|MIN_TEST_RUBY}
137
137
  spec.add_development_dependency("turbo_tests2", "~> 4.0", ">= 4.0.0") # ruby >= 2.4.0, default kettle-test runner
138
138
 
139
139
  # Releasing
@@ -7,7 +7,7 @@
7
7
  if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero?
8
8
  # Coverage (remote/released)
9
9
  platform :mri do
10
- gem "kettle-soup-cover", "~> 3.0", ">= 3.0.12", require: false
10
+ gem "kettle-soup-cover", "~> 3.0", ">= 3.0.13", require: false
11
11
  end
12
12
  else
13
13
  eval_gemfile "coverage_local.gemfile"
@@ -24,7 +24,7 @@ end
24
24
 
25
25
  if kettle_remote
26
26
  # Template/plugin checks for released installs.
27
- gem "kettle-drift", "~> 1.0", ">= 1.0.16", require: false
27
+ gem "kettle-drift", "~> 1.0", ">= 1.0.17", require: false
28
28
  end
29
29
 
30
30
  # Set STRUCTUREDMERGE_DEV=/path/to/structuredmerge/ruby/gems for local development with path-based dependencies.
@@ -6,7 +6,7 @@ shimmed_gem_path = ENV["KETTLE_JEM_SHIMMED_GEM_PATH"].to_s
6
6
  gem "{KJ|SHIMMED_GEM_NAME}", path: shimmed_gem_path unless shimmed_gem_path.empty?
7
7
 
8
8
  # Local workspace dependency wiring for templating_local.gemfile overrides.
9
- gem "nomono", "~> 1.1", ">= 1.1.7", require: false # ruby >= 3.2.0
9
+ gem "nomono", "~> 1.1", ">= 1.1.8", require: false # ruby >= 3.2.0
10
10
 
11
11
  # Templating and the StructuredMerge family share this modular Gemfile.
12
12
  # kettle-jem needs StructuredMerge to template, and kettle-changelog needs it at
@@ -30,13 +30,13 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency "{KJ|SHIMMED_GEM_NAME}"
31
31
 
32
32
  # Dev, Test, & Release Tasks
33
- spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.13") # ruby >= {KJ|MIN_TEST_RUBY}
33
+ spec.add_development_dependency("kettle-dev", "~> 3.1", ">= 3.1.15") # ruby >= {KJ|MIN_TEST_RUBY}
34
34
 
35
35
  # Tasks
36
36
  spec.add_development_dependency "rake", "~> 13.0"
37
37
 
38
38
  # Testing
39
- spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.25") # ruby >= {KJ|MIN_TEST_RUBY}
39
+ spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.27") # ruby >= {KJ|MIN_TEST_RUBY}
40
40
  spec.add_development_dependency "rspec", "~> 3.12"
41
41
 
42
42
  # Releasing
@@ -5,7 +5,7 @@ module Kettle
5
5
  # Version namespace for this gem.
6
6
  module Version
7
7
  # Current gem version.
8
- VERSION = "7.1.30"
8
+ VERSION = "7.1.31"
9
9
  end
10
10
  # Current gem version exposed at the traditional constant location.
11
11
  VERSION = Version::VERSION # Traditional Constant Location
data/lib/kettle/jem.rb CHANGED
@@ -16,6 +16,7 @@ require "addressable/uri"
16
16
  require "token/resolver"
17
17
  require "yaml"
18
18
  require "ast/merge"
19
+ require "ast/template"
19
20
  require "ast/crispr/markdown/markly"
20
21
  require "markdown/merge"
21
22
  require "kettle/ndjson"
@@ -61,11 +62,11 @@ module Kettle
61
62
  # set in place before Bundler is allowed to evaluate that destination.
62
63
  TEMPLATE_MANAGED_DEPENDENCIES = [
63
64
  {name: PACKAGE_NAME, requirements: ["~> 7.1", ">= 7.1.28"], bootstrap: false},
64
- {name: "nomono", requirements: ["~> 1.1", ">= 1.1.7"], bootstrap: true},
65
- {name: "kettle-dev", requirements: ["~> 3.1", ">= 3.1.13"], bootstrap: true},
65
+ {name: "nomono", requirements: ["~> 1.1", ">= 1.1.8"], bootstrap: true},
66
+ {name: "kettle-dev", requirements: ["~> 3.1", ">= 3.1.15"], bootstrap: true},
66
67
  {
67
68
  name: "kettle-changelog",
68
- requirements: ["~> 1.0", ">= 1.0.10"],
69
+ requirements: ["~> 1.0", ">= 1.0.12"],
69
70
  bootstrap: true,
70
71
  ruby_requirement: ">= 4.0.0"
71
72
  }
@@ -542,9 +543,10 @@ module Kettle
542
543
  }.freeze
543
544
  README_KLOC_BADGE_PATTERN = /(\[🧮kloc-img\]:\s*https?:\/\/img\.shields\.io\/badge\/KLOC-)(\d+(?:\.\d+)?)(-[^\s]*)/
544
545
  CHANGELOG_COVERAGE_KLOC_PATTERN = /-\s*COVERAGE:\s*.+--\s*\d+\/(\d+)\s+lines/i
545
- RUBY_TEMPLATE_BASENAMES = %w[Gemfile Rakefile Appraisals Appraisal.root.gemfile .simplecov].freeze
546
- RUBY_TEMPLATE_SUFFIXES = %w[.gemspec .gemfile].freeze
547
- RUBY_TEMPLATE_EXTENSIONS = %w[.rb .rake].freeze
546
+ # Aliased to the ast-template single source (slice-1043); do not edit here.
547
+ RUBY_TEMPLATE_BASENAMES = Ast::Template::FileTypes::RUBY_BASENAMES
548
+ RUBY_TEMPLATE_SUFFIXES = Ast::Template::FileTypes::RUBY_SUFFIXES
549
+ RUBY_TEMPLATE_EXTENSIONS = Ast::Template::FileTypes::RUBY_EXTENSIONS
548
550
  TEMPLATE_TOKEN_CONFIG = Token::Resolver::Config.new(separators: ["|", ":"]).freeze
549
551
  EMPTY_TEMPLATE_TOKENS = %w[
550
552
  KJ|CB:USER
@@ -5118,11 +5120,11 @@ module Kettle
5118
5120
  [
5119
5121
  {name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.5"\n)},
5120
5122
  {name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)},
5121
- {name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.1", ">= 3.1.13"\n)},
5122
- {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.16"\n)},
5123
- {name: "kettle-family", source: %(gem "kettle-family", "~> 1.3", ">= 1.3.10"\n)},
5123
+ {name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.1", ">= 3.1.15"\n)},
5124
+ {name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.17"\n)},
5125
+ {name: "kettle-family", source: %(gem "kettle-family", "~> 1.3", ">= 1.3.11"\n)},
5124
5126
  {name: PACKAGE_NAME, source: kettle_jem_dependency_source},
5125
- {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.25"\n)},
5127
+ {name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.27"\n)},
5126
5128
  {name: "rake", source: %(gem "rake", "~> 13.0"\n)},
5127
5129
  {name: "rspec", source: %(gem "rspec", "~> 3.0"\n)},
5128
5130
  {name: "stone_checksums", source: %(gem "stone_checksums", "~> 1.0", ">= 1.0.9"\n)},
@@ -6821,7 +6823,7 @@ module Kettle
6821
6823
 
6822
6824
  def apply_template_source(project_root, recipe, original, facts: nil, env: ENV, template_contents: nil)
6823
6825
  strategy = recipe.dig(:template_preference, :strategy).to_s
6824
- return original if strategy == "keep_destination"
6826
+ return original if Ast::Template::Strategies.keep_destination?(strategy)
6825
6827
 
6826
6828
  content = recipe_template_content(project_root, recipe, template_contents: template_contents)
6827
6829
  return finalize_github_workflow_template(content, facts) if strategy == "raw_copy" && github_workflow_template_recipe?(recipe)
@@ -7617,7 +7619,8 @@ module Kettle
7617
7619
 
7618
7620
  def merge_config_template_source(recipe, template_content, destination_content, facts: nil, env: ENV)
7619
7621
  file_type = template_file_type(recipe)
7620
- if destination_content.to_s.strip.empty?
7622
+ trivial_outcome = Ast::Template::Strategies.trivial_merge_outcome(template_content, destination_content)
7623
+ if trivial_outcome == :empty_destination
7621
7624
  if file_type == :gemfile
7622
7625
  return finalize_gemfile_template_source(recipe, template_content, destination_content, facts: facts, template_content: template_content)
7623
7626
  end
@@ -7626,7 +7629,7 @@ module Kettle
7626
7629
 
7627
7630
  return template_content
7628
7631
  end
7629
- if destination_content == template_content
7632
+ if trivial_outcome == :identical
7630
7633
  if file_type == :gemfile
7631
7634
  return finalize_gemfile_template_source(recipe, destination_content, destination_content, facts: facts, template_content: template_content)
7632
7635
  end
@@ -7648,20 +7651,20 @@ module Kettle
7648
7651
  end
7649
7652
  merge_result = merge_ruby_template_source(file_type, recipe, template_content, merge_destination, facts: facts)
7650
7653
  when :yaml
7651
- merge_result = Psych::Merge.merge_yaml(
7654
+ merge_result = Ast::Template::MergeDispatch.dispatch(
7655
+ :yaml,
7652
7656
  template_content,
7653
7657
  destination_content,
7654
- "yaml",
7655
7658
  **yaml_merge_options(recipe)
7656
7659
  )
7657
7660
  when :toml
7658
- merge_result = Citrus::Toml::Merge.merge_toml(template_content, destination_content, "toml")
7661
+ merge_result = Ast::Template::MergeDispatch.dispatch(:toml, template_content, destination_content)
7659
7662
  when :json, :jsonc, :json5
7660
7663
  merge_result = merge_json_template_source(template_content, destination_content, recipe, file_type)
7661
7664
  when :markdown
7662
7665
  return merge_changelog_template_source(template_content, destination_content, facts: facts) if recipe.fetch(:target_path) == "CHANGELOG.md"
7663
7666
 
7664
- merge_result = Markdown::Merge.merge_markdown(template_content, destination_content, "markdown")
7667
+ merge_result = Ast::Template::MergeDispatch.dispatch(:markdown, template_content, destination_content)
7665
7668
  when :dotenv
7666
7669
  merge_result = merge_dotenv_template_source(template_content, destination_content, recipe)
7667
7670
  when :rbs
@@ -12616,31 +12619,10 @@ module Kettle
12616
12619
  end
12617
12620
 
12618
12621
  def template_file_type(recipe)
12619
- configured = recipe.dig(:template_preference, :file_type).to_s
12620
- return configured.to_sym unless configured.empty?
12621
-
12622
- relative_path = recipe.fetch(:target_path).to_s
12623
- basename = File.basename(relative_path)
12624
- extension = File.extname(relative_path).downcase
12625
- return :gitignore if basename == ".gitignore"
12626
- return :gemfile if basename == "Gemfile" || basename.end_with?(".gemfile")
12627
- return :appraisals if basename.start_with?("Appraisals") || basename == "Appraisal.root.gemfile"
12628
- return :gemspec if basename.end_with?(".gemspec")
12629
- return :rakefile if basename == "Rakefile" || extension == ".rake"
12630
- return :ruby if RUBY_TEMPLATE_BASENAMES.include?(basename) ||
12631
- RUBY_TEMPLATE_SUFFIXES.any? { |suffix| basename.end_with?(suffix) } ||
12632
- RUBY_TEMPLATE_EXTENSIONS.include?(extension)
12633
- return :yaml if extension.match?(/\A\.ya?ml\z/) || File.basename(relative_path).casecmp("citation.cff").zero?
12634
- return :toml if extension == ".toml"
12635
- return :jsonc if relative_path == ".devcontainer/devcontainer.json"
12636
- return :jsonc if extension == ".jsonc"
12637
- return :json5 if extension == ".json5"
12638
- return :json if extension == ".json"
12639
- return :markdown if extension.match?(/\A\.md(?:own)?\z/)
12640
- return :dotenv if basename.start_with?(".env") || basename.end_with?(".env") || extension == ".env"
12641
- return :rbs if extension == ".rbs"
12642
-
12643
- :text
12622
+ Ast::Template::FileTypes.detect(
12623
+ recipe.fetch(:target_path).to_s,
12624
+ configured: recipe.dig(:template_preference, :file_type)
12625
+ )
12644
12626
  end
12645
12627
 
12646
12628
  def merge_gitignore_template_source(template_content, destination_content)
@@ -15845,7 +15827,7 @@ module Kettle
15845
15827
  def main_gemfile_kettle_family_gem(package_name)
15846
15828
  return "" if package_name.to_s == "kettle-family"
15847
15829
 
15848
- %(gem "kettle-family", "~> 1.3", ">= 1.3.10"\n)
15830
+ %(gem "kettle-family", "~> 1.3", ">= 1.3.11"\n)
15849
15831
  end
15850
15832
 
15851
15833
  def main_gemfile_nomono_bootstrap(package_name)
@@ -15858,7 +15840,7 @@ module Kettle
15858
15840
  end
15859
15841
 
15860
15842
  def nomono_gemfile_declaration
15861
- %(gem "nomono", "~> 1.1", ">= 1.1.7", require: false # ruby >= 3.2.0)
15843
+ %(gem "nomono", "~> 1.1", ">= 1.1.8", require: false # ruby >= 3.2.0)
15862
15844
  end
15863
15845
 
15864
15846
  def local_gemfile_nomono_bootstrap(_package_name)
@@ -15870,7 +15852,7 @@ module Kettle
15870
15852
  # Bootstrapping nomono here cannot rely on a plain `gem "nomono", ...` line.
15871
15853
  # Bundler records that dependency during Gemfile evaluation, but it does not
15872
15854
  # activate that exact version before the immediate `require "nomono/bundler"`.
15873
- nomono_activation_requirements = ["~> 1.1", ">= 1.1.7"]
15855
+ nomono_activation_requirements = ["~> 1.1", ">= 1.1.8"]
15874
15856
  nomono_requirement = Gem::Requirement.new(nomono_activation_requirements)
15875
15857
  nomono_already_activated = Gem.loaded_specs["nomono"]
15876
15858
  nomono_lockfile = File.expand_path(#{lockfile_path.inspect}, __dir__)
@@ -18260,15 +18242,15 @@ module Kettle
18260
18242
  end
18261
18243
 
18262
18244
  def resolve_template_tokens(content, tokens, scan_unresolved: true)
18263
- resolver = Token::Resolver::Resolve.new(on_missing: :keep)
18264
- document = Token::Resolver::Document.new(content.to_s, config: TEMPLATE_TOKEN_CONFIG)
18265
- resolved = resolver.resolve(document, stringify_template_tokens(tokens))
18266
- return resolved unless scan_unresolved
18267
-
18268
- unresolved = Token::Resolver::Document.new(resolved, config: TEMPLATE_TOKEN_CONFIG).token_keys.grep(/\AKJ\|/).sort
18269
- return resolved if unresolved.empty?
18270
-
18271
- raise ArgumentError, "unresolved kettle-jem template tokens: #{unresolved.map { |token| "{#{token}}" }.join(", ")}"
18245
+ Ast::Template::TokenApplication.apply_tokens(
18246
+ content,
18247
+ tokens,
18248
+ config: TEMPLATE_TOKEN_CONFIG,
18249
+ namespace: "KJ",
18250
+ scan_unresolved: scan_unresolved
18251
+ )
18252
+ rescue Ast::Template::TokenApplication::UnresolvedTokensError => e
18253
+ raise ArgumentError, "unresolved kettle-jem template tokens: #{e.tokens.map { |token| "{#{token}}" }.join(", ")}"
18272
18254
  end
18273
18255
 
18274
18256
  def assert_no_unresolved_template_tokens_in_yaml_values(content, label)
@@ -18281,7 +18263,11 @@ module Kettle
18281
18263
 
18282
18264
  def yaml_scalar_value_template_tokens(content)
18283
18265
  yaml_scalar_pairs(content).flat_map do |_key_node, value_node|
18284
- Token::Resolver::Document.new(value_node.value.to_s, config: TEMPLATE_TOKEN_CONFIG).token_keys.grep(/\AKJ\|/)
18266
+ Ast::Template::TokenApplication.unresolved_namespaced_tokens(
18267
+ value_node.value.to_s,
18268
+ config: TEMPLATE_TOKEN_CONFIG,
18269
+ namespace: "KJ"
18270
+ )
18285
18271
  end.uniq
18286
18272
  end
18287
18273
 
@@ -18514,7 +18500,7 @@ module Kettle
18514
18500
  end
18515
18501
 
18516
18502
  def stringify_template_tokens(tokens)
18517
- tokens.to_h.transform_keys(&:to_s).transform_values(&:to_s)
18503
+ Ast::Template::TokenApplication.stringify_replacements(tokens)
18518
18504
  end
18519
18505
 
18520
18506
  def falsey_config?(value)
@@ -20765,9 +20751,9 @@ module Kettle
20765
20751
  "actions/upload-artifact" => "actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2",
20766
20752
  "amancevice/setup-code-climate" => "amancevice/setup-code-climate@0daf2985a225e8ac15975b4d233010e94d65b76a # v2",
20767
20753
  "actions/dependency-review-action" => "actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0",
20768
- "github/codeql-action/init" => "github/codeql-action/init@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3",
20769
- "github/codeql-action/autobuild" => "github/codeql-action/autobuild@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3",
20770
- "github/codeql-action/analyze" => "github/codeql-action/analyze@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3",
20754
+ "github/codeql-action/init" => "github/codeql-action/init@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0",
20755
+ "github/codeql-action/autobuild" => "github/codeql-action/autobuild@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0",
20756
+ "github/codeql-action/analyze" => "github/codeql-action/analyze@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0",
20771
20757
  "pozil/auto-assign-issue" => "pozil/auto-assign-issue@af6beea6bdf1e8eb373f061c5bc168681fc6d011 # v4.0.1",
20772
20758
  "apache/skywalking-eyes/dependency" => "apache/skywalking-eyes/dependency@a196742f472feaffafea537ce5a2a4c3c53a8de4 # v0.9.0",
20773
20759
  "sarisia/actions-status-discord" => "sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0"
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kettle-jem
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.30
4
+ version: 7.1.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -117,6 +117,26 @@ dependencies:
117
117
  - - ">="
118
118
  - !ruby/object:Gem::Version
119
119
  version: 7.1.8
120
+ - !ruby/object:Gem::Dependency
121
+ name: ast-template
122
+ requirement: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '7.1'
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: 7.1.11
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '7.1'
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: 7.1.11
120
140
  - !ruby/object:Gem::Dependency
121
141
  name: bash-merge
122
142
  requirement: !ruby/object:Gem::Requirement
@@ -977,10 +997,10 @@ licenses:
977
997
  - PolyForm-Small-Business-1.0.0
978
998
  metadata:
979
999
  homepage_uri: https://structuredmerge.org
980
- source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.30
981
- changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.30/CHANGELOG.md
1000
+ source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.31
1001
+ changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.31/CHANGELOG.md
982
1002
  bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
983
- documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.30
1003
+ documentation_uri: https://www.rubydoc.info/gems/kettle-jem/7.1.31
984
1004
  funding_uri: https://github.com/sponsors/pboling
985
1005
  wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
986
1006
  news_uri: https://www.railsbling.com/tags/kettle-jem
metadata.gz.sig CHANGED
Binary file