Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Jan 14, 2026

Bumps haml from 6.3.0 to 7.2.0.

Release notes

Sourced from haml's releases.

v7.2.0

What's Changed

New Contributors

Full Changelog: haml/haml@v7.1.0...v7.2.0

v7.1.0

What's Changed

New Contributors

Full Changelog: haml/haml@v7.0.2...v7.1.0

v7.0.2

What's Changed

New Contributors

Full Changelog: haml/haml@v7.0.1...v7.0.2

v7.0.1

What's Changed

New Contributors

Full Changelog: haml/haml@v7.0.0...v7.0.1

v7.0.0

What's Changed

Full Changelog: haml/haml@v6.4.0...v7.0.0

v6.4.0

... (truncated)

Changelog

Sourced from haml's changelog.

7.2.0

7.1.0

  • Support xhtml format for boolean nested data attributes haml/haml#1200

7.0.2

7.0.1

7.0.0

6.4.0

6.3.1

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [haml](https://github.com/haml/haml) from 6.3.0 to 7.2.0.
- [Release notes](https://github.com/haml/haml/releases)
- [Changelog](https://github.com/haml/haml/blob/main/CHANGELOG.md)
- [Commits](haml/haml@v6.3.0...v7.2.0)

---
updated-dependencies:
- dependency-name: haml
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies ruby Pull requests that update Ruby code labels Jan 14, 2026
4 similar comments
@github-actions
Copy link
Contributor

gem compare haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT date:
    6.3.0: 2023-12-10 00:00:00 UTC
    7.2.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    6.3.0: {"rubygems_mfa_required" => "true"}
    7.2.0: {"rubygems_mfa_required" => "true", "changelog_uri" => "https://github.com/haml/haml/releases", "source_code_uri" => "https://github.com/haml/haml"}
  DIFFERENT required_ruby_version:
    6.3.0: >= 2.1.0
    7.2.0: >= 3.2.0
  DIFFERENT rubygems_version:
    6.3.0: 3.4.10
    7.2.0: 3.6.7
  DIFFERENT version:
    6.3.0: 6.3.0
    7.2.0: 7.2.0
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
            .github/workflows/release.yml +46/-0
      * Changed:
            .github/workflows/test.yml +5/-7
            CHANGELOG.md +37/-1
            Gemfile +4/-6
            README.md +2/-1
            REFERENCE.md +9/-16
            bin/console +3/-4
            bin/stackprof +2/-2
            haml.gemspec +4/-2
            lib/haml.rb +1/-5
            lib/haml/attribute_builder.rb +10/-10
            lib/haml/attribute_compiler.rb +2/-2
            lib/haml/engine.rb +2/-2
            lib/haml/filters/plain.rb +1/-1
            lib/haml/filters/ruby.rb +1/-1
            lib/haml/parser.rb +10/-10
            lib/haml/rails_template.rb +2/-2
            lib/haml/string_splitter.rb +1/-1
            lib/haml/util.rb +2/-2
            lib/haml/version.rb +1/-1
  DIFFERENT development dependencies:
    6.3.0->7.2.0:
      * Deleted:
            haml [">= 5"] (development)
  DIFFERENT Gemfile dependencies
    6.3.0->7.2.0:
      * Added:
            base64 [">= 0"] (runtime)
            bigdecimal [">= 0"] (runtime)
            mutex_m [">= 0"] (runtime)
      * Deleted
            pry [">= 0"] (runtime)
            rake-compiler ["< 1.2.4"] (runtime)

3 similar comments
@github-actions
Copy link
Contributor

gem compare haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT date:
    6.3.0: 2023-12-10 00:00:00 UTC
    7.2.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    6.3.0: {"rubygems_mfa_required" => "true"}
    7.2.0: {"rubygems_mfa_required" => "true", "changelog_uri" => "https://github.com/haml/haml/releases", "source_code_uri" => "https://github.com/haml/haml"}
  DIFFERENT required_ruby_version:
    6.3.0: >= 2.1.0
    7.2.0: >= 3.2.0
  DIFFERENT rubygems_version:
    6.3.0: 3.4.10
    7.2.0: 3.6.7
  DIFFERENT version:
    6.3.0: 6.3.0
    7.2.0: 7.2.0
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
            .github/workflows/release.yml +46/-0
      * Changed:
            .github/workflows/test.yml +5/-7
            CHANGELOG.md +37/-1
            Gemfile +4/-6
            README.md +2/-1
            REFERENCE.md +9/-16
            bin/console +3/-4
            bin/stackprof +2/-2
            haml.gemspec +4/-2
            lib/haml.rb +1/-5
            lib/haml/attribute_builder.rb +10/-10
            lib/haml/attribute_compiler.rb +2/-2
            lib/haml/engine.rb +2/-2
            lib/haml/filters/plain.rb +1/-1
            lib/haml/filters/ruby.rb +1/-1
            lib/haml/parser.rb +10/-10
            lib/haml/rails_template.rb +2/-2
            lib/haml/string_splitter.rb +1/-1
            lib/haml/util.rb +2/-2
            lib/haml/version.rb +1/-1
  DIFFERENT development dependencies:
    6.3.0->7.2.0:
      * Deleted:
            haml [">= 5"] (development)
  DIFFERENT Gemfile dependencies
    6.3.0->7.2.0:
      * Added:
            base64 [">= 0"] (runtime)
            bigdecimal [">= 0"] (runtime)
            mutex_m [">= 0"] (runtime)
      * Deleted
            pry [">= 0"] (runtime)
            rake-compiler ["< 1.2.4"] (runtime)

@github-actions
Copy link
Contributor

gem compare haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT date:
    6.3.0: 2023-12-10 00:00:00 UTC
    7.2.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    6.3.0: {"rubygems_mfa_required" => "true"}
    7.2.0: {"rubygems_mfa_required" => "true", "changelog_uri" => "https://github.com/haml/haml/releases", "source_code_uri" => "https://github.com/haml/haml"}
  DIFFERENT required_ruby_version:
    6.3.0: >= 2.1.0
    7.2.0: >= 3.2.0
  DIFFERENT rubygems_version:
    6.3.0: 3.4.10
    7.2.0: 3.6.7
  DIFFERENT version:
    6.3.0: 6.3.0
    7.2.0: 7.2.0
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
            .github/workflows/release.yml +46/-0
      * Changed:
            .github/workflows/test.yml +5/-7
            CHANGELOG.md +37/-1
            Gemfile +4/-6
            README.md +2/-1
            REFERENCE.md +9/-16
            bin/console +3/-4
            bin/stackprof +2/-2
            haml.gemspec +4/-2
            lib/haml.rb +1/-5
            lib/haml/attribute_builder.rb +10/-10
            lib/haml/attribute_compiler.rb +2/-2
            lib/haml/engine.rb +2/-2
            lib/haml/filters/plain.rb +1/-1
            lib/haml/filters/ruby.rb +1/-1
            lib/haml/parser.rb +10/-10
            lib/haml/rails_template.rb +2/-2
            lib/haml/string_splitter.rb +1/-1
            lib/haml/util.rb +2/-2
            lib/haml/version.rb +1/-1
  DIFFERENT development dependencies:
    6.3.0->7.2.0:
      * Deleted:
            haml [">= 5"] (development)
  DIFFERENT Gemfile dependencies
    6.3.0->7.2.0:
      * Added:
            base64 [">= 0"] (runtime)
            bigdecimal [">= 0"] (runtime)
            mutex_m [">= 0"] (runtime)
      * Deleted
            pry [">= 0"] (runtime)
            rake-compiler ["< 1.2.4"] (runtime)

@github-actions
Copy link
Contributor

gem compare haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT date:
    6.3.0: 2023-12-10 00:00:00 UTC
    7.2.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    6.3.0: {"rubygems_mfa_required" => "true"}
    7.2.0: {"rubygems_mfa_required" => "true", "changelog_uri" => "https://github.com/haml/haml/releases", "source_code_uri" => "https://github.com/haml/haml"}
  DIFFERENT required_ruby_version:
    6.3.0: >= 2.1.0
    7.2.0: >= 3.2.0
  DIFFERENT rubygems_version:
    6.3.0: 3.4.10
    7.2.0: 3.6.7
  DIFFERENT version:
    6.3.0: 6.3.0
    7.2.0: 7.2.0
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
            .github/workflows/release.yml +46/-0
      * Changed:
            .github/workflows/test.yml +5/-7
            CHANGELOG.md +37/-1
            Gemfile +4/-6
            README.md +2/-1
            REFERENCE.md +9/-16
            bin/console +3/-4
            bin/stackprof +2/-2
            haml.gemspec +4/-2
            lib/haml.rb +1/-5
            lib/haml/attribute_builder.rb +10/-10
            lib/haml/attribute_compiler.rb +2/-2
            lib/haml/engine.rb +2/-2
            lib/haml/filters/plain.rb +1/-1
            lib/haml/filters/ruby.rb +1/-1
            lib/haml/parser.rb +10/-10
            lib/haml/rails_template.rb +2/-2
            lib/haml/string_splitter.rb +1/-1
            lib/haml/util.rb +2/-2
            lib/haml/version.rb +1/-1
  DIFFERENT development dependencies:
    6.3.0->7.2.0:
      * Deleted:
            haml [">= 5"] (development)
  DIFFERENT Gemfile dependencies
    6.3.0->7.2.0:
      * Added:
            base64 [">= 0"] (runtime)
            bigdecimal [">= 0"] (runtime)
            mutex_m [">= 0"] (runtime)
      * Deleted
            pry [">= 0"] (runtime)
            rake-compiler ["< 1.2.4"] (runtime)

@github-actions
Copy link
Contributor

gem compare --diff haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
        .github/workflows/release.yml
                --- /tmp/20260114-587-r6iiog	2026-01-14 03:33:07.459756859 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/.github/workflows/release.yml	2026-01-14 03:33:07.451756899 +0000
                @@ -0,0 +1,46 @@
                +name: Release
                +
                +on:
                +  push:
                +    tags:
                +      - 'v*'
                +
                +permissions:
                +  contents: read
                +
                +jobs:
                +  push:
                +    if: github.repository_owner == 'haml'
                +    runs-on: ubuntu-latest
                +
                +    environment:
                +      name: rubygems.org
                +      url: https://rubygems.org/gems/haml
                +
                +    permissions:
                +      contents: write
                +      id-token: write
                +
                +    steps:
                +      - name: Harden Runner
                +        uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
                +        with:
                +          egress-policy: audit
                +
                +      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
                +
                +      - name: Set up Ruby
                +        uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
                +        with:
                +          bundler-cache: true
                +          ruby-version: ruby
                +
                +      - name: Publish to RubyGems
                +        uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
                +
                +      - name: Create GitHub release
                +        run: |
                +          tag_name="$(git describe --tags --abbrev=0)"
                +          gh release create "${tag_name}" --verify-tag --generate-notes
                +        env:
                +          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/.github/workflows/test.yml	2026-01-14 03:33:07.443756940 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/.github/workflows/test.yml	2026-01-14 03:33:07.451756899 +0000
                @@ -20,5 +19,0 @@
                -          - '2.5'
                -          - '2.6'
                -          - '2.7'
                -          - '3.0'
                -          - '3.1'
                @@ -25,0 +21,3 @@
                +          - '3.3'
                +          - '3.4'
                +          - ruby-head
                @@ -27 +25 @@
                -          - truffleruby-head
                +          - truffleruby
                @@ -29 +27 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGELOG.md
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/CHANGELOG.md	2026-01-14 03:33:07.443756940 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/CHANGELOG.md	2026-01-14 03:33:07.452756894 +0000
                @@ -2,0 +3,37 @@
                +## 7.2.0
                +
                +* Do not require rails when haml is required https://github.com/haml/haml/pull/1201
                +* Point `changelog_uri` to GitHub Releases https://github.com/haml/haml/pull/1202
                +
                +## 7.1.0
                +
                +* Support xhtml format for boolean nested data attributes https://github.com/haml/haml/pull/1200
                +
                +## 7.0.2
                +
                +* Replace usages of `=~` with `.match?` where possible https://github.com/haml/haml/pull/1196
                +* Add source code URI to gemspec metadata https://github.com/haml/haml/pull/1197
                +
                +## 7.0.1
                +
                +* Use `Regexp#match?` predicate where possible https://github.com/haml/haml/pull/1194
                +* Fix the 'Changelog' link on rubygems.org/gems/haml https://github.com/haml/haml/pull/1192
                +
                +## 7.0.0
                +
                +* Change the default `attr_quote` from `'` to `"` https://github.com/haml/haml/issues/1188
                +* Bump required Ruby version to 3.2 https://github.com/haml/haml/issues/1176
                +
                +## 6.4.0
                +
                +* Authorize characters in attribute name for vuejs https://github.com/haml/haml/pull/1172
                +* Compile new-style attributes statically https://github.com/haml/haml/pull/1165
                +* Remove newlines from template annotation comments https://github.com/haml/haml/pull/1186
                +* Fix line numbers within a :ruby filter https://github.com/haml/haml/pull/1166
                +* Fix .class + nested class array bug https://github.com/haml/haml/pull/1191
                +
                +## 6.3.1
                +
                +* Optimize string transformation using `String#tr` https://github.com/haml/haml/pull/1168
                +* Provide a Changelog link on rubygems.org https://github.com/haml/haml/pull/1157
                +
                @@ -11 +47,0 @@
                -  * See [the reference](https://github.com/haml/haml/blob/v6.2.5/REFERENCE.md#turbo) for suggested alternatives.
        Gemfile
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/Gemfile	2026-01-14 03:33:07.444756935 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/Gemfile	2026-01-14 03:33:07.452756894 +0000
                @@ -13 +13,3 @@
                -gem 'pry'
                +gem 'base64'
                +gem 'bigdecimal'
                +gem 'mutex_m'
                @@ -15 +17 @@
                -if /java/ === RUBY_PLATFORM # JRuby
                +if /java/.match?(RUBY_PLATFORM) # JRuby
                @@ -23,4 +24,0 @@
                -end
                -
                -if RUBY_VERSION < '2.6'
                -  gem 'rake-compiler', '< 1.2.4'
        README.md
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/README.md	2026-01-14 03:33:07.444756935 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/README.md	2026-01-14 03:33:07.452756894 +0000
                @@ -6,0 +7 @@
                +[![Discord Server](https://dcbadge.limes.pink/api/server/https://discord.gg/G8dEAwvV2Y)](https://discord.gg/G8dEAwvV2Y)
                @@ -159 +160 @@
                -Haml currently supports Ruby 2.0.0 and higher, so please make sure your changes run on 2.0+.
                +Haml currently supports Ruby 3.2.0 and higher, so please make sure your changes run on 3.2+.
        REFERENCE.md
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/REFERENCE.md	2026-01-14 03:33:07.444756935 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/REFERENCE.md	2026-01-14 03:33:07.452756894 +0000
                @@ -108 +108 @@
                -For the complete list of available options, please see `Haml::Engine`.
                +For the complete list of available options, please see [`Haml::Engine`](https://github.com/haml/haml/blob/main/lib/haml/engine.rb).
                @@ -323 +323 @@
                -[`Haml::AttributeBuilder::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_builder.rb#L5),
                +[`Haml::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_compiler.rb#L8),
                @@ -363,7 +362,0 @@
                -Notice that the underscore in `author_id` was replaced with a hyphen. If you wish
                -to suppress this behavior, you can set Haml's
                -{Haml::Options#hyphenate_data_attrs `:hyphenate_data_attrs` option} to `false`,
                -and the output will be rendered as:
                -
                -    <a data-author_id='123' data-category='7' href='/posts'>Posts By Author</a>
                -
                @@ -571 +564 @@
                -      @user = CrazyUser.find(15)
                +      @user = FriendlyUser.find(15)
                @@ -582 +575 @@
                -    <div class='greeting_crazy_user' id='greeting_crazy_user_15'>
                +    <div class='greeting_friendly_user' id='greeting_friendly_user_15'>
                @@ -590 +583 @@
                -    # file: app/models/crazy_user.rb
                +    # file: app/models/friendly_user.rb
                @@ -592 +585 @@
                -    class CrazyUser < ActiveRecord::Base
                +    class FriendlyUser < ActiveRecord::Base
                @@ -594 +587 @@
                -        "a_crazy_user"
                +        "a_friendly_user"
                @@ -605 +598 @@
                -    <div class='a_crazy_user' id='a_crazy_user_15'>
                +    <div class='a_friendly_user' id='a_friendly_user_15'>
                @@ -1301 +1294 @@
                -For people using Turbo-rails and Haml 6+ need to either:
                +For people using Turbo-rails need to either:
        bin/console
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/bin/console	2026-01-14 03:33:07.444756935 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/bin/console	2026-01-14 03:33:07.453756889 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -9,3 +9,2 @@
                -# (If you use this, don't forget to add pry to your Gemfile!)
                -require 'pry'
                -Pry.start
                +require 'irb'
                +IRB.start
        bin/stackprof
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/bin/stackprof	2026-01-14 03:33:07.445756930 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/bin/stackprof	2026-01-14 03:33:07.453756889 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -23 +23 @@
                -Hamlit::Engine.new.call(haml)
                +Haml::Engine.new.call(haml)
        haml.gemspec
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/haml.gemspec	2026-01-14 03:33:07.445756930 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/haml.gemspec	2026-01-14 03:33:07.453756889 +0000
                @@ -24 +24,4 @@
                -  spec.required_ruby_version = '>= 2.1.0'
                +  spec.metadata["changelog_uri"] = "https://github.com/haml/haml/releases"
                +  spec.metadata["source_code_uri"] = "https://github.com/haml/haml"
                +
                +  spec.required_ruby_version = '>= 3.2.0'
                @@ -34 +36,0 @@
                -  spec.add_development_dependency 'haml', '>= 5'
        lib/haml.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml.rb	2026-01-14 03:33:07.445756930 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml.rb	2026-01-14 03:33:07.453756889 +0000
                @@ -8,5 +8 @@
                -  begin
                -    require 'rails'
                -    require 'haml/railtie'
                -  rescue LoadError
                -  end
                +  require 'haml/railtie' if defined?(Rails::Railtie)
        lib/haml/attribute_builder.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:07.446756925 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:07.454756884 +0000
                @@ -19 +19 @@
                -          buf << build_data(escape_attrs, quote, *hash[key])
                +          buf << build_data(escape_attrs, quote, format, *hash[key])
                @@ -21 +21 @@
                -          buf << build_aria(escape_attrs, quote, *hash[key])
                +          buf << build_aria(escape_attrs, quote, format, *hash[key])
                @@ -57 +57 @@
                -          classes += value.select { |v| v }
                +          classes += value.flatten.select { |v| v }
                @@ -65,2 +65,2 @@
                -    def build_data(escape_attrs, quote, *hashes)
                -      build_data_attribute(:data, escape_attrs, quote, *hashes)
                +    def build_data(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:data, escape_attrs, quote, format, *hashes)
                @@ -69,2 +69,2 @@
                -    def build_aria(escape_attrs, quote, *hashes)
                -      build_data_attribute(:aria, escape_attrs, quote, *hashes)
                +    def build_aria(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:aria, escape_attrs, quote, format, *hashes)
                @@ -75 +75 @@
                -    def build_data_attribute(key, escape_attrs, quote, *hashes)
                +    def build_data_attribute(key, escape_attrs, quote, format, *hashes)
                @@ -87 +87 @@
                -          attrs << " #{key}"
                +          build_boolean!(escape_attrs, quote, format, attrs, key, value)
                @@ -108 +108 @@
                -              flattened["#{key}-#{k.to_s.gsub(/_/, '-')}"] = v
                +              flattened["#{key}-#{k.to_s.tr('_', '-')}"] = v
        lib/haml/attribute_compiler.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:07.446756925 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:07.454756884 +0000
                @@ -88 +88 @@
                -      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", values.map { |v| literal_for(v) }]
                +      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", @format.inspect, values.map { |v| literal_for(v) }]
                @@ -101 +101 @@
                -      if Temple::StaticAnalyzer.static?(exp)
                +      if values.last.first == :static || Temple::StaticAnalyzer.static?(exp)
        lib/haml/engine.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/engine.rb	2026-01-14 03:33:07.447756919 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/engine.rb	2026-01-14 03:33:07.455756879 +0000
                @@ -20 +20 @@
                -      attr_quote:   "'",
                +      attr_quote:   '"',
                @@ -26 +26 @@
                -      filename:     "",
                +      filename:     '',
        lib/haml/filters/plain.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/filters/plain.rb	2026-01-14 03:33:07.448756914 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/filters/plain.rb	2026-01-14 03:33:07.456756874 +0000
                @@ -10 +10 @@
                -        [:multi, *compile_plain(text)]
                +        [:multi, [:newline], *compile_plain(text)]
        lib/haml/filters/ruby.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:07.449756909 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:07.456756874 +0000
                @@ -6 +6 @@
                -        [:code, node.value[:text]]
                +        [:multi, [:newline], [:code, node.value[:text]]]
        lib/haml/parser.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/parser.rb	2026-01-14 03:33:07.450756904 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/parser.rb	2026-01-14 03:33:07.457756869 +0000
                @@ -185 +185 @@
                -      return @template_tabs + 1 if flat? && line.whitespace =~ /^#{@flat_spaces}/
                +      return @template_tabs + 1 if flat? && /^#{@flat_spaces}/.match?(line.whitespace)
                @@ -239 +239 @@
                -        unless value =~ /\A{.*}\z/m
                +        unless /\A{.*}\z/m.match?(value)
                @@ -531 +531 @@
                -      raise Error.new(Error.message(:invalid_filter_name, name)) unless name =~ /^\w+$/
                +      raise Error.new(Error.message(:invalid_filter_name, name)) unless /^\w+$/.match?(name)
                @@ -633 +633 @@
                -      if !attributes.empty? && (attributes =~ /[.#](\.|#|\z)/)
                +      if !attributes.empty? && /[.#](\.|#|\z)/.match?(attributes)
                @@ -752 +752 @@
                -      unless (name = scanner.scan(/[-:\w]+/))
                +      unless (name = scanner.scan(/[-:@#\w\.]+/))
                @@ -789 +789 @@
                -          (line_defined && @line.text[0] == ?: && line.full =~ %r[^#{@line.full[/^\s+/]}\s])
                +          (line_defined && @line.text[0] == ?: && %r[^#{@line.full[/^\s+/]}\s].match?(line.full))
                @@ -799 +799 @@
                -      line && !line.text.empty? && line.full !~ /^#{@flat_spaces}/
                +      line && !line.text.empty? && !(/^#{@flat_spaces}/.match?(line.full))
                @@ -817 +817 @@
                -      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && text !~ BLOCK_WITH_SPACES
                +      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && !BLOCK_WITH_SPACES.match?(text)
                @@ -841 +841 @@
                -        !((text[-3, 2] =~ /\W\?/) || text[-3, 2] == "?\\")
                +        !(/\W\?/.match?(text[-3, 2]) || text[-3, 2] == "?\\")
                @@ -874 +874 @@
                -      @next_line.full =~ (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/)
                +      (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/).match?(@next_line.full)
        lib/haml/rails_template.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/rails_template.rb	2026-01-14 03:33:07.450756904 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/rails_template.rb	2026-01-14 03:33:07.458756864 +0000
                @@ -43,2 +43,2 @@
                -          preamble: "<!-- BEGIN #{template.short_identifier} -->\n",
                -          postamble: "<!-- END #{template.short_identifier} -->\n",
                +          preamble: "<!-- BEGIN #{template.short_identifier} -->",
                +          postamble: "<!-- END #{template.short_identifier} -->",
        lib/haml/string_splitter.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/string_splitter.rb	2026-01-14 03:33:07.450756904 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/string_splitter.rb	2026-01-14 03:33:07.458756864 +0000
                @@ -10 +10 @@
                -    if defined?(Ripper) && RUBY_VERSION >= "2.0.0" && Ripper.respond_to?(:lex)
                +    if defined?(Ripper) && Ripper.respond_to?(:lex)
        lib/haml/util.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/util.rb	2026-01-14 03:33:07.450756904 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/util.rb	2026-01-14 03:33:07.458756864 +0000
                @@ -72 +72 @@
                -        elsif str.encoding.name =~ /^UTF-(16|32)(BE|LE)?$/
                +        elsif /^UTF-(16|32)(BE|LE)?$/.match?(str.encoding.name)
                @@ -255 +255 @@
                -      return unless name =~ /(en)?coding/in
                +      return unless /(en)?coding/in.match?(name)
        lib/haml/version.rb
                --- /tmp/d20260114-587-96pg59/haml-6.3.0/lib/haml/version.rb	2026-01-14 03:33:07.450756904 +0000
                +++ /tmp/d20260114-587-96pg59/haml-7.2.0/lib/haml/version.rb	2026-01-14 03:33:07.458756864 +0000
                @@ -3 +3 @@
                -  VERSION = '6.3.0'
                +  VERSION = '7.2.0'

@github-actions
Copy link
Contributor

gem compare --diff haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
        .github/workflows/release.yml
                --- /tmp/20260114-580-a7wv5g	2026-01-14 03:33:08.567662088 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/.github/workflows/release.yml	2026-01-14 03:33:08.560662126 +0000
                @@ -0,0 +1,46 @@
                +name: Release
                +
                +on:
                +  push:
                +    tags:
                +      - 'v*'
                +
                +permissions:
                +  contents: read
                +
                +jobs:
                +  push:
                +    if: github.repository_owner == 'haml'
                +    runs-on: ubuntu-latest
                +
                +    environment:
                +      name: rubygems.org
                +      url: https://rubygems.org/gems/haml
                +
                +    permissions:
                +      contents: write
                +      id-token: write
                +
                +    steps:
                +      - name: Harden Runner
                +        uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
                +        with:
                +          egress-policy: audit
                +
                +      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
                +
                +      - name: Set up Ruby
                +        uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
                +        with:
                +          bundler-cache: true
                +          ruby-version: ruby
                +
                +      - name: Publish to RubyGems
                +        uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
                +
                +      - name: Create GitHub release
                +        run: |
                +          tag_name="$(git describe --tags --abbrev=0)"
                +          gh release create "${tag_name}" --verify-tag --generate-notes
                +        env:
                +          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/.github/workflows/test.yml	2026-01-14 03:33:08.552662170 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/.github/workflows/test.yml	2026-01-14 03:33:08.560662126 +0000
                @@ -20,5 +19,0 @@
                -          - '2.5'
                -          - '2.6'
                -          - '2.7'
                -          - '3.0'
                -          - '3.1'
                @@ -25,0 +21,3 @@
                +          - '3.3'
                +          - '3.4'
                +          - ruby-head
                @@ -27 +25 @@
                -          - truffleruby-head
                +          - truffleruby
                @@ -29 +27 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGELOG.md
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/CHANGELOG.md	2026-01-14 03:33:08.552662170 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/CHANGELOG.md	2026-01-14 03:33:08.561662121 +0000
                @@ -2,0 +3,37 @@
                +## 7.2.0
                +
                +* Do not require rails when haml is required https://github.com/haml/haml/pull/1201
                +* Point `changelog_uri` to GitHub Releases https://github.com/haml/haml/pull/1202
                +
                +## 7.1.0
                +
                +* Support xhtml format for boolean nested data attributes https://github.com/haml/haml/pull/1200
                +
                +## 7.0.2
                +
                +* Replace usages of `=~` with `.match?` where possible https://github.com/haml/haml/pull/1196
                +* Add source code URI to gemspec metadata https://github.com/haml/haml/pull/1197
                +
                +## 7.0.1
                +
                +* Use `Regexp#match?` predicate where possible https://github.com/haml/haml/pull/1194
                +* Fix the 'Changelog' link on rubygems.org/gems/haml https://github.com/haml/haml/pull/1192
                +
                +## 7.0.0
                +
                +* Change the default `attr_quote` from `'` to `"` https://github.com/haml/haml/issues/1188
                +* Bump required Ruby version to 3.2 https://github.com/haml/haml/issues/1176
                +
                +## 6.4.0
                +
                +* Authorize characters in attribute name for vuejs https://github.com/haml/haml/pull/1172
                +* Compile new-style attributes statically https://github.com/haml/haml/pull/1165
                +* Remove newlines from template annotation comments https://github.com/haml/haml/pull/1186
                +* Fix line numbers within a :ruby filter https://github.com/haml/haml/pull/1166
                +* Fix .class + nested class array bug https://github.com/haml/haml/pull/1191
                +
                +## 6.3.1
                +
                +* Optimize string transformation using `String#tr` https://github.com/haml/haml/pull/1168
                +* Provide a Changelog link on rubygems.org https://github.com/haml/haml/pull/1157
                +
                @@ -11 +47,0 @@
                -  * See [the reference](https://github.com/haml/haml/blob/v6.2.5/REFERENCE.md#turbo) for suggested alternatives.
        Gemfile
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/Gemfile	2026-01-14 03:33:08.553662164 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/Gemfile	2026-01-14 03:33:08.561662121 +0000
                @@ -13 +13,3 @@
                -gem 'pry'
                +gem 'base64'
                +gem 'bigdecimal'
                +gem 'mutex_m'
                @@ -15 +17 @@
                -if /java/ === RUBY_PLATFORM # JRuby
                +if /java/.match?(RUBY_PLATFORM) # JRuby
                @@ -23,4 +24,0 @@
                -end
                -
                -if RUBY_VERSION < '2.6'
                -  gem 'rake-compiler', '< 1.2.4'
        README.md
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/README.md	2026-01-14 03:33:08.553662164 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/README.md	2026-01-14 03:33:08.561662121 +0000
                @@ -6,0 +7 @@
                +[![Discord Server](https://dcbadge.limes.pink/api/server/https://discord.gg/G8dEAwvV2Y)](https://discord.gg/G8dEAwvV2Y)
                @@ -159 +160 @@
                -Haml currently supports Ruby 2.0.0 and higher, so please make sure your changes run on 2.0+.
                +Haml currently supports Ruby 3.2.0 and higher, so please make sure your changes run on 3.2+.
        REFERENCE.md
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/REFERENCE.md	2026-01-14 03:33:08.553662164 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/REFERENCE.md	2026-01-14 03:33:08.562662116 +0000
                @@ -108 +108 @@
                -For the complete list of available options, please see `Haml::Engine`.
                +For the complete list of available options, please see [`Haml::Engine`](https://github.com/haml/haml/blob/main/lib/haml/engine.rb).
                @@ -323 +323 @@
                -[`Haml::AttributeBuilder::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_builder.rb#L5),
                +[`Haml::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_compiler.rb#L8),
                @@ -363,7 +362,0 @@
                -Notice that the underscore in `author_id` was replaced with a hyphen. If you wish
                -to suppress this behavior, you can set Haml's
                -{Haml::Options#hyphenate_data_attrs `:hyphenate_data_attrs` option} to `false`,
                -and the output will be rendered as:
                -
                -    <a data-author_id='123' data-category='7' href='/posts'>Posts By Author</a>
                -
                @@ -571 +564 @@
                -      @user = CrazyUser.find(15)
                +      @user = FriendlyUser.find(15)
                @@ -582 +575 @@
                -    <div class='greeting_crazy_user' id='greeting_crazy_user_15'>
                +    <div class='greeting_friendly_user' id='greeting_friendly_user_15'>
                @@ -590 +583 @@
                -    # file: app/models/crazy_user.rb
                +    # file: app/models/friendly_user.rb
                @@ -592 +585 @@
                -    class CrazyUser < ActiveRecord::Base
                +    class FriendlyUser < ActiveRecord::Base
                @@ -594 +587 @@
                -        "a_crazy_user"
                +        "a_friendly_user"
                @@ -605 +598 @@
                -    <div class='a_crazy_user' id='a_crazy_user_15'>
                +    <div class='a_friendly_user' id='a_friendly_user_15'>
                @@ -1301 +1294 @@
                -For people using Turbo-rails and Haml 6+ need to either:
                +For people using Turbo-rails need to either:
        bin/console
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/bin/console	2026-01-14 03:33:08.553662164 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/bin/console	2026-01-14 03:33:08.562662116 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -9,3 +9,2 @@
                -# (If you use this, don't forget to add pry to your Gemfile!)
                -require 'pry'
                -Pry.start
                +require 'irb'
                +IRB.start
        bin/stackprof
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/bin/stackprof	2026-01-14 03:33:08.554662159 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/bin/stackprof	2026-01-14 03:33:08.562662116 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -23 +23 @@
                -Hamlit::Engine.new.call(haml)
                +Haml::Engine.new.call(haml)
        haml.gemspec
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/haml.gemspec	2026-01-14 03:33:08.554662159 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/haml.gemspec	2026-01-14 03:33:08.562662116 +0000
                @@ -24 +24,4 @@
                -  spec.required_ruby_version = '>= 2.1.0'
                +  spec.metadata["changelog_uri"] = "https://github.com/haml/haml/releases"
                +  spec.metadata["source_code_uri"] = "https://github.com/haml/haml"
                +
                +  spec.required_ruby_version = '>= 3.2.0'
                @@ -34 +36,0 @@
                -  spec.add_development_dependency 'haml', '>= 5'
        lib/haml.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml.rb	2026-01-14 03:33:08.554662159 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml.rb	2026-01-14 03:33:08.563662110 +0000
                @@ -8,5 +8 @@
                -  begin
                -    require 'rails'
                -    require 'haml/railtie'
                -  rescue LoadError
                -  end
                +  require 'haml/railtie' if defined?(Rails::Railtie)
        lib/haml/attribute_builder.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:08.554662159 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:08.563662110 +0000
                @@ -19 +19 @@
                -          buf << build_data(escape_attrs, quote, *hash[key])
                +          buf << build_data(escape_attrs, quote, format, *hash[key])
                @@ -21 +21 @@
                -          buf << build_aria(escape_attrs, quote, *hash[key])
                +          buf << build_aria(escape_attrs, quote, format, *hash[key])
                @@ -57 +57 @@
                -          classes += value.select { |v| v }
                +          classes += value.flatten.select { |v| v }
                @@ -65,2 +65,2 @@
                -    def build_data(escape_attrs, quote, *hashes)
                -      build_data_attribute(:data, escape_attrs, quote, *hashes)
                +    def build_data(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:data, escape_attrs, quote, format, *hashes)
                @@ -69,2 +69,2 @@
                -    def build_aria(escape_attrs, quote, *hashes)
                -      build_data_attribute(:aria, escape_attrs, quote, *hashes)
                +    def build_aria(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:aria, escape_attrs, quote, format, *hashes)
                @@ -75 +75 @@
                -    def build_data_attribute(key, escape_attrs, quote, *hashes)
                +    def build_data_attribute(key, escape_attrs, quote, format, *hashes)
                @@ -87 +87 @@
                -          attrs << " #{key}"
                +          build_boolean!(escape_attrs, quote, format, attrs, key, value)
                @@ -108 +108 @@
                -              flattened["#{key}-#{k.to_s.gsub(/_/, '-')}"] = v
                +              flattened["#{key}-#{k.to_s.tr('_', '-')}"] = v
        lib/haml/attribute_compiler.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:08.555662154 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:08.563662110 +0000
                @@ -88 +88 @@
                -      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", values.map { |v| literal_for(v) }]
                +      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", @format.inspect, values.map { |v| literal_for(v) }]
                @@ -101 +101 @@
                -      if Temple::StaticAnalyzer.static?(exp)
                +      if values.last.first == :static || Temple::StaticAnalyzer.static?(exp)
        lib/haml/engine.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/engine.rb	2026-01-14 03:33:08.556662148 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/engine.rb	2026-01-14 03:33:08.564662104 +0000
                @@ -20 +20 @@
                -      attr_quote:   "'",
                +      attr_quote:   '"',
                @@ -26 +26 @@
                -      filename:     "",
                +      filename:     '',
        lib/haml/filters/plain.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/filters/plain.rb	2026-01-14 03:33:08.557662143 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/filters/plain.rb	2026-01-14 03:33:08.565662099 +0000
                @@ -10 +10 @@
                -        [:multi, *compile_plain(text)]
                +        [:multi, [:newline], *compile_plain(text)]
        lib/haml/filters/ruby.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:08.557662143 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:08.565662099 +0000
                @@ -6 +6 @@
                -        [:code, node.value[:text]]
                +        [:multi, [:newline], [:code, node.value[:text]]]
        lib/haml/parser.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/parser.rb	2026-01-14 03:33:08.558662137 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/parser.rb	2026-01-14 03:33:08.566662093 +0000
                @@ -185 +185 @@
                -      return @template_tabs + 1 if flat? && line.whitespace =~ /^#{@flat_spaces}/
                +      return @template_tabs + 1 if flat? && /^#{@flat_spaces}/.match?(line.whitespace)
                @@ -239 +239 @@
                -        unless value =~ /\A{.*}\z/m
                +        unless /\A{.*}\z/m.match?(value)
                @@ -531 +531 @@
                -      raise Error.new(Error.message(:invalid_filter_name, name)) unless name =~ /^\w+$/
                +      raise Error.new(Error.message(:invalid_filter_name, name)) unless /^\w+$/.match?(name)
                @@ -633 +633 @@
                -      if !attributes.empty? && (attributes =~ /[.#](\.|#|\z)/)
                +      if !attributes.empty? && /[.#](\.|#|\z)/.match?(attributes)
                @@ -752 +752 @@
                -      unless (name = scanner.scan(/[-:\w]+/))
                +      unless (name = scanner.scan(/[-:@#\w\.]+/))
                @@ -789 +789 @@
                -          (line_defined && @line.text[0] == ?: && line.full =~ %r[^#{@line.full[/^\s+/]}\s])
                +          (line_defined && @line.text[0] == ?: && %r[^#{@line.full[/^\s+/]}\s].match?(line.full))
                @@ -799 +799 @@
                -      line && !line.text.empty? && line.full !~ /^#{@flat_spaces}/
                +      line && !line.text.empty? && !(/^#{@flat_spaces}/.match?(line.full))
                @@ -817 +817 @@
                -      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && text !~ BLOCK_WITH_SPACES
                +      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && !BLOCK_WITH_SPACES.match?(text)
                @@ -841 +841 @@
                -        !((text[-3, 2] =~ /\W\?/) || text[-3, 2] == "?\\")
                +        !(/\W\?/.match?(text[-3, 2]) || text[-3, 2] == "?\\")
                @@ -874 +874 @@
                -      @next_line.full =~ (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/)
                +      (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/).match?(@next_line.full)
        lib/haml/rails_template.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/rails_template.rb	2026-01-14 03:33:08.559662132 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/rails_template.rb	2026-01-14 03:33:08.566662093 +0000
                @@ -43,2 +43,2 @@
                -          preamble: "<!-- BEGIN #{template.short_identifier} -->\n",
                -          postamble: "<!-- END #{template.short_identifier} -->\n",
                +          preamble: "<!-- BEGIN #{template.short_identifier} -->",
                +          postamble: "<!-- END #{template.short_identifier} -->",
        lib/haml/string_splitter.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/string_splitter.rb	2026-01-14 03:33:08.559662132 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/string_splitter.rb	2026-01-14 03:33:08.566662093 +0000
                @@ -10 +10 @@
                -    if defined?(Ripper) && RUBY_VERSION >= "2.0.0" && Ripper.respond_to?(:lex)
                +    if defined?(Ripper) && Ripper.respond_to?(:lex)
        lib/haml/util.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/util.rb	2026-01-14 03:33:08.560662126 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/util.rb	2026-01-14 03:33:08.567662088 +0000
                @@ -72 +72 @@
                -        elsif str.encoding.name =~ /^UTF-(16|32)(BE|LE)?$/
                +        elsif /^UTF-(16|32)(BE|LE)?$/.match?(str.encoding.name)
                @@ -255 +255 @@
                -      return unless name =~ /(en)?coding/in
                +      return unless /(en)?coding/in.match?(name)
        lib/haml/version.rb
                --- /tmp/d20260114-580-6ksp05/haml-6.3.0/lib/haml/version.rb	2026-01-14 03:33:08.560662126 +0000
                +++ /tmp/d20260114-580-6ksp05/haml-7.2.0/lib/haml/version.rb	2026-01-14 03:33:08.567662088 +0000
                @@ -3 +3 @@
                -  VERSION = '6.3.0'
                +  VERSION = '7.2.0'

@github-actions
Copy link
Contributor

gem compare --diff haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
        .github/workflows/release.yml
                --- /tmp/20260114-795-f6gt1l	2026-01-14 03:33:09.306181128 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/.github/workflows/release.yml	2026-01-14 03:33:09.299181054 +0000
                @@ -0,0 +1,46 @@
                +name: Release
                +
                +on:
                +  push:
                +    tags:
                +      - 'v*'
                +
                +permissions:
                +  contents: read
                +
                +jobs:
                +  push:
                +    if: github.repository_owner == 'haml'
                +    runs-on: ubuntu-latest
                +
                +    environment:
                +      name: rubygems.org
                +      url: https://rubygems.org/gems/haml
                +
                +    permissions:
                +      contents: write
                +      id-token: write
                +
                +    steps:
                +      - name: Harden Runner
                +        uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
                +        with:
                +          egress-policy: audit
                +
                +      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
                +
                +      - name: Set up Ruby
                +        uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
                +        with:
                +          bundler-cache: true
                +          ruby-version: ruby
                +
                +      - name: Publish to RubyGems
                +        uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
                +
                +      - name: Create GitHub release
                +        run: |
                +          tag_name="$(git describe --tags --abbrev=0)"
                +          gh release create "${tag_name}" --verify-tag --generate-notes
                +        env:
                +          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/.github/workflows/test.yml	2026-01-14 03:33:09.291180968 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/.github/workflows/test.yml	2026-01-14 03:33:09.299181054 +0000
                @@ -20,5 +19,0 @@
                -          - '2.5'
                -          - '2.6'
                -          - '2.7'
                -          - '3.0'
                -          - '3.1'
                @@ -25,0 +21,3 @@
                +          - '3.3'
                +          - '3.4'
                +          - ruby-head
                @@ -27 +25 @@
                -          - truffleruby-head
                +          - truffleruby
                @@ -29 +27 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGELOG.md
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/CHANGELOG.md	2026-01-14 03:33:09.292180979 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/CHANGELOG.md	2026-01-14 03:33:09.299181054 +0000
                @@ -2,0 +3,37 @@
                +## 7.2.0
                +
                +* Do not require rails when haml is required https://github.com/haml/haml/pull/1201
                +* Point `changelog_uri` to GitHub Releases https://github.com/haml/haml/pull/1202
                +
                +## 7.1.0
                +
                +* Support xhtml format for boolean nested data attributes https://github.com/haml/haml/pull/1200
                +
                +## 7.0.2
                +
                +* Replace usages of `=~` with `.match?` where possible https://github.com/haml/haml/pull/1196
                +* Add source code URI to gemspec metadata https://github.com/haml/haml/pull/1197
                +
                +## 7.0.1
                +
                +* Use `Regexp#match?` predicate where possible https://github.com/haml/haml/pull/1194
                +* Fix the 'Changelog' link on rubygems.org/gems/haml https://github.com/haml/haml/pull/1192
                +
                +## 7.0.0
                +
                +* Change the default `attr_quote` from `'` to `"` https://github.com/haml/haml/issues/1188
                +* Bump required Ruby version to 3.2 https://github.com/haml/haml/issues/1176
                +
                +## 6.4.0
                +
                +* Authorize characters in attribute name for vuejs https://github.com/haml/haml/pull/1172
                +* Compile new-style attributes statically https://github.com/haml/haml/pull/1165
                +* Remove newlines from template annotation comments https://github.com/haml/haml/pull/1186
                +* Fix line numbers within a :ruby filter https://github.com/haml/haml/pull/1166
                +* Fix .class + nested class array bug https://github.com/haml/haml/pull/1191
                +
                +## 6.3.1
                +
                +* Optimize string transformation using `String#tr` https://github.com/haml/haml/pull/1168
                +* Provide a Changelog link on rubygems.org https://github.com/haml/haml/pull/1157
                +
                @@ -11 +47,0 @@
                -  * See [the reference](https://github.com/haml/haml/blob/v6.2.5/REFERENCE.md#turbo) for suggested alternatives.
        Gemfile
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/Gemfile	2026-01-14 03:33:09.292180979 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/Gemfile	2026-01-14 03:33:09.300181064 +0000
                @@ -13 +13,3 @@
                -gem 'pry'
                +gem 'base64'
                +gem 'bigdecimal'
                +gem 'mutex_m'
                @@ -15 +17 @@
                -if /java/ === RUBY_PLATFORM # JRuby
                +if /java/.match?(RUBY_PLATFORM) # JRuby
                @@ -23,4 +24,0 @@
                -end
                -
                -if RUBY_VERSION < '2.6'
                -  gem 'rake-compiler', '< 1.2.4'
        README.md
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/README.md	2026-01-14 03:33:09.292180979 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/README.md	2026-01-14 03:33:09.300181064 +0000
                @@ -6,0 +7 @@
                +[![Discord Server](https://dcbadge.limes.pink/api/server/https://discord.gg/G8dEAwvV2Y)](https://discord.gg/G8dEAwvV2Y)
                @@ -159 +160 @@
                -Haml currently supports Ruby 2.0.0 and higher, so please make sure your changes run on 2.0+.
                +Haml currently supports Ruby 3.2.0 and higher, so please make sure your changes run on 3.2+.
        REFERENCE.md
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/REFERENCE.md	2026-01-14 03:33:09.292180979 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/REFERENCE.md	2026-01-14 03:33:09.300181064 +0000
                @@ -108 +108 @@
                -For the complete list of available options, please see `Haml::Engine`.
                +For the complete list of available options, please see [`Haml::Engine`](https://github.com/haml/haml/blob/main/lib/haml/engine.rb).
                @@ -323 +323 @@
                -[`Haml::AttributeBuilder::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_builder.rb#L5),
                +[`Haml::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_compiler.rb#L8),
                @@ -363,7 +362,0 @@
                -Notice that the underscore in `author_id` was replaced with a hyphen. If you wish
                -to suppress this behavior, you can set Haml's
                -{Haml::Options#hyphenate_data_attrs `:hyphenate_data_attrs` option} to `false`,
                -and the output will be rendered as:
                -
                -    <a data-author_id='123' data-category='7' href='/posts'>Posts By Author</a>
                -
                @@ -571 +564 @@
                -      @user = CrazyUser.find(15)
                +      @user = FriendlyUser.find(15)
                @@ -582 +575 @@
                -    <div class='greeting_crazy_user' id='greeting_crazy_user_15'>
                +    <div class='greeting_friendly_user' id='greeting_friendly_user_15'>
                @@ -590 +583 @@
                -    # file: app/models/crazy_user.rb
                +    # file: app/models/friendly_user.rb
                @@ -592 +585 @@
                -    class CrazyUser < ActiveRecord::Base
                +    class FriendlyUser < ActiveRecord::Base
                @@ -594 +587 @@
                -        "a_crazy_user"
                +        "a_friendly_user"
                @@ -605 +598 @@
                -    <div class='a_crazy_user' id='a_crazy_user_15'>
                +    <div class='a_friendly_user' id='a_friendly_user_15'>
                @@ -1301 +1294 @@
                -For people using Turbo-rails and Haml 6+ need to either:
                +For people using Turbo-rails need to either:
        bin/console
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/bin/console	2026-01-14 03:33:09.293180990 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/bin/console	2026-01-14 03:33:09.300181064 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -9,3 +9,2 @@
                -# (If you use this, don't forget to add pry to your Gemfile!)
                -require 'pry'
                -Pry.start
                +require 'irb'
                +IRB.start
        bin/stackprof
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/bin/stackprof	2026-01-14 03:33:09.293180990 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/bin/stackprof	2026-01-14 03:33:09.301181075 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -23 +23 @@
                -Hamlit::Engine.new.call(haml)
                +Haml::Engine.new.call(haml)
        haml.gemspec
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/haml.gemspec	2026-01-14 03:33:09.293180990 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/haml.gemspec	2026-01-14 03:33:09.301181075 +0000
                @@ -24 +24,4 @@
                -  spec.required_ruby_version = '>= 2.1.0'
                +  spec.metadata["changelog_uri"] = "https://github.com/haml/haml/releases"
                +  spec.metadata["source_code_uri"] = "https://github.com/haml/haml"
                +
                +  spec.required_ruby_version = '>= 3.2.0'
                @@ -34 +36,0 @@
                -  spec.add_development_dependency 'haml', '>= 5'
        lib/haml.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml.rb	2026-01-14 03:33:09.294181000 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml.rb	2026-01-14 03:33:09.301181075 +0000
                @@ -8,5 +8 @@
                -  begin
                -    require 'rails'
                -    require 'haml/railtie'
                -  rescue LoadError
                -  end
                +  require 'haml/railtie' if defined?(Rails::Railtie)
        lib/haml/attribute_builder.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:09.294181000 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:09.301181075 +0000
                @@ -19 +19 @@
                -          buf << build_data(escape_attrs, quote, *hash[key])
                +          buf << build_data(escape_attrs, quote, format, *hash[key])
                @@ -21 +21 @@
                -          buf << build_aria(escape_attrs, quote, *hash[key])
                +          buf << build_aria(escape_attrs, quote, format, *hash[key])
                @@ -57 +57 @@
                -          classes += value.select { |v| v }
                +          classes += value.flatten.select { |v| v }
                @@ -65,2 +65,2 @@
                -    def build_data(escape_attrs, quote, *hashes)
                -      build_data_attribute(:data, escape_attrs, quote, *hashes)
                +    def build_data(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:data, escape_attrs, quote, format, *hashes)
                @@ -69,2 +69,2 @@
                -    def build_aria(escape_attrs, quote, *hashes)
                -      build_data_attribute(:aria, escape_attrs, quote, *hashes)
                +    def build_aria(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:aria, escape_attrs, quote, format, *hashes)
                @@ -75 +75 @@
                -    def build_data_attribute(key, escape_attrs, quote, *hashes)
                +    def build_data_attribute(key, escape_attrs, quote, format, *hashes)
                @@ -87 +87 @@
                -          attrs << " #{key}"
                +          build_boolean!(escape_attrs, quote, format, attrs, key, value)
                @@ -108 +108 @@
                -              flattened["#{key}-#{k.to_s.gsub(/_/, '-')}"] = v
                +              flattened["#{key}-#{k.to_s.tr('_', '-')}"] = v
        lib/haml/attribute_compiler.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:09.294181000 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:09.301181075 +0000
                @@ -88 +88 @@
                -      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", values.map { |v| literal_for(v) }]
                +      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", @format.inspect, values.map { |v| literal_for(v) }]
                @@ -101 +101 @@
                -      if Temple::StaticAnalyzer.static?(exp)
                +      if values.last.first == :static || Temple::StaticAnalyzer.static?(exp)
        lib/haml/engine.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/engine.rb	2026-01-14 03:33:09.295181011 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/engine.rb	2026-01-14 03:33:09.302181086 +0000
                @@ -20 +20 @@
                -      attr_quote:   "'",
                +      attr_quote:   '"',
                @@ -26 +26 @@
                -      filename:     "",
                +      filename:     '',
        lib/haml/filters/plain.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/filters/plain.rb	2026-01-14 03:33:09.296181022 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/filters/plain.rb	2026-01-14 03:33:09.303181096 +0000
                @@ -10 +10 @@
                -        [:multi, *compile_plain(text)]
                +        [:multi, [:newline], *compile_plain(text)]
        lib/haml/filters/ruby.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:09.297181032 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:09.304181107 +0000
                @@ -6 +6 @@
                -        [:code, node.value[:text]]
                +        [:multi, [:newline], [:code, node.value[:text]]]
        lib/haml/parser.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/parser.rb	2026-01-14 03:33:09.297181032 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/parser.rb	2026-01-14 03:33:09.304181107 +0000
                @@ -185 +185 @@
                -      return @template_tabs + 1 if flat? && line.whitespace =~ /^#{@flat_spaces}/
                +      return @template_tabs + 1 if flat? && /^#{@flat_spaces}/.match?(line.whitespace)
                @@ -239 +239 @@
                -        unless value =~ /\A{.*}\z/m
                +        unless /\A{.*}\z/m.match?(value)
                @@ -531 +531 @@
                -      raise Error.new(Error.message(:invalid_filter_name, name)) unless name =~ /^\w+$/
                +      raise Error.new(Error.message(:invalid_filter_name, name)) unless /^\w+$/.match?(name)
                @@ -633 +633 @@
                -      if !attributes.empty? && (attributes =~ /[.#](\.|#|\z)/)
                +      if !attributes.empty? && /[.#](\.|#|\z)/.match?(attributes)
                @@ -752 +752 @@
                -      unless (name = scanner.scan(/[-:\w]+/))
                +      unless (name = scanner.scan(/[-:@#\w\.]+/))
                @@ -789 +789 @@
                -          (line_defined && @line.text[0] == ?: && line.full =~ %r[^#{@line.full[/^\s+/]}\s])
                +          (line_defined && @line.text[0] == ?: && %r[^#{@line.full[/^\s+/]}\s].match?(line.full))
                @@ -799 +799 @@
                -      line && !line.text.empty? && line.full !~ /^#{@flat_spaces}/
                +      line && !line.text.empty? && !(/^#{@flat_spaces}/.match?(line.full))
                @@ -817 +817 @@
                -      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && text !~ BLOCK_WITH_SPACES
                +      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && !BLOCK_WITH_SPACES.match?(text)
                @@ -841 +841 @@
                -        !((text[-3, 2] =~ /\W\?/) || text[-3, 2] == "?\\")
                +        !(/\W\?/.match?(text[-3, 2]) || text[-3, 2] == "?\\")
                @@ -874 +874 @@
                -      @next_line.full =~ (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/)
                +      (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/).match?(@next_line.full)
        lib/haml/rails_template.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/rails_template.rb	2026-01-14 03:33:09.298181043 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/rails_template.rb	2026-01-14 03:33:09.305181118 +0000
                @@ -43,2 +43,2 @@
                -          preamble: "<!-- BEGIN #{template.short_identifier} -->\n",
                -          postamble: "<!-- END #{template.short_identifier} -->\n",
                +          preamble: "<!-- BEGIN #{template.short_identifier} -->",
                +          postamble: "<!-- END #{template.short_identifier} -->",
        lib/haml/string_splitter.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/string_splitter.rb	2026-01-14 03:33:09.298181043 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/string_splitter.rb	2026-01-14 03:33:09.305181118 +0000
                @@ -10 +10 @@
                -    if defined?(Ripper) && RUBY_VERSION >= "2.0.0" && Ripper.respond_to?(:lex)
                +    if defined?(Ripper) && Ripper.respond_to?(:lex)
        lib/haml/util.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/util.rb	2026-01-14 03:33:09.298181043 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/util.rb	2026-01-14 03:33:09.306181128 +0000
                @@ -72 +72 @@
                -        elsif str.encoding.name =~ /^UTF-(16|32)(BE|LE)?$/
                +        elsif /^UTF-(16|32)(BE|LE)?$/.match?(str.encoding.name)
                @@ -255 +255 @@
                -      return unless name =~ /(en)?coding/in
                +      return unless /(en)?coding/in.match?(name)
        lib/haml/version.rb
                --- /tmp/d20260114-795-3z8l2j/haml-6.3.0/lib/haml/version.rb	2026-01-14 03:33:09.298181043 +0000
                +++ /tmp/d20260114-795-3z8l2j/haml-7.2.0/lib/haml/version.rb	2026-01-14 03:33:09.306181128 +0000
                @@ -3 +3 @@
                -  VERSION = '6.3.0'
                +  VERSION = '7.2.0'

@github-actions
Copy link
Contributor

gem compare --diff haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
        .github/workflows/release.yml
                --- /tmp/20260114-724-96wv3y	2026-01-14 03:33:10.315513108 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/.github/workflows/release.yml	2026-01-14 03:33:10.308513092 +0000
                @@ -0,0 +1,46 @@
                +name: Release
                +
                +on:
                +  push:
                +    tags:
                +      - 'v*'
                +
                +permissions:
                +  contents: read
                +
                +jobs:
                +  push:
                +    if: github.repository_owner == 'haml'
                +    runs-on: ubuntu-latest
                +
                +    environment:
                +      name: rubygems.org
                +      url: https://rubygems.org/gems/haml
                +
                +    permissions:
                +      contents: write
                +      id-token: write
                +
                +    steps:
                +      - name: Harden Runner
                +        uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
                +        with:
                +          egress-policy: audit
                +
                +      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
                +
                +      - name: Set up Ruby
                +        uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
                +        with:
                +          bundler-cache: true
                +          ruby-version: ruby
                +
                +      - name: Publish to RubyGems
                +        uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
                +
                +      - name: Create GitHub release
                +        run: |
                +          tag_name="$(git describe --tags --abbrev=0)"
                +          gh release create "${tag_name}" --verify-tag --generate-notes
                +        env:
                +          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/.github/workflows/test.yml	2026-01-14 03:33:10.300513075 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/.github/workflows/test.yml	2026-01-14 03:33:10.308513092 +0000
                @@ -20,5 +19,0 @@
                -          - '2.5'
                -          - '2.6'
                -          - '2.7'
                -          - '3.0'
                -          - '3.1'
                @@ -25,0 +21,3 @@
                +          - '3.3'
                +          - '3.4'
                +          - ruby-head
                @@ -27 +25 @@
                -          - truffleruby-head
                +          - truffleruby
                @@ -29 +27 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGELOG.md
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/CHANGELOG.md	2026-01-14 03:33:10.300513075 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/CHANGELOG.md	2026-01-14 03:33:10.308513092 +0000
                @@ -2,0 +3,37 @@
                +## 7.2.0
                +
                +* Do not require rails when haml is required https://github.com/haml/haml/pull/1201
                +* Point `changelog_uri` to GitHub Releases https://github.com/haml/haml/pull/1202
                +
                +## 7.1.0
                +
                +* Support xhtml format for boolean nested data attributes https://github.com/haml/haml/pull/1200
                +
                +## 7.0.2
                +
                +* Replace usages of `=~` with `.match?` where possible https://github.com/haml/haml/pull/1196
                +* Add source code URI to gemspec metadata https://github.com/haml/haml/pull/1197
                +
                +## 7.0.1
                +
                +* Use `Regexp#match?` predicate where possible https://github.com/haml/haml/pull/1194
                +* Fix the 'Changelog' link on rubygems.org/gems/haml https://github.com/haml/haml/pull/1192
                +
                +## 7.0.0
                +
                +* Change the default `attr_quote` from `'` to `"` https://github.com/haml/haml/issues/1188
                +* Bump required Ruby version to 3.2 https://github.com/haml/haml/issues/1176
                +
                +## 6.4.0
                +
                +* Authorize characters in attribute name for vuejs https://github.com/haml/haml/pull/1172
                +* Compile new-style attributes statically https://github.com/haml/haml/pull/1165
                +* Remove newlines from template annotation comments https://github.com/haml/haml/pull/1186
                +* Fix line numbers within a :ruby filter https://github.com/haml/haml/pull/1166
                +* Fix .class + nested class array bug https://github.com/haml/haml/pull/1191
                +
                +## 6.3.1
                +
                +* Optimize string transformation using `String#tr` https://github.com/haml/haml/pull/1168
                +* Provide a Changelog link on rubygems.org https://github.com/haml/haml/pull/1157
                +
                @@ -11 +47,0 @@
                -  * See [the reference](https://github.com/haml/haml/blob/v6.2.5/REFERENCE.md#turbo) for suggested alternatives.
        Gemfile
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/Gemfile	2026-01-14 03:33:10.300513075 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/Gemfile	2026-01-14 03:33:10.309513095 +0000
                @@ -13 +13,3 @@
                -gem 'pry'
                +gem 'base64'
                +gem 'bigdecimal'
                +gem 'mutex_m'
                @@ -15 +17 @@
                -if /java/ === RUBY_PLATFORM # JRuby
                +if /java/.match?(RUBY_PLATFORM) # JRuby
                @@ -23,4 +24,0 @@
                -end
                -
                -if RUBY_VERSION < '2.6'
                -  gem 'rake-compiler', '< 1.2.4'
        README.md
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/README.md	2026-01-14 03:33:10.301513077 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/README.md	2026-01-14 03:33:10.309513095 +0000
                @@ -6,0 +7 @@
                +[![Discord Server](https://dcbadge.limes.pink/api/server/https://discord.gg/G8dEAwvV2Y)](https://discord.gg/G8dEAwvV2Y)
                @@ -159 +160 @@
                -Haml currently supports Ruby 2.0.0 and higher, so please make sure your changes run on 2.0+.
                +Haml currently supports Ruby 3.2.0 and higher, so please make sure your changes run on 3.2+.
        REFERENCE.md
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/REFERENCE.md	2026-01-14 03:33:10.301513077 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/REFERENCE.md	2026-01-14 03:33:10.309513095 +0000
                @@ -108 +108 @@
                -For the complete list of available options, please see `Haml::Engine`.
                +For the complete list of available options, please see [`Haml::Engine`](https://github.com/haml/haml/blob/main/lib/haml/engine.rb).
                @@ -323 +323 @@
                -[`Haml::AttributeBuilder::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_builder.rb#L5),
                +[`Haml::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_compiler.rb#L8),
                @@ -363,7 +362,0 @@
                -Notice that the underscore in `author_id` was replaced with a hyphen. If you wish
                -to suppress this behavior, you can set Haml's
                -{Haml::Options#hyphenate_data_attrs `:hyphenate_data_attrs` option} to `false`,
                -and the output will be rendered as:
                -
                -    <a data-author_id='123' data-category='7' href='/posts'>Posts By Author</a>
                -
                @@ -571 +564 @@
                -      @user = CrazyUser.find(15)
                +      @user = FriendlyUser.find(15)
                @@ -582 +575 @@
                -    <div class='greeting_crazy_user' id='greeting_crazy_user_15'>
                +    <div class='greeting_friendly_user' id='greeting_friendly_user_15'>
                @@ -590 +583 @@
                -    # file: app/models/crazy_user.rb
                +    # file: app/models/friendly_user.rb
                @@ -592 +585 @@
                -    class CrazyUser < ActiveRecord::Base
                +    class FriendlyUser < ActiveRecord::Base
                @@ -594 +587 @@
                -        "a_crazy_user"
                +        "a_friendly_user"
                @@ -605 +598 @@
                -    <div class='a_crazy_user' id='a_crazy_user_15'>
                +    <div class='a_friendly_user' id='a_friendly_user_15'>
                @@ -1301 +1294 @@
                -For people using Turbo-rails and Haml 6+ need to either:
                +For people using Turbo-rails need to either:
        bin/console
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/bin/console	2026-01-14 03:33:10.301513077 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/bin/console	2026-01-14 03:33:10.309513095 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -9,3 +9,2 @@
                -# (If you use this, don't forget to add pry to your Gemfile!)
                -require 'pry'
                -Pry.start
                +require 'irb'
                +IRB.start
        bin/stackprof
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/bin/stackprof	2026-01-14 03:33:10.301513077 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/bin/stackprof	2026-01-14 03:33:10.310513097 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -23 +23 @@
                -Hamlit::Engine.new.call(haml)
                +Haml::Engine.new.call(haml)
        haml.gemspec
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/haml.gemspec	2026-01-14 03:33:10.302513080 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/haml.gemspec	2026-01-14 03:33:10.310513097 +0000
                @@ -24 +24,4 @@
                -  spec.required_ruby_version = '>= 2.1.0'
                +  spec.metadata["changelog_uri"] = "https://github.com/haml/haml/releases"
                +  spec.metadata["source_code_uri"] = "https://github.com/haml/haml"
                +
                +  spec.required_ruby_version = '>= 3.2.0'
                @@ -34 +36,0 @@
                -  spec.add_development_dependency 'haml', '>= 5'
        lib/haml.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml.rb	2026-01-14 03:33:10.302513080 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml.rb	2026-01-14 03:33:10.310513097 +0000
                @@ -8,5 +8 @@
                -  begin
                -    require 'rails'
                -    require 'haml/railtie'
                -  rescue LoadError
                -  end
                +  require 'haml/railtie' if defined?(Rails::Railtie)
        lib/haml/attribute_builder.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:10.302513080 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:10.310513097 +0000
                @@ -19 +19 @@
                -          buf << build_data(escape_attrs, quote, *hash[key])
                +          buf << build_data(escape_attrs, quote, format, *hash[key])
                @@ -21 +21 @@
                -          buf << build_aria(escape_attrs, quote, *hash[key])
                +          buf << build_aria(escape_attrs, quote, format, *hash[key])
                @@ -57 +57 @@
                -          classes += value.select { |v| v }
                +          classes += value.flatten.select { |v| v }
                @@ -65,2 +65,2 @@
                -    def build_data(escape_attrs, quote, *hashes)
                -      build_data_attribute(:data, escape_attrs, quote, *hashes)
                +    def build_data(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:data, escape_attrs, quote, format, *hashes)
                @@ -69,2 +69,2 @@
                -    def build_aria(escape_attrs, quote, *hashes)
                -      build_data_attribute(:aria, escape_attrs, quote, *hashes)
                +    def build_aria(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:aria, escape_attrs, quote, format, *hashes)
                @@ -75 +75 @@
                -    def build_data_attribute(key, escape_attrs, quote, *hashes)
                +    def build_data_attribute(key, escape_attrs, quote, format, *hashes)
                @@ -87 +87 @@
                -          attrs << " #{key}"
                +          build_boolean!(escape_attrs, quote, format, attrs, key, value)
                @@ -108 +108 @@
                -              flattened["#{key}-#{k.to_s.gsub(/_/, '-')}"] = v
                +              flattened["#{key}-#{k.to_s.tr('_', '-')}"] = v
        lib/haml/attribute_compiler.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:10.302513080 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:10.310513097 +0000
                @@ -88 +88 @@
                -      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", values.map { |v| literal_for(v) }]
                +      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", @format.inspect, values.map { |v| literal_for(v) }]
                @@ -101 +101 @@
                -      if Temple::StaticAnalyzer.static?(exp)
                +      if values.last.first == :static || Temple::StaticAnalyzer.static?(exp)
        lib/haml/engine.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/engine.rb	2026-01-14 03:33:10.304513084 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/engine.rb	2026-01-14 03:33:10.311513099 +0000
                @@ -20 +20 @@
                -      attr_quote:   "'",
                +      attr_quote:   '"',
                @@ -26 +26 @@
                -      filename:     "",
                +      filename:     '',
        lib/haml/filters/plain.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/filters/plain.rb	2026-01-14 03:33:10.305513086 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/filters/plain.rb	2026-01-14 03:33:10.313513103 +0000
                @@ -10 +10 @@
                -        [:multi, *compile_plain(text)]
                +        [:multi, [:newline], *compile_plain(text)]
        lib/haml/filters/ruby.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:10.305513086 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:10.313513103 +0000
                @@ -6 +6 @@
                -        [:code, node.value[:text]]
                +        [:multi, [:newline], [:code, node.value[:text]]]
        lib/haml/parser.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/parser.rb	2026-01-14 03:33:10.307513090 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/parser.rb	2026-01-14 03:33:10.314513105 +0000
                @@ -185 +185 @@
                -      return @template_tabs + 1 if flat? && line.whitespace =~ /^#{@flat_spaces}/
                +      return @template_tabs + 1 if flat? && /^#{@flat_spaces}/.match?(line.whitespace)
                @@ -239 +239 @@
                -        unless value =~ /\A{.*}\z/m
                +        unless /\A{.*}\z/m.match?(value)
                @@ -531 +531 @@
                -      raise Error.new(Error.message(:invalid_filter_name, name)) unless name =~ /^\w+$/
                +      raise Error.new(Error.message(:invalid_filter_name, name)) unless /^\w+$/.match?(name)
                @@ -633 +633 @@
                -      if !attributes.empty? && (attributes =~ /[.#](\.|#|\z)/)
                +      if !attributes.empty? && /[.#](\.|#|\z)/.match?(attributes)
                @@ -752 +752 @@
                -      unless (name = scanner.scan(/[-:\w]+/))
                +      unless (name = scanner.scan(/[-:@#\w\.]+/))
                @@ -789 +789 @@
                -          (line_defined && @line.text[0] == ?: && line.full =~ %r[^#{@line.full[/^\s+/]}\s])
                +          (line_defined && @line.text[0] == ?: && %r[^#{@line.full[/^\s+/]}\s].match?(line.full))
                @@ -799 +799 @@
                -      line && !line.text.empty? && line.full !~ /^#{@flat_spaces}/
                +      line && !line.text.empty? && !(/^#{@flat_spaces}/.match?(line.full))
                @@ -817 +817 @@
                -      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && text !~ BLOCK_WITH_SPACES
                +      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && !BLOCK_WITH_SPACES.match?(text)
                @@ -841 +841 @@
                -        !((text[-3, 2] =~ /\W\?/) || text[-3, 2] == "?\\")
                +        !(/\W\?/.match?(text[-3, 2]) || text[-3, 2] == "?\\")
                @@ -874 +874 @@
                -      @next_line.full =~ (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/)
                +      (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/).match?(@next_line.full)
        lib/haml/rails_template.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/rails_template.rb	2026-01-14 03:33:10.307513090 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/rails_template.rb	2026-01-14 03:33:10.314513105 +0000
                @@ -43,2 +43,2 @@
                -          preamble: "<!-- BEGIN #{template.short_identifier} -->\n",
                -          postamble: "<!-- END #{template.short_identifier} -->\n",
                +          preamble: "<!-- BEGIN #{template.short_identifier} -->",
                +          postamble: "<!-- END #{template.short_identifier} -->",
        lib/haml/string_splitter.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/string_splitter.rb	2026-01-14 03:33:10.307513090 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/string_splitter.rb	2026-01-14 03:33:10.314513105 +0000
                @@ -10 +10 @@
                -    if defined?(Ripper) && RUBY_VERSION >= "2.0.0" && Ripper.respond_to?(:lex)
                +    if defined?(Ripper) && Ripper.respond_to?(:lex)
        lib/haml/util.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/util.rb	2026-01-14 03:33:10.307513090 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/util.rb	2026-01-14 03:33:10.314513105 +0000
                @@ -72 +72 @@
                -        elsif str.encoding.name =~ /^UTF-(16|32)(BE|LE)?$/
                +        elsif /^UTF-(16|32)(BE|LE)?$/.match?(str.encoding.name)
                @@ -255 +255 @@
                -      return unless name =~ /(en)?coding/in
                +      return unless /(en)?coding/in.match?(name)
        lib/haml/version.rb
                --- /tmp/d20260114-724-oz1kym/haml-6.3.0/lib/haml/version.rb	2026-01-14 03:33:10.307513090 +0000
                +++ /tmp/d20260114-724-oz1kym/haml-7.2.0/lib/haml/version.rb	2026-01-14 03:33:10.315513108 +0000
                @@ -3 +3 @@
                -  VERSION = '6.3.0'
                +  VERSION = '7.2.0'

@github-actions
Copy link
Contributor

gem compare haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT date:
    6.3.0: 2023-12-10 00:00:00 UTC
    7.2.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    6.3.0: {"rubygems_mfa_required" => "true"}
    7.2.0: {"rubygems_mfa_required" => "true", "changelog_uri" => "https://github.com/haml/haml/releases", "source_code_uri" => "https://github.com/haml/haml"}
  DIFFERENT required_ruby_version:
    6.3.0: >= 2.1.0
    7.2.0: >= 3.2.0
  DIFFERENT rubygems_version:
    6.3.0: 3.4.10
    7.2.0: 3.6.7
  DIFFERENT version:
    6.3.0: 6.3.0
    7.2.0: 7.2.0
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
            .github/workflows/release.yml +46/-0
      * Changed:
            .github/workflows/test.yml +5/-7
            CHANGELOG.md +37/-1
            Gemfile +4/-6
            README.md +2/-1
            REFERENCE.md +9/-16
            bin/console +3/-4
            bin/stackprof +2/-2
            haml.gemspec +4/-2
            lib/haml.rb +1/-5
            lib/haml/attribute_builder.rb +10/-10
            lib/haml/attribute_compiler.rb +2/-2
            lib/haml/engine.rb +2/-2
            lib/haml/filters/plain.rb +1/-1
            lib/haml/filters/ruby.rb +1/-1
            lib/haml/parser.rb +10/-10
            lib/haml/rails_template.rb +2/-2
            lib/haml/string_splitter.rb +1/-1
            lib/haml/util.rb +2/-2
            lib/haml/version.rb +1/-1
  DIFFERENT development dependencies:
    6.3.0->7.2.0:
      * Deleted:
            haml [">= 5"] (development)
  DIFFERENT Gemfile dependencies
    6.3.0->7.2.0:
      * Added:
            base64 [">= 0"] (runtime)
            bigdecimal [">= 0"] (runtime)
            mutex_m [">= 0"] (runtime)
      * Deleted
            pry [">= 0"] (runtime)
            rake-compiler ["< 1.2.4"] (runtime)

@github-actions
Copy link
Contributor

gem compare temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT date:
    0.10.3: 2023-10-03 00:00:00 UTC
    0.10.4: 2025-07-24 00:00:00 UTC
  DIFFERENT rubygems_version:
    0.10.3: 3.4.10
    0.10.4: 3.6.7
  DIFFERENT version:
    0.10.3: 0.10.3
    0.10.4: 0.10.4
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
            .github/workflows/test.yml +3/-1
            CHANGES +4/-0
            lib/temple/filters/encoding.rb +1/-1
            lib/temple/version.rb +1/-1

3 similar comments
@github-actions
Copy link
Contributor

gem compare temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT date:
    0.10.3: 2023-10-03 00:00:00 UTC
    0.10.4: 2025-07-24 00:00:00 UTC
  DIFFERENT rubygems_version:
    0.10.3: 3.4.10
    0.10.4: 3.6.7
  DIFFERENT version:
    0.10.3: 0.10.3
    0.10.4: 0.10.4
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
            .github/workflows/test.yml +3/-1
            CHANGES +4/-0
            lib/temple/filters/encoding.rb +1/-1
            lib/temple/version.rb +1/-1

@github-actions
Copy link
Contributor

gem compare temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT date:
    0.10.3: 2023-10-03 00:00:00 UTC
    0.10.4: 2025-07-24 00:00:00 UTC
  DIFFERENT rubygems_version:
    0.10.3: 3.4.10
    0.10.4: 3.6.7
  DIFFERENT version:
    0.10.3: 0.10.3
    0.10.4: 0.10.4
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
            .github/workflows/test.yml +3/-1
            CHANGES +4/-0
            lib/temple/filters/encoding.rb +1/-1
            lib/temple/version.rb +1/-1

@github-actions
Copy link
Contributor

gem compare temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT date:
    0.10.3: 2023-10-03 00:00:00 UTC
    0.10.4: 2025-07-24 00:00:00 UTC
  DIFFERENT rubygems_version:
    0.10.3: 3.4.10
    0.10.4: 3.6.7
  DIFFERENT version:
    0.10.3: 0.10.3
    0.10.4: 0.10.4
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
            .github/workflows/test.yml +3/-1
            CHANGES +4/-0
            lib/temple/filters/encoding.rb +1/-1
            lib/temple/version.rb +1/-1

@github-actions
Copy link
Contributor

gem compare --diff haml 6.3.0 7.2.0

Compared versions: ["6.3.0", "7.2.0"]
  DIFFERENT files:
    6.3.0->7.2.0:
      * Added:
        .github/workflows/release.yml
                --- /tmp/20260114-638-xpbcyd	2026-01-14 03:33:28.577134618 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/.github/workflows/release.yml	2026-01-14 03:33:28.564134685 +0000
                @@ -0,0 +1,46 @@
                +name: Release
                +
                +on:
                +  push:
                +    tags:
                +      - 'v*'
                +
                +permissions:
                +  contents: read
                +
                +jobs:
                +  push:
                +    if: github.repository_owner == 'haml'
                +    runs-on: ubuntu-latest
                +
                +    environment:
                +      name: rubygems.org
                +      url: https://rubygems.org/gems/haml
                +
                +    permissions:
                +      contents: write
                +      id-token: write
                +
                +    steps:
                +      - name: Harden Runner
                +        uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
                +        with:
                +          egress-policy: audit
                +
                +      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
                +
                +      - name: Set up Ruby
                +        uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
                +        with:
                +          bundler-cache: true
                +          ruby-version: ruby
                +
                +      - name: Publish to RubyGems
                +        uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
                +
                +      - name: Create GitHub release
                +        run: |
                +          tag_name="$(git describe --tags --abbrev=0)"
                +          gh release create "${tag_name}" --verify-tag --generate-notes
                +        env:
                +          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/.github/workflows/test.yml	2026-01-14 03:33:28.557134721 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/.github/workflows/test.yml	2026-01-14 03:33:28.565134680 +0000
                @@ -20,5 +19,0 @@
                -          - '2.5'
                -          - '2.6'
                -          - '2.7'
                -          - '3.0'
                -          - '3.1'
                @@ -25,0 +21,3 @@
                +          - '3.3'
                +          - '3.4'
                +          - ruby-head
                @@ -27 +25 @@
                -          - truffleruby-head
                +          - truffleruby
                @@ -29 +27 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGELOG.md
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/CHANGELOG.md	2026-01-14 03:33:28.558134716 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/CHANGELOG.md	2026-01-14 03:33:28.565134680 +0000
                @@ -2,0 +3,37 @@
                +## 7.2.0
                +
                +* Do not require rails when haml is required https://github.com/haml/haml/pull/1201
                +* Point `changelog_uri` to GitHub Releases https://github.com/haml/haml/pull/1202
                +
                +## 7.1.0
                +
                +* Support xhtml format for boolean nested data attributes https://github.com/haml/haml/pull/1200
                +
                +## 7.0.2
                +
                +* Replace usages of `=~` with `.match?` where possible https://github.com/haml/haml/pull/1196
                +* Add source code URI to gemspec metadata https://github.com/haml/haml/pull/1197
                +
                +## 7.0.1
                +
                +* Use `Regexp#match?` predicate where possible https://github.com/haml/haml/pull/1194
                +* Fix the 'Changelog' link on rubygems.org/gems/haml https://github.com/haml/haml/pull/1192
                +
                +## 7.0.0
                +
                +* Change the default `attr_quote` from `'` to `"` https://github.com/haml/haml/issues/1188
                +* Bump required Ruby version to 3.2 https://github.com/haml/haml/issues/1176
                +
                +## 6.4.0
                +
                +* Authorize characters in attribute name for vuejs https://github.com/haml/haml/pull/1172
                +* Compile new-style attributes statically https://github.com/haml/haml/pull/1165
                +* Remove newlines from template annotation comments https://github.com/haml/haml/pull/1186
                +* Fix line numbers within a :ruby filter https://github.com/haml/haml/pull/1166
                +* Fix .class + nested class array bug https://github.com/haml/haml/pull/1191
                +
                +## 6.3.1
                +
                +* Optimize string transformation using `String#tr` https://github.com/haml/haml/pull/1168
                +* Provide a Changelog link on rubygems.org https://github.com/haml/haml/pull/1157
                +
                @@ -11 +47,0 @@
                -  * See [the reference](https://github.com/haml/haml/blob/v6.2.5/REFERENCE.md#turbo) for suggested alternatives.
        Gemfile
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/Gemfile	2026-01-14 03:33:28.558134716 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/Gemfile	2026-01-14 03:33:28.565134680 +0000
                @@ -13 +13,3 @@
                -gem 'pry'
                +gem 'base64'
                +gem 'bigdecimal'
                +gem 'mutex_m'
                @@ -15 +17 @@
                -if /java/ === RUBY_PLATFORM # JRuby
                +if /java/.match?(RUBY_PLATFORM) # JRuby
                @@ -23,4 +24,0 @@
                -end
                -
                -if RUBY_VERSION < '2.6'
                -  gem 'rake-compiler', '< 1.2.4'
        README.md
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/README.md	2026-01-14 03:33:28.558134716 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/README.md	2026-01-14 03:33:28.566134674 +0000
                @@ -6,0 +7 @@
                +[![Discord Server](https://dcbadge.limes.pink/api/server/https://discord.gg/G8dEAwvV2Y)](https://discord.gg/G8dEAwvV2Y)
                @@ -159 +160 @@
                -Haml currently supports Ruby 2.0.0 and higher, so please make sure your changes run on 2.0+.
                +Haml currently supports Ruby 3.2.0 and higher, so please make sure your changes run on 3.2+.
        REFERENCE.md
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/REFERENCE.md	2026-01-14 03:33:28.558134716 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/REFERENCE.md	2026-01-14 03:33:28.566134674 +0000
                @@ -108 +108 @@
                -For the complete list of available options, please see `Haml::Engine`.
                +For the complete list of available options, please see [`Haml::Engine`](https://github.com/haml/haml/blob/main/lib/haml/engine.rb).
                @@ -323 +323 @@
                -[`Haml::AttributeBuilder::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_builder.rb#L5),
                +[`Haml::BOOLEAN_ATTRIBUTES`](https://github.com/haml/haml/blob/main/lib/haml/attribute_compiler.rb#L8),
                @@ -363,7 +362,0 @@
                -Notice that the underscore in `author_id` was replaced with a hyphen. If you wish
                -to suppress this behavior, you can set Haml's
                -{Haml::Options#hyphenate_data_attrs `:hyphenate_data_attrs` option} to `false`,
                -and the output will be rendered as:
                -
                -    <a data-author_id='123' data-category='7' href='/posts'>Posts By Author</a>
                -
                @@ -571 +564 @@
                -      @user = CrazyUser.find(15)
                +      @user = FriendlyUser.find(15)
                @@ -582 +575 @@
                -    <div class='greeting_crazy_user' id='greeting_crazy_user_15'>
                +    <div class='greeting_friendly_user' id='greeting_friendly_user_15'>
                @@ -590 +583 @@
                -    # file: app/models/crazy_user.rb
                +    # file: app/models/friendly_user.rb
                @@ -592 +585 @@
                -    class CrazyUser < ActiveRecord::Base
                +    class FriendlyUser < ActiveRecord::Base
                @@ -594 +587 @@
                -        "a_crazy_user"
                +        "a_friendly_user"
                @@ -605 +598 @@
                -    <div class='a_crazy_user' id='a_crazy_user_15'>
                +    <div class='a_friendly_user' id='a_friendly_user_15'>
                @@ -1301 +1294 @@
                -For people using Turbo-rails and Haml 6+ need to either:
                +For people using Turbo-rails need to either:
        bin/console
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/bin/console	2026-01-14 03:33:28.559134711 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/bin/console	2026-01-14 03:33:28.566134674 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -9,3 +9,2 @@
                -# (If you use this, don't forget to add pry to your Gemfile!)
                -require 'pry'
                -Pry.start
                +require 'irb'
                +IRB.start
        bin/stackprof
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/bin/stackprof	2026-01-14 03:33:28.559134711 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/bin/stackprof	2026-01-14 03:33:28.566134674 +0000
                @@ -4 +4 @@
                -require 'hamlit'
                +require 'haml'
                @@ -23 +23 @@
                -Hamlit::Engine.new.call(haml)
                +Haml::Engine.new.call(haml)
        haml.gemspec
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/haml.gemspec	2026-01-14 03:33:28.559134711 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/haml.gemspec	2026-01-14 03:33:28.567134669 +0000
                @@ -24 +24,4 @@
                -  spec.required_ruby_version = '>= 2.1.0'
                +  spec.metadata["changelog_uri"] = "https://github.com/haml/haml/releases"
                +  spec.metadata["source_code_uri"] = "https://github.com/haml/haml"
                +
                +  spec.required_ruby_version = '>= 3.2.0'
                @@ -34 +36,0 @@
                -  spec.add_development_dependency 'haml', '>= 5'
        lib/haml.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml.rb	2026-01-14 03:33:28.559134711 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml.rb	2026-01-14 03:33:28.567134669 +0000
                @@ -8,5 +8 @@
                -  begin
                -    require 'rails'
                -    require 'haml/railtie'
                -  rescue LoadError
                -  end
                +  require 'haml/railtie' if defined?(Rails::Railtie)
        lib/haml/attribute_builder.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:28.560134705 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/attribute_builder.rb	2026-01-14 03:33:28.567134669 +0000
                @@ -19 +19 @@
                -          buf << build_data(escape_attrs, quote, *hash[key])
                +          buf << build_data(escape_attrs, quote, format, *hash[key])
                @@ -21 +21 @@
                -          buf << build_aria(escape_attrs, quote, *hash[key])
                +          buf << build_aria(escape_attrs, quote, format, *hash[key])
                @@ -57 +57 @@
                -          classes += value.select { |v| v }
                +          classes += value.flatten.select { |v| v }
                @@ -65,2 +65,2 @@
                -    def build_data(escape_attrs, quote, *hashes)
                -      build_data_attribute(:data, escape_attrs, quote, *hashes)
                +    def build_data(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:data, escape_attrs, quote, format, *hashes)
                @@ -69,2 +69,2 @@
                -    def build_aria(escape_attrs, quote, *hashes)
                -      build_data_attribute(:aria, escape_attrs, quote, *hashes)
                +    def build_aria(escape_attrs, quote, format, *hashes)
                +      build_data_attribute(:aria, escape_attrs, quote, format, *hashes)
                @@ -75 +75 @@
                -    def build_data_attribute(key, escape_attrs, quote, *hashes)
                +    def build_data_attribute(key, escape_attrs, quote, format, *hashes)
                @@ -87 +87 @@
                -          attrs << " #{key}"
                +          build_boolean!(escape_attrs, quote, format, attrs, key, value)
                @@ -108 +108 @@
                -              flattened["#{key}-#{k.to_s.gsub(/_/, '-')}"] = v
                +              flattened["#{key}-#{k.to_s.tr('_', '-')}"] = v
        lib/haml/attribute_compiler.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:28.560134705 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/attribute_compiler.rb	2026-01-14 03:33:28.567134669 +0000
                @@ -88 +88 @@
                -      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", values.map { |v| literal_for(v) }]
                +      args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", @format.inspect, values.map { |v| literal_for(v) }]
                @@ -101 +101 @@
                -      if Temple::StaticAnalyzer.static?(exp)
                +      if values.last.first == :static || Temple::StaticAnalyzer.static?(exp)
        lib/haml/engine.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/engine.rb	2026-01-14 03:33:28.561134700 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/engine.rb	2026-01-14 03:33:28.571134649 +0000
                @@ -20 +20 @@
                -      attr_quote:   "'",
                +      attr_quote:   '"',
                @@ -26 +26 @@
                -      filename:     "",
                +      filename:     '',
        lib/haml/filters/plain.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/filters/plain.rb	2026-01-14 03:33:28.562134695 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/filters/plain.rb	2026-01-14 03:33:28.574134633 +0000
                @@ -10 +10 @@
                -        [:multi, *compile_plain(text)]
                +        [:multi, [:newline], *compile_plain(text)]
        lib/haml/filters/ruby.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:28.562134695 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/filters/ruby.rb	2026-01-14 03:33:28.574134633 +0000
                @@ -6 +6 @@
                -        [:code, node.value[:text]]
                +        [:multi, [:newline], [:code, node.value[:text]]]
        lib/haml/parser.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/parser.rb	2026-01-14 03:33:28.563134690 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/parser.rb	2026-01-14 03:33:28.575134628 +0000
                @@ -185 +185 @@
                -      return @template_tabs + 1 if flat? && line.whitespace =~ /^#{@flat_spaces}/
                +      return @template_tabs + 1 if flat? && /^#{@flat_spaces}/.match?(line.whitespace)
                @@ -239 +239 @@
                -        unless value =~ /\A{.*}\z/m
                +        unless /\A{.*}\z/m.match?(value)
                @@ -531 +531 @@
                -      raise Error.new(Error.message(:invalid_filter_name, name)) unless name =~ /^\w+$/
                +      raise Error.new(Error.message(:invalid_filter_name, name)) unless /^\w+$/.match?(name)
                @@ -633 +633 @@
                -      if !attributes.empty? && (attributes =~ /[.#](\.|#|\z)/)
                +      if !attributes.empty? && /[.#](\.|#|\z)/.match?(attributes)
                @@ -752 +752 @@
                -      unless (name = scanner.scan(/[-:\w]+/))
                +      unless (name = scanner.scan(/[-:@#\w\.]+/))
                @@ -789 +789 @@
                -          (line_defined && @line.text[0] == ?: && line.full =~ %r[^#{@line.full[/^\s+/]}\s])
                +          (line_defined && @line.text[0] == ?: && %r[^#{@line.full[/^\s+/]}\s].match?(line.full))
                @@ -799 +799 @@
                -      line && !line.text.empty? && line.full !~ /^#{@flat_spaces}/
                +      line && !line.text.empty? && !(/^#{@flat_spaces}/.match?(line.full))
                @@ -817 +817 @@
                -      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && text !~ BLOCK_WITH_SPACES
                +      text && text.length > 1 && text[-1] == MULTILINE_CHAR_VALUE && text[-2] == ?\s && !BLOCK_WITH_SPACES.match?(text)
                @@ -841 +841 @@
                -        !((text[-3, 2] =~ /\W\?/) || text[-3, 2] == "?\\")
                +        !(/\W\?/.match?(text[-3, 2]) || text[-3, 2] == "?\\")
                @@ -874 +874 @@
                -      @next_line.full =~ (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/)
                +      (@indentation ? /^#{@indentation * (@template_tabs + 1)}/ : /^\s/).match?(@next_line.full)
        lib/haml/rails_template.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/rails_template.rb	2026-01-14 03:33:28.563134690 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/rails_template.rb	2026-01-14 03:33:28.576134623 +0000
                @@ -43,2 +43,2 @@
                -          preamble: "<!-- BEGIN #{template.short_identifier} -->\n",
                -          postamble: "<!-- END #{template.short_identifier} -->\n",
                +          preamble: "<!-- BEGIN #{template.short_identifier} -->",
                +          postamble: "<!-- END #{template.short_identifier} -->",
        lib/haml/string_splitter.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/string_splitter.rb	2026-01-14 03:33:28.564134685 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/string_splitter.rb	2026-01-14 03:33:28.576134623 +0000
                @@ -10 +10 @@
                -    if defined?(Ripper) && RUBY_VERSION >= "2.0.0" && Ripper.respond_to?(:lex)
                +    if defined?(Ripper) && Ripper.respond_to?(:lex)
        lib/haml/util.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/util.rb	2026-01-14 03:33:28.564134685 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/util.rb	2026-01-14 03:33:28.576134623 +0000
                @@ -72 +72 @@
                -        elsif str.encoding.name =~ /^UTF-(16|32)(BE|LE)?$/
                +        elsif /^UTF-(16|32)(BE|LE)?$/.match?(str.encoding.name)
                @@ -255 +255 @@
                -      return unless name =~ /(en)?coding/in
                +      return unless /(en)?coding/in.match?(name)
        lib/haml/version.rb
                --- /tmp/d20260114-638-97p9km/haml-6.3.0/lib/haml/version.rb	2026-01-14 03:33:28.564134685 +0000
                +++ /tmp/d20260114-638-97p9km/haml-7.2.0/lib/haml/version.rb	2026-01-14 03:33:28.576134623 +0000
                @@ -3 +3 @@
                -  VERSION = '6.3.0'
                +  VERSION = '7.2.0'

@github-actions
Copy link
Contributor

gem compare --diff temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-1156-n1shfu/temple-0.10.3/.github/workflows/test.yml	2026-01-14 03:33:31.360630743 +0000
                +++ /tmp/d20260114-1156-n1shfu/temple-0.10.4/.github/workflows/test.yml	2026-01-14 03:33:31.367630705 +0000
                @@ -25,0 +26,2 @@
                +          - '3.3'
                +          - '3.4'
                @@ -29 +31 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGES
                --- /tmp/d20260114-1156-n1shfu/temple-0.10.3/CHANGES	2026-01-14 03:33:31.361630738 +0000
                +++ /tmp/d20260114-1156-n1shfu/temple-0.10.4/CHANGES	2026-01-14 03:33:31.367630705 +0000
                @@ -0,0 +1,4 @@
                +0.10.4
                +
                +  * Fix Ruby 3.4 compatibility (#152)
                +
        lib/temple/filters/encoding.rb
                --- /tmp/d20260114-1156-n1shfu/temple-0.10.3/lib/temple/filters/encoding.rb	2026-01-14 03:33:31.362630733 +0000
                +++ /tmp/d20260114-1156-n1shfu/temple-0.10.4/lib/temple/filters/encoding.rb	2026-01-14 03:33:31.369630695 +0000
                @@ -13 +13 @@
                -          s = s.dup if s.frozen?
                +          s = +s
        lib/temple/version.rb
                --- /tmp/d20260114-1156-n1shfu/temple-0.10.3/lib/temple/version.rb	2026-01-14 03:33:31.367630705 +0000
                +++ /tmp/d20260114-1156-n1shfu/temple-0.10.4/lib/temple/version.rb	2026-01-14 03:33:31.373630673 +0000
                @@ -3 +3 @@
                -  VERSION = '0.10.3'
                +  VERSION = '0.10.4'

@github-actions
Copy link
Contributor

gem compare --diff temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-1150-y4gu9c/temple-0.10.3/.github/workflows/test.yml	2026-01-14 03:33:35.886524005 +0000
                +++ /tmp/d20260114-1150-y4gu9c/temple-0.10.4/.github/workflows/test.yml	2026-01-14 03:33:35.894523961 +0000
                @@ -25,0 +26,2 @@
                +          - '3.3'
                +          - '3.4'
                @@ -29 +31 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGES
                --- /tmp/d20260114-1150-y4gu9c/temple-0.10.3/CHANGES	2026-01-14 03:33:35.886524005 +0000
                +++ /tmp/d20260114-1150-y4gu9c/temple-0.10.4/CHANGES	2026-01-14 03:33:35.894523961 +0000
                @@ -0,0 +1,4 @@
                +0.10.4
                +
                +  * Fix Ruby 3.4 compatibility (#152)
                +
        lib/temple/filters/encoding.rb
                --- /tmp/d20260114-1150-y4gu9c/temple-0.10.3/lib/temple/filters/encoding.rb	2026-01-14 03:33:35.890523983 +0000
                +++ /tmp/d20260114-1150-y4gu9c/temple-0.10.4/lib/temple/filters/encoding.rb	2026-01-14 03:33:35.896523950 +0000
                @@ -13 +13 @@
                -          s = s.dup if s.frozen?
                +          s = +s
        lib/temple/version.rb
                --- /tmp/d20260114-1150-y4gu9c/temple-0.10.3/lib/temple/version.rb	2026-01-14 03:33:35.893523966 +0000
                +++ /tmp/d20260114-1150-y4gu9c/temple-0.10.4/lib/temple/version.rb	2026-01-14 03:33:35.900523928 +0000
                @@ -3 +3 @@
                -  VERSION = '0.10.3'
                +  VERSION = '0.10.4'

@github-actions
Copy link
Contributor

gem compare --diff temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-1296-f41vsr/temple-0.10.3/.github/workflows/test.yml	2026-01-14 03:33:36.022555022 +0000
                +++ /tmp/d20260114-1296-f41vsr/temple-0.10.4/.github/workflows/test.yml	2026-01-14 03:33:36.029555054 +0000
                @@ -25,0 +26,2 @@
                +          - '3.3'
                +          - '3.4'
                @@ -29 +31 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGES
                --- /tmp/d20260114-1296-f41vsr/temple-0.10.3/CHANGES	2026-01-14 03:33:36.022555022 +0000
                +++ /tmp/d20260114-1296-f41vsr/temple-0.10.4/CHANGES	2026-01-14 03:33:36.029555054 +0000
                @@ -0,0 +1,4 @@
                +0.10.4
                +
                +  * Fix Ruby 3.4 compatibility (#152)
                +
        lib/temple/filters/encoding.rb
                --- /tmp/d20260114-1296-f41vsr/temple-0.10.3/lib/temple/filters/encoding.rb	2026-01-14 03:33:36.024555031 +0000
                +++ /tmp/d20260114-1296-f41vsr/temple-0.10.4/lib/temple/filters/encoding.rb	2026-01-14 03:33:36.031555064 +0000
                @@ -13 +13 @@
                -          s = s.dup if s.frozen?
                +          s = +s
        lib/temple/version.rb
                --- /tmp/d20260114-1296-f41vsr/temple-0.10.3/lib/temple/version.rb	2026-01-14 03:33:36.029555054 +0000
                +++ /tmp/d20260114-1296-f41vsr/temple-0.10.4/lib/temple/version.rb	2026-01-14 03:33:36.035555083 +0000
                @@ -3 +3 @@
                -  VERSION = '0.10.3'
                +  VERSION = '0.10.4'

@github-actions
Copy link
Contributor

gem compare --diff temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-1364-7g3kdd/temple-0.10.3/.github/workflows/test.yml	2026-01-14 03:33:36.233461239 +0000
                +++ /tmp/d20260114-1364-7g3kdd/temple-0.10.4/.github/workflows/test.yml	2026-01-14 03:33:36.241461327 +0000
                @@ -25,0 +26,2 @@
                +          - '3.3'
                +          - '3.4'
                @@ -29 +31 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGES
                --- /tmp/d20260114-1364-7g3kdd/temple-0.10.3/CHANGES	2026-01-14 03:33:36.234461250 +0000
                +++ /tmp/d20260114-1364-7g3kdd/temple-0.10.4/CHANGES	2026-01-14 03:33:36.241461327 +0000
                @@ -0,0 +1,4 @@
                +0.10.4
                +
                +  * Fix Ruby 3.4 compatibility (#152)
                +
        lib/temple/filters/encoding.rb
                --- /tmp/d20260114-1364-7g3kdd/temple-0.10.3/lib/temple/filters/encoding.rb	2026-01-14 03:33:36.236461272 +0000
                +++ /tmp/d20260114-1364-7g3kdd/temple-0.10.4/lib/temple/filters/encoding.rb	2026-01-14 03:33:36.243461348 +0000
                @@ -13 +13 @@
                -          s = s.dup if s.frozen?
                +          s = +s
        lib/temple/version.rb
                --- /tmp/d20260114-1364-7g3kdd/temple-0.10.3/lib/temple/version.rb	2026-01-14 03:33:36.240461316 +0000
                +++ /tmp/d20260114-1364-7g3kdd/temple-0.10.4/lib/temple/version.rb	2026-01-14 03:33:36.246461381 +0000
                @@ -3 +3 @@
                -  VERSION = '0.10.3'
                +  VERSION = '0.10.4'

@github-actions
Copy link
Contributor

gem compare temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT date:
    0.10.3: 2023-10-03 00:00:00 UTC
    0.10.4: 2025-07-24 00:00:00 UTC
  DIFFERENT rubygems_version:
    0.10.3: 3.4.10
    0.10.4: 3.6.7
  DIFFERENT version:
    0.10.3: 0.10.3
    0.10.4: 0.10.4
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
            .github/workflows/test.yml +3/-1
            CHANGES +4/-0
            lib/temple/filters/encoding.rb +1/-1
            lib/temple/version.rb +1/-1

@github-actions
Copy link
Contributor

gem compare thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT homepage:
    1.4.0: http://whatisthor.com/
    1.5.0: https://github.com/rails/thor
  DIFFERENT metadata:
    1.4.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.4.0", "documentation_uri" => "http://whatisthor.com/", "source_code_uri" => "https://github.com/rails/thor/tree/v1.4.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
    1.5.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.5.0", "documentation_uri" => "https://github.com/rails/thor/wiki", "source_code_uri" => "https://github.com/rails/thor/tree/v1.5.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
  DIFFERENT version:
    1.4.0: 1.4.0
    1.5.0: 1.5.0
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
            CONTRIBUTING.md +17/-0
            README.md +1/-2
            lib/thor.rb +34/-1
            lib/thor/actions/inject_into_file.rb +35/-2
            lib/thor/base.rb +2/-1
            lib/thor/shell/basic.rb +14/-6
            lib/thor/shell/color.rb +2/-0
            lib/thor/version.rb +1/-1
            thor.gemspec +3/-3
  DIFFERENT development dependencies:
    1.4.0->1.5.0:
      * Updated:
            bundler from: [">= 1.0", "< 3"] to: [">= 1.0"]

3 similar comments
@github-actions
Copy link
Contributor

gem compare thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT homepage:
    1.4.0: http://whatisthor.com/
    1.5.0: https://github.com/rails/thor
  DIFFERENT metadata:
    1.4.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.4.0", "documentation_uri" => "http://whatisthor.com/", "source_code_uri" => "https://github.com/rails/thor/tree/v1.4.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
    1.5.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.5.0", "documentation_uri" => "https://github.com/rails/thor/wiki", "source_code_uri" => "https://github.com/rails/thor/tree/v1.5.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
  DIFFERENT version:
    1.4.0: 1.4.0
    1.5.0: 1.5.0
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
            CONTRIBUTING.md +17/-0
            README.md +1/-2
            lib/thor.rb +34/-1
            lib/thor/actions/inject_into_file.rb +35/-2
            lib/thor/base.rb +2/-1
            lib/thor/shell/basic.rb +14/-6
            lib/thor/shell/color.rb +2/-0
            lib/thor/version.rb +1/-1
            thor.gemspec +3/-3
  DIFFERENT development dependencies:
    1.4.0->1.5.0:
      * Updated:
            bundler from: [">= 1.0", "< 3"] to: [">= 1.0"]

@github-actions
Copy link
Contributor

gem compare thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT homepage:
    1.4.0: http://whatisthor.com/
    1.5.0: https://github.com/rails/thor
  DIFFERENT metadata:
    1.4.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.4.0", "documentation_uri" => "http://whatisthor.com/", "source_code_uri" => "https://github.com/rails/thor/tree/v1.4.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
    1.5.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.5.0", "documentation_uri" => "https://github.com/rails/thor/wiki", "source_code_uri" => "https://github.com/rails/thor/tree/v1.5.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
  DIFFERENT version:
    1.4.0: 1.4.0
    1.5.0: 1.5.0
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
            CONTRIBUTING.md +17/-0
            README.md +1/-2
            lib/thor.rb +34/-1
            lib/thor/actions/inject_into_file.rb +35/-2
            lib/thor/base.rb +2/-1
            lib/thor/shell/basic.rb +14/-6
            lib/thor/shell/color.rb +2/-0
            lib/thor/version.rb +1/-1
            thor.gemspec +3/-3
  DIFFERENT development dependencies:
    1.4.0->1.5.0:
      * Updated:
            bundler from: [">= 1.0", "< 3"] to: [">= 1.0"]

@github-actions
Copy link
Contributor

gem compare thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT homepage:
    1.4.0: http://whatisthor.com/
    1.5.0: https://github.com/rails/thor
  DIFFERENT metadata:
    1.4.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.4.0", "documentation_uri" => "http://whatisthor.com/", "source_code_uri" => "https://github.com/rails/thor/tree/v1.4.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
    1.5.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.5.0", "documentation_uri" => "https://github.com/rails/thor/wiki", "source_code_uri" => "https://github.com/rails/thor/tree/v1.5.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
  DIFFERENT version:
    1.4.0: 1.4.0
    1.5.0: 1.5.0
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
            CONTRIBUTING.md +17/-0
            README.md +1/-2
            lib/thor.rb +34/-1
            lib/thor/actions/inject_into_file.rb +35/-2
            lib/thor/base.rb +2/-1
            lib/thor/shell/basic.rb +14/-6
            lib/thor/shell/color.rb +2/-0
            lib/thor/version.rb +1/-1
            thor.gemspec +3/-3
  DIFFERENT development dependencies:
    1.4.0->1.5.0:
      * Updated:
            bundler from: [">= 1.0", "< 3"] to: [">= 1.0"]

@github-actions
Copy link
Contributor

gem compare --diff temple 0.10.3 0.10.4

Compared versions: ["0.10.3", "0.10.4"]
  DIFFERENT files:
    0.10.3->0.10.4:
      * Changed:
        .github/workflows/test.yml
                --- /tmp/d20260114-1202-5wq1t3/temple-0.10.3/.github/workflows/test.yml	2026-01-14 03:33:53.414979644 +0000
                +++ /tmp/d20260114-1202-5wq1t3/temple-0.10.4/.github/workflows/test.yml	2026-01-14 03:33:53.421979603 +0000
                @@ -25,0 +26,2 @@
                +          - '3.3'
                +          - '3.4'
                @@ -29 +31 @@
                -      - uses: actions/checkout@v3
                +      - uses: actions/checkout@v4
        CHANGES
                --- /tmp/d20260114-1202-5wq1t3/temple-0.10.3/CHANGES	2026-01-14 03:33:53.414979644 +0000
                +++ /tmp/d20260114-1202-5wq1t3/temple-0.10.4/CHANGES	2026-01-14 03:33:53.421979603 +0000
                @@ -0,0 +1,4 @@
                +0.10.4
                +
                +  * Fix Ruby 3.4 compatibility (#152)
                +
        lib/temple/filters/encoding.rb
                --- /tmp/d20260114-1202-5wq1t3/temple-0.10.3/lib/temple/filters/encoding.rb	2026-01-14 03:33:53.416979633 +0000
                +++ /tmp/d20260114-1202-5wq1t3/temple-0.10.4/lib/temple/filters/encoding.rb	2026-01-14 03:33:53.424979586 +0000
                @@ -13 +13 @@
                -          s = s.dup if s.frozen?
                +          s = +s
        lib/temple/version.rb
                --- /tmp/d20260114-1202-5wq1t3/temple-0.10.3/lib/temple/version.rb	2026-01-14 03:33:53.421979603 +0000
                +++ /tmp/d20260114-1202-5wq1t3/temple-0.10.4/lib/temple/version.rb	2026-01-14 03:33:53.427979569 +0000
                @@ -3 +3 @@
                -  VERSION = '0.10.3'
                +  VERSION = '0.10.4'

@github-actions
Copy link
Contributor

gem compare --diff thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
        CONTRIBUTING.md
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/CONTRIBUTING.md	2026-01-14 03:33:56.181503962 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/CONTRIBUTING.md	2026-01-14 03:33:56.192503908 +0000
                @@ -15,0 +16,17 @@
                +
                +Specs
                +-----
                +
                +Ensure that all specs and code linting checks pass before submitting a pull request.
                +
                +To execute the specs locally, run:
                +
                +```bash
                +bundle exec rspec
                +```
                +
                +Linting checks are done with RuboCop. To run the linter, use:
                +
                +```bash
                +bundle exec rubocop
                +```
        README.md
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/README.md	2026-01-14 03:33:56.182503957 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/README.md	2026-01-14 03:33:56.192503908 +0000
                @@ -30 +30 @@
                -Please see the [wiki][] for basic usage and other documentation on using Thor. You can also check out the [official homepage][homepage].
                +Please see the [wiki][] for basic usage and other documentation on using Thor.
                @@ -33 +32,0 @@
                -[homepage]: http://whatisthor.com/
        lib/thor.rb
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/lib/thor.rb	2026-01-14 03:33:56.182503957 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/lib/thor.rb	2026-01-14 03:33:56.193503903 +0000
                @@ -628 +628 @@
                -      possibilities = all_commands.merge(map).keys.select { |n| meth == n[0, len] }.sort
                +      possibilities = all_commands.reject {|k, v| v.is_a?(HiddenCommand) }.merge(map).keys.select { |n| meth == n[0, len] }.sort
                @@ -671,0 +672,33 @@
                +    end
                +  end
                +
                +  map TREE_MAPPINGS => :tree
                +
                +  desc "tree", "Print a tree of all available commands"
                +  def tree
                +    build_command_tree(self.class, "")
                +  end
                +
                +private
                +
                +  def build_command_tree(klass, indent)
                +    # Print current class name if it's not the root Thor class
                +    unless klass == Thor
                +      say "#{indent}#{klass.namespace || 'default'}", :blue
                +      indent = "#{indent}  "
                +    end
                +
                +    # Print all commands for this class
                +    visible_commands = klass.commands.reject { |_, cmd| cmd.hidden? || cmd.name == "help" }
                +    commands_count = visible_commands.count
                +    visible_commands.sort.each_with_index do |(command_name, command), i|
                +      description = command.description.split("\n").first || ""
                +      icon = i == (commands_count - 1) ? "└─" : "├─"
                +      say "#{indent}#{icon} ", nil, false
                +      say command_name, :green, false
                +      say " (#{description})" unless description.empty?
                +    end
                +
                +    # Print all subcommands (from registered Thor subclasses)
                +    klass.subcommand_classes.each do |_, subclass|
                +      build_command_tree(subclass, indent)
        lib/thor/actions/inject_into_file.rb
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:33:56.183503952 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:33:56.194503898 +0000
                @@ -4,0 +5,32 @@
                +    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                +
                +    # Injects the given content into a file, raising an error if the contents of
                +    # the file are not changed. Different from gsub_file, this method is reversible.
                +    #
                +    # ==== Parameters
                +    # destination<String>:: Relative path to the destination root
                +    # data<String>:: Data to add to the file. Can be given as a block.
                +    # config<Hash>:: give :verbose => false to not log the status and the flag
                +    #                for injection (:after or :before) or :force => true for
                +    #                insert two or more times the same content.
                +    #
                +    # ==== Examples
                +    #
                +    #   insert_into_file "config/environment.rb", "config.gem :thor", :after => "Rails::Initializer.run do |config|\n"
                +    #
                +    #   insert_into_file "config/environment.rb", :after => "Rails::Initializer.run do |config|\n" do
                +    #     gems = ask "Which gems would you like to add?"
                +    #     gems.split(" ").map{ |gem| "  config.gem :#{gem}" }.join("\n")
                +    #   end
                +    #
                +    def insert_into_file!(destination, *args, &block)
                +      data = block_given? ? block : args.shift
                +
                +      config = args.shift || {}
                +      config[:after] = /\z/ unless config.key?(:before) || config.key?(:after)
                +      config = config.merge({error_on_no_change: true})
                +
                +      action InjectIntoFile.new(self, destination, data, config)
                +    end
                +    alias_method :inject_into_file!, :insert_into_file!
                +
                @@ -24,2 +55,0 @@
                -    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                -
                @@ -49,0 +80 @@
                +        @error_on_no_change = @config.fetch(:error_on_no_change, false)
                @@ -61,0 +93,2 @@
                +          elsif @error_on_no_change
                +            raise Thor::Error, "The content of #{destination} did not change"
        lib/thor/base.rb
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/lib/thor/base.rb	2026-01-14 03:33:56.183503952 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/lib/thor/base.rb	2026-01-14 03:33:56.194503898 +0000
                @@ -16 +16 @@
                -  # Shortcuts for help.
                +  # Shortcuts for help and tree commands.
                @@ -17,0 +18 @@
                +  TREE_MAPPINGS       = %w(-t --tree)
        lib/thor/shell/basic.rb
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/lib/thor/shell/basic.rb	2026-01-14 03:33:56.190503918 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/lib/thor/shell/basic.rb	2026-01-14 03:33:56.197503883 +0000
                @@ -314,2 +313,0 @@
                -        diff_cmd = ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u"
                -
                @@ -320 +318 @@
                -          system %(#{diff_cmd} "#{destination}" "#{temp.path}")
                +          system(*diff_tool, destination, temp.path)
                @@ -372 +370 @@
                -        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp|
                +        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination), binmode: true) do |temp|
                @@ -375 +373 @@
                -          system(merge_tool, temp.path, destination)
                +          system(*merge_tool, temp.path, destination)
                @@ -380 +378,11 @@
                -        @merge_tool ||= ENV["THOR_MERGE"] || "git difftool --no-index"
                +        @merge_tool ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_MERGE"] || "git difftool --no-index")
                +        end
                +      end
                +
                +      def diff_tool #:nodoc:
                +        @diff_cmd ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u")
                +        end
        lib/thor/shell/color.rb
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/lib/thor/shell/color.rb	2026-01-14 03:33:56.190503918 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/lib/thor/shell/color.rb	2026-01-14 03:33:56.197503883 +0000
                @@ -0,0 +1,2 @@
                +# frozen_string_literal: true
                +
        lib/thor/version.rb
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/lib/thor/version.rb	2026-01-14 03:33:56.191503913 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/lib/thor/version.rb	2026-01-14 03:33:56.198503879 +0000
                @@ -2 +2 @@
                -  VERSION = "1.4.0"
                +  VERSION = "1.5.0"
        thor.gemspec
                --- /tmp/d20260114-1610-ynvoov/thor-1.4.0/thor.gemspec	2026-01-14 03:33:56.191503913 +0000
                +++ /tmp/d20260114-1610-ynvoov/thor-1.5.0/thor.gemspec	2026-01-14 03:33:56.198503879 +0000
                @@ -12 +12 @@
                -  spec.homepage = "http://whatisthor.com/"
                +  spec.homepage = "https://github.com/rails/thor"
                @@ -19 +19 @@
                -    "documentation_uri" => "http://whatisthor.com/",
                +    "documentation_uri" => "https://github.com/rails/thor/wiki",
                @@ -32 +32 @@
                -  spec.add_development_dependency "bundler", ">= 1.0", "< 3"
                +  spec.add_development_dependency "bundler", ">= 1.0"

@github-actions
Copy link
Contributor

gem compare --diff thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
        CONTRIBUTING.md
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/CONTRIBUTING.md	2026-01-14 03:34:00.317390671 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/CONTRIBUTING.md	2026-01-14 03:34:00.324390635 +0000
                @@ -15,0 +16,17 @@
                +
                +Specs
                +-----
                +
                +Ensure that all specs and code linting checks pass before submitting a pull request.
                +
                +To execute the specs locally, run:
                +
                +```bash
                +bundle exec rspec
                +```
                +
                +Linting checks are done with RuboCop. To run the linter, use:
                +
                +```bash
                +bundle exec rubocop
                +```
        README.md
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/README.md	2026-01-14 03:34:00.318390666 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/README.md	2026-01-14 03:34:00.324390635 +0000
                @@ -30 +30 @@
                -Please see the [wiki][] for basic usage and other documentation on using Thor. You can also check out the [official homepage][homepage].
                +Please see the [wiki][] for basic usage and other documentation on using Thor.
                @@ -33 +32,0 @@
                -[homepage]: http://whatisthor.com/
        lib/thor.rb
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/lib/thor.rb	2026-01-14 03:34:00.318390666 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/lib/thor.rb	2026-01-14 03:34:00.324390635 +0000
                @@ -628 +628 @@
                -      possibilities = all_commands.merge(map).keys.select { |n| meth == n[0, len] }.sort
                +      possibilities = all_commands.reject {|k, v| v.is_a?(HiddenCommand) }.merge(map).keys.select { |n| meth == n[0, len] }.sort
                @@ -671,0 +672,33 @@
                +    end
                +  end
                +
                +  map TREE_MAPPINGS => :tree
                +
                +  desc "tree", "Print a tree of all available commands"
                +  def tree
                +    build_command_tree(self.class, "")
                +  end
                +
                +private
                +
                +  def build_command_tree(klass, indent)
                +    # Print current class name if it's not the root Thor class
                +    unless klass == Thor
                +      say "#{indent}#{klass.namespace || 'default'}", :blue
                +      indent = "#{indent}  "
                +    end
                +
                +    # Print all commands for this class
                +    visible_commands = klass.commands.reject { |_, cmd| cmd.hidden? || cmd.name == "help" }
                +    commands_count = visible_commands.count
                +    visible_commands.sort.each_with_index do |(command_name, command), i|
                +      description = command.description.split("\n").first || ""
                +      icon = i == (commands_count - 1) ? "└─" : "├─"
                +      say "#{indent}#{icon} ", nil, false
                +      say command_name, :green, false
                +      say " (#{description})" unless description.empty?
                +    end
                +
                +    # Print all subcommands (from registered Thor subclasses)
                +    klass.subcommand_classes.each do |_, subclass|
                +      build_command_tree(subclass, indent)
        lib/thor/actions/inject_into_file.rb
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:34:00.319390661 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:34:00.325390630 +0000
                @@ -4,0 +5,32 @@
                +    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                +
                +    # Injects the given content into a file, raising an error if the contents of
                +    # the file are not changed. Different from gsub_file, this method is reversible.
                +    #
                +    # ==== Parameters
                +    # destination<String>:: Relative path to the destination root
                +    # data<String>:: Data to add to the file. Can be given as a block.
                +    # config<Hash>:: give :verbose => false to not log the status and the flag
                +    #                for injection (:after or :before) or :force => true for
                +    #                insert two or more times the same content.
                +    #
                +    # ==== Examples
                +    #
                +    #   insert_into_file "config/environment.rb", "config.gem :thor", :after => "Rails::Initializer.run do |config|\n"
                +    #
                +    #   insert_into_file "config/environment.rb", :after => "Rails::Initializer.run do |config|\n" do
                +    #     gems = ask "Which gems would you like to add?"
                +    #     gems.split(" ").map{ |gem| "  config.gem :#{gem}" }.join("\n")
                +    #   end
                +    #
                +    def insert_into_file!(destination, *args, &block)
                +      data = block_given? ? block : args.shift
                +
                +      config = args.shift || {}
                +      config[:after] = /\z/ unless config.key?(:before) || config.key?(:after)
                +      config = config.merge({error_on_no_change: true})
                +
                +      action InjectIntoFile.new(self, destination, data, config)
                +    end
                +    alias_method :inject_into_file!, :insert_into_file!
                +
                @@ -24,2 +55,0 @@
                -    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                -
                @@ -49,0 +80 @@
                +        @error_on_no_change = @config.fetch(:error_on_no_change, false)
                @@ -61,0 +93,2 @@
                +          elsif @error_on_no_change
                +            raise Thor::Error, "The content of #{destination} did not change"
        lib/thor/base.rb
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/lib/thor/base.rb	2026-01-14 03:34:00.319390661 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/lib/thor/base.rb	2026-01-14 03:34:00.326390625 +0000
                @@ -16 +16 @@
                -  # Shortcuts for help.
                +  # Shortcuts for help and tree commands.
                @@ -17,0 +18 @@
                +  TREE_MAPPINGS       = %w(-t --tree)
        lib/thor/shell/basic.rb
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/lib/thor/shell/basic.rb	2026-01-14 03:34:00.322390645 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/lib/thor/shell/basic.rb	2026-01-14 03:34:00.328390614 +0000
                @@ -314,2 +313,0 @@
                -        diff_cmd = ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u"
                -
                @@ -320 +318 @@
                -          system %(#{diff_cmd} "#{destination}" "#{temp.path}")
                +          system(*diff_tool, destination, temp.path)
                @@ -372 +370 @@
                -        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp|
                +        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination), binmode: true) do |temp|
                @@ -375 +373 @@
                -          system(merge_tool, temp.path, destination)
                +          system(*merge_tool, temp.path, destination)
                @@ -380 +378,11 @@
                -        @merge_tool ||= ENV["THOR_MERGE"] || "git difftool --no-index"
                +        @merge_tool ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_MERGE"] || "git difftool --no-index")
                +        end
                +      end
                +
                +      def diff_tool #:nodoc:
                +        @diff_cmd ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u")
                +        end
        lib/thor/shell/color.rb
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/lib/thor/shell/color.rb	2026-01-14 03:34:00.322390645 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/lib/thor/shell/color.rb	2026-01-14 03:34:00.328390614 +0000
                @@ -0,0 +1,2 @@
                +# frozen_string_literal: true
                +
        lib/thor/version.rb
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/lib/thor/version.rb	2026-01-14 03:34:00.323390640 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/lib/thor/version.rb	2026-01-14 03:34:00.329390609 +0000
                @@ -2 +2 @@
                -  VERSION = "1.4.0"
                +  VERSION = "1.5.0"
        thor.gemspec
                --- /tmp/d20260114-1607-o49q28/thor-1.4.0/thor.gemspec	2026-01-14 03:34:00.323390640 +0000
                +++ /tmp/d20260114-1607-o49q28/thor-1.5.0/thor.gemspec	2026-01-14 03:34:00.329390609 +0000
                @@ -12 +12 @@
                -  spec.homepage = "http://whatisthor.com/"
                +  spec.homepage = "https://github.com/rails/thor"
                @@ -19 +19 @@
                -    "documentation_uri" => "http://whatisthor.com/",
                +    "documentation_uri" => "https://github.com/rails/thor/wiki",
                @@ -32 +32 @@
                -  spec.add_development_dependency "bundler", ">= 1.0", "< 3"
                +  spec.add_development_dependency "bundler", ">= 1.0"

@github-actions
Copy link
Contributor

gem compare --diff thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
        CONTRIBUTING.md
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/CONTRIBUTING.md	2026-01-14 03:34:01.113688947 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/CONTRIBUTING.md	2026-01-14 03:34:01.119688971 +0000
                @@ -15,0 +16,17 @@
                +
                +Specs
                +-----
                +
                +Ensure that all specs and code linting checks pass before submitting a pull request.
                +
                +To execute the specs locally, run:
                +
                +```bash
                +bundle exec rspec
                +```
                +
                +Linting checks are done with RuboCop. To run the linter, use:
                +
                +```bash
                +bundle exec rubocop
                +```
        README.md
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/README.md	2026-01-14 03:34:01.113688947 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/README.md	2026-01-14 03:34:01.119688971 +0000
                @@ -30 +30 @@
                -Please see the [wiki][] for basic usage and other documentation on using Thor. You can also check out the [official homepage][homepage].
                +Please see the [wiki][] for basic usage and other documentation on using Thor.
                @@ -33 +32,0 @@
                -[homepage]: http://whatisthor.com/
        lib/thor.rb
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/lib/thor.rb	2026-01-14 03:34:01.113688947 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/lib/thor.rb	2026-01-14 03:34:01.119688971 +0000
                @@ -628 +628 @@
                -      possibilities = all_commands.merge(map).keys.select { |n| meth == n[0, len] }.sort
                +      possibilities = all_commands.reject {|k, v| v.is_a?(HiddenCommand) }.merge(map).keys.select { |n| meth == n[0, len] }.sort
                @@ -671,0 +672,33 @@
                +    end
                +  end
                +
                +  map TREE_MAPPINGS => :tree
                +
                +  desc "tree", "Print a tree of all available commands"
                +  def tree
                +    build_command_tree(self.class, "")
                +  end
                +
                +private
                +
                +  def build_command_tree(klass, indent)
                +    # Print current class name if it's not the root Thor class
                +    unless klass == Thor
                +      say "#{indent}#{klass.namespace || 'default'}", :blue
                +      indent = "#{indent}  "
                +    end
                +
                +    # Print all commands for this class
                +    visible_commands = klass.commands.reject { |_, cmd| cmd.hidden? || cmd.name == "help" }
                +    commands_count = visible_commands.count
                +    visible_commands.sort.each_with_index do |(command_name, command), i|
                +      description = command.description.split("\n").first || ""
                +      icon = i == (commands_count - 1) ? "└─" : "├─"
                +      say "#{indent}#{icon} ", nil, false
                +      say command_name, :green, false
                +      say " (#{description})" unless description.empty?
                +    end
                +
                +    # Print all subcommands (from registered Thor subclasses)
                +    klass.subcommand_classes.each do |_, subclass|
                +      build_command_tree(subclass, indent)
        lib/thor/actions/inject_into_file.rb
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:34:01.114688951 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:34:01.121688979 +0000
                @@ -4,0 +5,32 @@
                +    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                +
                +    # Injects the given content into a file, raising an error if the contents of
                +    # the file are not changed. Different from gsub_file, this method is reversible.
                +    #
                +    # ==== Parameters
                +    # destination<String>:: Relative path to the destination root
                +    # data<String>:: Data to add to the file. Can be given as a block.
                +    # config<Hash>:: give :verbose => false to not log the status and the flag
                +    #                for injection (:after or :before) or :force => true for
                +    #                insert two or more times the same content.
                +    #
                +    # ==== Examples
                +    #
                +    #   insert_into_file "config/environment.rb", "config.gem :thor", :after => "Rails::Initializer.run do |config|\n"
                +    #
                +    #   insert_into_file "config/environment.rb", :after => "Rails::Initializer.run do |config|\n" do
                +    #     gems = ask "Which gems would you like to add?"
                +    #     gems.split(" ").map{ |gem| "  config.gem :#{gem}" }.join("\n")
                +    #   end
                +    #
                +    def insert_into_file!(destination, *args, &block)
                +      data = block_given? ? block : args.shift
                +
                +      config = args.shift || {}
                +      config[:after] = /\z/ unless config.key?(:before) || config.key?(:after)
                +      config = config.merge({error_on_no_change: true})
                +
                +      action InjectIntoFile.new(self, destination, data, config)
                +    end
                +    alias_method :inject_into_file!, :insert_into_file!
                +
                @@ -24,2 +55,0 @@
                -    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                -
                @@ -49,0 +80 @@
                +        @error_on_no_change = @config.fetch(:error_on_no_change, false)
                @@ -61,0 +93,2 @@
                +          elsif @error_on_no_change
                +            raise Thor::Error, "The content of #{destination} did not change"
        lib/thor/base.rb
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/lib/thor/base.rb	2026-01-14 03:34:01.114688951 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/lib/thor/base.rb	2026-01-14 03:34:01.121688979 +0000
                @@ -16 +16 @@
                -  # Shortcuts for help.
                +  # Shortcuts for help and tree commands.
                @@ -17,0 +18 @@
                +  TREE_MAPPINGS       = %w(-t --tree)
        lib/thor/shell/basic.rb
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/lib/thor/shell/basic.rb	2026-01-14 03:34:01.117688963 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/lib/thor/shell/basic.rb	2026-01-14 03:34:01.123688987 +0000
                @@ -314,2 +313,0 @@
                -        diff_cmd = ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u"
                -
                @@ -320 +318 @@
                -          system %(#{diff_cmd} "#{destination}" "#{temp.path}")
                +          system(*diff_tool, destination, temp.path)
                @@ -372 +370 @@
                -        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp|
                +        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination), binmode: true) do |temp|
                @@ -375 +373 @@
                -          system(merge_tool, temp.path, destination)
                +          system(*merge_tool, temp.path, destination)
                @@ -380 +378,11 @@
                -        @merge_tool ||= ENV["THOR_MERGE"] || "git difftool --no-index"
                +        @merge_tool ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_MERGE"] || "git difftool --no-index")
                +        end
                +      end
                +
                +      def diff_tool #:nodoc:
                +        @diff_cmd ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u")
                +        end
        lib/thor/shell/color.rb
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/lib/thor/shell/color.rb	2026-01-14 03:34:01.117688963 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/lib/thor/shell/color.rb	2026-01-14 03:34:01.123688987 +0000
                @@ -0,0 +1,2 @@
                +# frozen_string_literal: true
                +
        lib/thor/version.rb
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/lib/thor/version.rb	2026-01-14 03:34:01.118688967 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/lib/thor/version.rb	2026-01-14 03:34:01.124688991 +0000
                @@ -2 +2 @@
                -  VERSION = "1.4.0"
                +  VERSION = "1.5.0"
        thor.gemspec
                --- /tmp/d20260114-1757-dyekgf/thor-1.4.0/thor.gemspec	2026-01-14 03:34:01.118688967 +0000
                +++ /tmp/d20260114-1757-dyekgf/thor-1.5.0/thor.gemspec	2026-01-14 03:34:01.124688991 +0000
                @@ -12 +12 @@
                -  spec.homepage = "http://whatisthor.com/"
                +  spec.homepage = "https://github.com/rails/thor"
                @@ -19 +19 @@
                -    "documentation_uri" => "http://whatisthor.com/",
                +    "documentation_uri" => "https://github.com/rails/thor/wiki",
                @@ -32 +32 @@
                -  spec.add_development_dependency "bundler", ">= 1.0", "< 3"
                +  spec.add_development_dependency "bundler", ">= 1.0"

@github-actions
Copy link
Contributor

gem compare --diff thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
        CONTRIBUTING.md
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/CONTRIBUTING.md	2026-01-14 03:34:01.571734943 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/CONTRIBUTING.md	2026-01-14 03:34:01.577735008 +0000
                @@ -15,0 +16,17 @@
                +
                +Specs
                +-----
                +
                +Ensure that all specs and code linting checks pass before submitting a pull request.
                +
                +To execute the specs locally, run:
                +
                +```bash
                +bundle exec rspec
                +```
                +
                +Linting checks are done with RuboCop. To run the linter, use:
                +
                +```bash
                +bundle exec rubocop
                +```
        README.md
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/README.md	2026-01-14 03:34:01.571734943 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/README.md	2026-01-14 03:34:01.577735008 +0000
                @@ -30 +30 @@
                -Please see the [wiki][] for basic usage and other documentation on using Thor. You can also check out the [official homepage][homepage].
                +Please see the [wiki][] for basic usage and other documentation on using Thor.
                @@ -33 +32,0 @@
                -[homepage]: http://whatisthor.com/
        lib/thor.rb
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/lib/thor.rb	2026-01-14 03:34:01.571734943 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/lib/thor.rb	2026-01-14 03:34:01.578735019 +0000
                @@ -628 +628 @@
                -      possibilities = all_commands.merge(map).keys.select { |n| meth == n[0, len] }.sort
                +      possibilities = all_commands.reject {|k, v| v.is_a?(HiddenCommand) }.merge(map).keys.select { |n| meth == n[0, len] }.sort
                @@ -671,0 +672,33 @@
                +    end
                +  end
                +
                +  map TREE_MAPPINGS => :tree
                +
                +  desc "tree", "Print a tree of all available commands"
                +  def tree
                +    build_command_tree(self.class, "")
                +  end
                +
                +private
                +
                +  def build_command_tree(klass, indent)
                +    # Print current class name if it's not the root Thor class
                +    unless klass == Thor
                +      say "#{indent}#{klass.namespace || 'default'}", :blue
                +      indent = "#{indent}  "
                +    end
                +
                +    # Print all commands for this class
                +    visible_commands = klass.commands.reject { |_, cmd| cmd.hidden? || cmd.name == "help" }
                +    commands_count = visible_commands.count
                +    visible_commands.sort.each_with_index do |(command_name, command), i|
                +      description = command.description.split("\n").first || ""
                +      icon = i == (commands_count - 1) ? "└─" : "├─"
                +      say "#{indent}#{icon} ", nil, false
                +      say command_name, :green, false
                +      say " (#{description})" unless description.empty?
                +    end
                +
                +    # Print all subcommands (from registered Thor subclasses)
                +    klass.subcommand_classes.each do |_, subclass|
                +      build_command_tree(subclass, indent)
        lib/thor/actions/inject_into_file.rb
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:34:01.572734954 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:34:01.579735030 +0000
                @@ -4,0 +5,32 @@
                +    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                +
                +    # Injects the given content into a file, raising an error if the contents of
                +    # the file are not changed. Different from gsub_file, this method is reversible.
                +    #
                +    # ==== Parameters
                +    # destination<String>:: Relative path to the destination root
                +    # data<String>:: Data to add to the file. Can be given as a block.
                +    # config<Hash>:: give :verbose => false to not log the status and the flag
                +    #                for injection (:after or :before) or :force => true for
                +    #                insert two or more times the same content.
                +    #
                +    # ==== Examples
                +    #
                +    #   insert_into_file "config/environment.rb", "config.gem :thor", :after => "Rails::Initializer.run do |config|\n"
                +    #
                +    #   insert_into_file "config/environment.rb", :after => "Rails::Initializer.run do |config|\n" do
                +    #     gems = ask "Which gems would you like to add?"
                +    #     gems.split(" ").map{ |gem| "  config.gem :#{gem}" }.join("\n")
                +    #   end
                +    #
                +    def insert_into_file!(destination, *args, &block)
                +      data = block_given? ? block : args.shift
                +
                +      config = args.shift || {}
                +      config[:after] = /\z/ unless config.key?(:before) || config.key?(:after)
                +      config = config.merge({error_on_no_change: true})
                +
                +      action InjectIntoFile.new(self, destination, data, config)
                +    end
                +    alias_method :inject_into_file!, :insert_into_file!
                +
                @@ -24,2 +55,0 @@
                -    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                -
                @@ -49,0 +80 @@
                +        @error_on_no_change = @config.fetch(:error_on_no_change, false)
                @@ -61,0 +93,2 @@
                +          elsif @error_on_no_change
                +            raise Thor::Error, "The content of #{destination} did not change"
        lib/thor/base.rb
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/lib/thor/base.rb	2026-01-14 03:34:01.573734964 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/lib/thor/base.rb	2026-01-14 03:34:01.579735030 +0000
                @@ -16 +16 @@
                -  # Shortcuts for help.
                +  # Shortcuts for help and tree commands.
                @@ -17,0 +18 @@
                +  TREE_MAPPINGS       = %w(-t --tree)
        lib/thor/shell/basic.rb
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/lib/thor/shell/basic.rb	2026-01-14 03:34:01.576734997 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/lib/thor/shell/basic.rb	2026-01-14 03:34:01.581735051 +0000
                @@ -314,2 +313,0 @@
                -        diff_cmd = ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u"
                -
                @@ -320 +318 @@
                -          system %(#{diff_cmd} "#{destination}" "#{temp.path}")
                +          system(*diff_tool, destination, temp.path)
                @@ -372 +370 @@
                -        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp|
                +        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination), binmode: true) do |temp|
                @@ -375 +373 @@
                -          system(merge_tool, temp.path, destination)
                +          system(*merge_tool, temp.path, destination)
                @@ -380 +378,11 @@
                -        @merge_tool ||= ENV["THOR_MERGE"] || "git difftool --no-index"
                +        @merge_tool ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_MERGE"] || "git difftool --no-index")
                +        end
                +      end
                +
                +      def diff_tool #:nodoc:
                +        @diff_cmd ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u")
                +        end
        lib/thor/shell/color.rb
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/lib/thor/shell/color.rb	2026-01-14 03:34:01.576734997 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/lib/thor/shell/color.rb	2026-01-14 03:34:01.581735051 +0000
                @@ -0,0 +1,2 @@
                +# frozen_string_literal: true
                +
        lib/thor/version.rb
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/lib/thor/version.rb	2026-01-14 03:34:01.577735008 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/lib/thor/version.rb	2026-01-14 03:34:01.582735062 +0000
                @@ -2 +2 @@
                -  VERSION = "1.4.0"
                +  VERSION = "1.5.0"
        thor.gemspec
                --- /tmp/d20260114-1822-vzndi4/thor-1.4.0/thor.gemspec	2026-01-14 03:34:01.577735008 +0000
                +++ /tmp/d20260114-1822-vzndi4/thor-1.5.0/thor.gemspec	2026-01-14 03:34:01.582735062 +0000
                @@ -12 +12 @@
                -  spec.homepage = "http://whatisthor.com/"
                +  spec.homepage = "https://github.com/rails/thor"
                @@ -19 +19 @@
                -    "documentation_uri" => "http://whatisthor.com/",
                +    "documentation_uri" => "https://github.com/rails/thor/wiki",
                @@ -32 +32 @@
                -  spec.add_development_dependency "bundler", ">= 1.0", "< 3"
                +  spec.add_development_dependency "bundler", ">= 1.0"

@github-actions
Copy link
Contributor

gem compare thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT homepage:
    1.4.0: http://whatisthor.com/
    1.5.0: https://github.com/rails/thor
  DIFFERENT metadata:
    1.4.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.4.0", "documentation_uri" => "http://whatisthor.com/", "source_code_uri" => "https://github.com/rails/thor/tree/v1.4.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
    1.5.0: {"bug_tracker_uri" => "https://github.com/rails/thor/issues", "changelog_uri" => "https://github.com/rails/thor/releases/tag/v1.5.0", "documentation_uri" => "https://github.com/rails/thor/wiki", "source_code_uri" => "https://github.com/rails/thor/tree/v1.5.0", "wiki_uri" => "https://github.com/rails/thor/wiki", "rubygems_mfa_required" => "true"}
  DIFFERENT version:
    1.4.0: 1.4.0
    1.5.0: 1.5.0
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
            CONTRIBUTING.md +17/-0
            README.md +1/-2
            lib/thor.rb +34/-1
            lib/thor/actions/inject_into_file.rb +35/-2
            lib/thor/base.rb +2/-1
            lib/thor/shell/basic.rb +14/-6
            lib/thor/shell/color.rb +2/-0
            lib/thor/version.rb +1/-1
            thor.gemspec +3/-3
  DIFFERENT development dependencies:
    1.4.0->1.5.0:
      * Updated:
            bundler from: [">= 1.0", "< 3"] to: [">= 1.0"]

@github-actions
Copy link
Contributor

gem compare tilt 2.4.0 2.7.0

Compared versions: ["2.4.0", "2.7.0"]
  DIFFERENT date:
    2.4.0: 2024-06-27 00:00:00 UTC
    2.7.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    2.4.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt"}
    2.7.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt", "documentation_uri" => "https://tilt.jeremyevans.net"}
  DIFFERENT rubygems_version:
    2.4.0: 3.5.9
    2.7.0: 4.0.3
  DIFFERENT version:
    2.4.0: 2.4.0
    2.7.0: 2.7.0
  DIFFERENT files:
    2.4.0->2.7.0:
      * Deleted:
            lib/tilt/creole.rb
            lib/tilt/erubis.rb
            lib/tilt/maruku.rb
            lib/tilt/wikicloth.rb
      * Changed:
            lib/tilt.rb +9/-5
            lib/tilt/asciidoc.rb +12/-5
            lib/tilt/babel.rb +5/-0
            lib/tilt/builder.rb +4/-0
            lib/tilt/coffee.rb +14/-4
            lib/tilt/commonmarker.rb +41/-0
            lib/tilt/csv.rb +35/-25
            lib/tilt/erb.rb +67/-2
            lib/tilt/erubi.rb +41/-8
            lib/tilt/etanni.rb +7/-0
            lib/tilt/haml.rb +67/-1
            lib/tilt/kramdown.rb +47/-1
            lib/tilt/liquid.rb +66/-13
            lib/tilt/livescript.rb +11/-4
            lib/tilt/mapping.rb +9/-9
            lib/tilt/markaby.rb +11/-2
            lib/tilt/nokogiri.rb +13/-2
            lib/tilt/pandoc.rb +43/-1
            lib/tilt/pipeline.rb +6/-1
            lib/tilt/plain.rb +5/-1
            lib/tilt/prawn.rb +17/-6
            lib/tilt/radius.rb +55/-0
            lib/tilt/rdiscount.rb +65/-6
            lib/tilt/rdoc.rb +23/-9
            lib/tilt/redcarpet.rb +42/-0
            lib/tilt/redcloth.rb +28/-1
            lib/tilt/rst-pandoc.rb +24/-1
            lib/tilt/sass.rb +16/-3
            lib/tilt/slim.rb +13/-0
            lib/tilt/string.rb +10/-2
            lib/tilt/template.rb +189/-33
            lib/tilt/typescript.rb +5/-0
            lib/tilt/yajl.rb +46/-36

3 similar comments
@github-actions
Copy link
Contributor

gem compare tilt 2.4.0 2.7.0

Compared versions: ["2.4.0", "2.7.0"]
  DIFFERENT date:
    2.4.0: 2024-06-27 00:00:00 UTC
    2.7.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    2.4.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt"}
    2.7.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt", "documentation_uri" => "https://tilt.jeremyevans.net"}
  DIFFERENT rubygems_version:
    2.4.0: 3.5.9
    2.7.0: 4.0.3
  DIFFERENT version:
    2.4.0: 2.4.0
    2.7.0: 2.7.0
  DIFFERENT files:
    2.4.0->2.7.0:
      * Deleted:
            lib/tilt/creole.rb
            lib/tilt/erubis.rb
            lib/tilt/maruku.rb
            lib/tilt/wikicloth.rb
      * Changed:
            lib/tilt.rb +9/-5
            lib/tilt/asciidoc.rb +12/-5
            lib/tilt/babel.rb +5/-0
            lib/tilt/builder.rb +4/-0
            lib/tilt/coffee.rb +14/-4
            lib/tilt/commonmarker.rb +41/-0
            lib/tilt/csv.rb +35/-25
            lib/tilt/erb.rb +67/-2
            lib/tilt/erubi.rb +41/-8
            lib/tilt/etanni.rb +7/-0
            lib/tilt/haml.rb +67/-1
            lib/tilt/kramdown.rb +47/-1
            lib/tilt/liquid.rb +66/-13
            lib/tilt/livescript.rb +11/-4
            lib/tilt/mapping.rb +9/-9
            lib/tilt/markaby.rb +11/-2
            lib/tilt/nokogiri.rb +13/-2
            lib/tilt/pandoc.rb +43/-1
            lib/tilt/pipeline.rb +6/-1
            lib/tilt/plain.rb +5/-1
            lib/tilt/prawn.rb +17/-6
            lib/tilt/radius.rb +55/-0
            lib/tilt/rdiscount.rb +65/-6
            lib/tilt/rdoc.rb +23/-9
            lib/tilt/redcarpet.rb +42/-0
            lib/tilt/redcloth.rb +28/-1
            lib/tilt/rst-pandoc.rb +24/-1
            lib/tilt/sass.rb +16/-3
            lib/tilt/slim.rb +13/-0
            lib/tilt/string.rb +10/-2
            lib/tilt/template.rb +189/-33
            lib/tilt/typescript.rb +5/-0
            lib/tilt/yajl.rb +46/-36

@github-actions
Copy link
Contributor

gem compare tilt 2.4.0 2.7.0

Compared versions: ["2.4.0", "2.7.0"]
  DIFFERENT date:
    2.4.0: 2024-06-27 00:00:00 UTC
    2.7.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    2.4.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt"}
    2.7.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt", "documentation_uri" => "https://tilt.jeremyevans.net"}
  DIFFERENT rubygems_version:
    2.4.0: 3.5.9
    2.7.0: 4.0.3
  DIFFERENT version:
    2.4.0: 2.4.0
    2.7.0: 2.7.0
  DIFFERENT files:
    2.4.0->2.7.0:
      * Deleted:
            lib/tilt/creole.rb
            lib/tilt/erubis.rb
            lib/tilt/maruku.rb
            lib/tilt/wikicloth.rb
      * Changed:
            lib/tilt.rb +9/-5
            lib/tilt/asciidoc.rb +12/-5
            lib/tilt/babel.rb +5/-0
            lib/tilt/builder.rb +4/-0
            lib/tilt/coffee.rb +14/-4
            lib/tilt/commonmarker.rb +41/-0
            lib/tilt/csv.rb +35/-25
            lib/tilt/erb.rb +67/-2
            lib/tilt/erubi.rb +41/-8
            lib/tilt/etanni.rb +7/-0
            lib/tilt/haml.rb +67/-1
            lib/tilt/kramdown.rb +47/-1
            lib/tilt/liquid.rb +66/-13
            lib/tilt/livescript.rb +11/-4
            lib/tilt/mapping.rb +9/-9
            lib/tilt/markaby.rb +11/-2
            lib/tilt/nokogiri.rb +13/-2
            lib/tilt/pandoc.rb +43/-1
            lib/tilt/pipeline.rb +6/-1
            lib/tilt/plain.rb +5/-1
            lib/tilt/prawn.rb +17/-6
            lib/tilt/radius.rb +55/-0
            lib/tilt/rdiscount.rb +65/-6
            lib/tilt/rdoc.rb +23/-9
            lib/tilt/redcarpet.rb +42/-0
            lib/tilt/redcloth.rb +28/-1
            lib/tilt/rst-pandoc.rb +24/-1
            lib/tilt/sass.rb +16/-3
            lib/tilt/slim.rb +13/-0
            lib/tilt/string.rb +10/-2
            lib/tilt/template.rb +189/-33
            lib/tilt/typescript.rb +5/-0
            lib/tilt/yajl.rb +46/-36

@github-actions
Copy link
Contributor

gem compare tilt 2.4.0 2.7.0

Compared versions: ["2.4.0", "2.7.0"]
  DIFFERENT date:
    2.4.0: 2024-06-27 00:00:00 UTC
    2.7.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    2.4.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt"}
    2.7.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt", "documentation_uri" => "https://tilt.jeremyevans.net"}
  DIFFERENT rubygems_version:
    2.4.0: 3.5.9
    2.7.0: 4.0.3
  DIFFERENT version:
    2.4.0: 2.4.0
    2.7.0: 2.7.0
  DIFFERENT files:
    2.4.0->2.7.0:
      * Deleted:
            lib/tilt/creole.rb
            lib/tilt/erubis.rb
            lib/tilt/maruku.rb
            lib/tilt/wikicloth.rb
      * Changed:
            lib/tilt.rb +9/-5
            lib/tilt/asciidoc.rb +12/-5
            lib/tilt/babel.rb +5/-0
            lib/tilt/builder.rb +4/-0
            lib/tilt/coffee.rb +14/-4
            lib/tilt/commonmarker.rb +41/-0
            lib/tilt/csv.rb +35/-25
            lib/tilt/erb.rb +67/-2
            lib/tilt/erubi.rb +41/-8
            lib/tilt/etanni.rb +7/-0
            lib/tilt/haml.rb +67/-1
            lib/tilt/kramdown.rb +47/-1
            lib/tilt/liquid.rb +66/-13
            lib/tilt/livescript.rb +11/-4
            lib/tilt/mapping.rb +9/-9
            lib/tilt/markaby.rb +11/-2
            lib/tilt/nokogiri.rb +13/-2
            lib/tilt/pandoc.rb +43/-1
            lib/tilt/pipeline.rb +6/-1
            lib/tilt/plain.rb +5/-1
            lib/tilt/prawn.rb +17/-6
            lib/tilt/radius.rb +55/-0
            lib/tilt/rdiscount.rb +65/-6
            lib/tilt/rdoc.rb +23/-9
            lib/tilt/redcarpet.rb +42/-0
            lib/tilt/redcloth.rb +28/-1
            lib/tilt/rst-pandoc.rb +24/-1
            lib/tilt/sass.rb +16/-3
            lib/tilt/slim.rb +13/-0
            lib/tilt/string.rb +10/-2
            lib/tilt/template.rb +189/-33
            lib/tilt/typescript.rb +5/-0
            lib/tilt/yajl.rb +46/-36

@github-actions
Copy link
Contributor

gem compare --diff thor 1.4.0 1.5.0

Compared versions: ["1.4.0", "1.5.0"]
  DIFFERENT files:
    1.4.0->1.5.0:
      * Changed:
        CONTRIBUTING.md
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/CONTRIBUTING.md	2026-01-14 03:34:17.904840982 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/CONTRIBUTING.md	2026-01-14 03:34:17.910840948 +0000
                @@ -15,0 +16,17 @@
                +
                +Specs
                +-----
                +
                +Ensure that all specs and code linting checks pass before submitting a pull request.
                +
                +To execute the specs locally, run:
                +
                +```bash
                +bundle exec rspec
                +```
                +
                +Linting checks are done with RuboCop. To run the linter, use:
                +
                +```bash
                +bundle exec rubocop
                +```
        README.md
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/README.md	2026-01-14 03:34:17.904840982 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/README.md	2026-01-14 03:34:17.910840948 +0000
                @@ -30 +30 @@
                -Please see the [wiki][] for basic usage and other documentation on using Thor. You can also check out the [official homepage][homepage].
                +Please see the [wiki][] for basic usage and other documentation on using Thor.
                @@ -33 +32,0 @@
                -[homepage]: http://whatisthor.com/
        lib/thor.rb
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/lib/thor.rb	2026-01-14 03:34:17.904840982 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/lib/thor.rb	2026-01-14 03:34:17.910840948 +0000
                @@ -628 +628 @@
                -      possibilities = all_commands.merge(map).keys.select { |n| meth == n[0, len] }.sort
                +      possibilities = all_commands.reject {|k, v| v.is_a?(HiddenCommand) }.merge(map).keys.select { |n| meth == n[0, len] }.sort
                @@ -671,0 +672,33 @@
                +    end
                +  end
                +
                +  map TREE_MAPPINGS => :tree
                +
                +  desc "tree", "Print a tree of all available commands"
                +  def tree
                +    build_command_tree(self.class, "")
                +  end
                +
                +private
                +
                +  def build_command_tree(klass, indent)
                +    # Print current class name if it's not the root Thor class
                +    unless klass == Thor
                +      say "#{indent}#{klass.namespace || 'default'}", :blue
                +      indent = "#{indent}  "
                +    end
                +
                +    # Print all commands for this class
                +    visible_commands = klass.commands.reject { |_, cmd| cmd.hidden? || cmd.name == "help" }
                +    commands_count = visible_commands.count
                +    visible_commands.sort.each_with_index do |(command_name, command), i|
                +      description = command.description.split("\n").first || ""
                +      icon = i == (commands_count - 1) ? "└─" : "├─"
                +      say "#{indent}#{icon} ", nil, false
                +      say command_name, :green, false
                +      say " (#{description})" unless description.empty?
                +    end
                +
                +    # Print all subcommands (from registered Thor subclasses)
                +    klass.subcommand_classes.each do |_, subclass|
                +      build_command_tree(subclass, indent)
        lib/thor/actions/inject_into_file.rb
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:34:17.905840977 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/lib/thor/actions/inject_into_file.rb	2026-01-14 03:34:17.911840943 +0000
                @@ -4,0 +5,32 @@
                +    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                +
                +    # Injects the given content into a file, raising an error if the contents of
                +    # the file are not changed. Different from gsub_file, this method is reversible.
                +    #
                +    # ==== Parameters
                +    # destination<String>:: Relative path to the destination root
                +    # data<String>:: Data to add to the file. Can be given as a block.
                +    # config<Hash>:: give :verbose => false to not log the status and the flag
                +    #                for injection (:after or :before) or :force => true for
                +    #                insert two or more times the same content.
                +    #
                +    # ==== Examples
                +    #
                +    #   insert_into_file "config/environment.rb", "config.gem :thor", :after => "Rails::Initializer.run do |config|\n"
                +    #
                +    #   insert_into_file "config/environment.rb", :after => "Rails::Initializer.run do |config|\n" do
                +    #     gems = ask "Which gems would you like to add?"
                +    #     gems.split(" ").map{ |gem| "  config.gem :#{gem}" }.join("\n")
                +    #   end
                +    #
                +    def insert_into_file!(destination, *args, &block)
                +      data = block_given? ? block : args.shift
                +
                +      config = args.shift || {}
                +      config[:after] = /\z/ unless config.key?(:before) || config.key?(:after)
                +      config = config.merge({error_on_no_change: true})
                +
                +      action InjectIntoFile.new(self, destination, data, config)
                +    end
                +    alias_method :inject_into_file!, :insert_into_file!
                +
                @@ -24,2 +55,0 @@
                -    WARNINGS = {unchanged_no_flag: "File unchanged! Either the supplied flag value not found or the content has already been inserted!"}
                -
                @@ -49,0 +80 @@
                +        @error_on_no_change = @config.fetch(:error_on_no_change, false)
                @@ -61,0 +93,2 @@
                +          elsif @error_on_no_change
                +            raise Thor::Error, "The content of #{destination} did not change"
        lib/thor/base.rb
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/lib/thor/base.rb	2026-01-14 03:34:17.905840977 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/lib/thor/base.rb	2026-01-14 03:34:17.912840937 +0000
                @@ -16 +16 @@
                -  # Shortcuts for help.
                +  # Shortcuts for help and tree commands.
                @@ -17,0 +18 @@
                +  TREE_MAPPINGS       = %w(-t --tree)
        lib/thor/shell/basic.rb
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/lib/thor/shell/basic.rb	2026-01-14 03:34:17.908840960 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/lib/thor/shell/basic.rb	2026-01-14 03:34:17.914840926 +0000
                @@ -314,2 +313,0 @@
                -        diff_cmd = ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u"
                -
                @@ -320 +318 @@
                -          system %(#{diff_cmd} "#{destination}" "#{temp.path}")
                +          system(*diff_tool, destination, temp.path)
                @@ -372 +370 @@
                -        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp|
                +        Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination), binmode: true) do |temp|
                @@ -375 +373 @@
                -          system(merge_tool, temp.path, destination)
                +          system(*merge_tool, temp.path, destination)
                @@ -380 +378,11 @@
                -        @merge_tool ||= ENV["THOR_MERGE"] || "git difftool --no-index"
                +        @merge_tool ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_MERGE"] || "git difftool --no-index")
                +        end
                +      end
                +
                +      def diff_tool #:nodoc:
                +        @diff_cmd ||= begin
                +          require "shellwords"
                +          Shellwords.split(ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u")
                +        end
        lib/thor/shell/color.rb
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/lib/thor/shell/color.rb	2026-01-14 03:34:17.908840960 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/lib/thor/shell/color.rb	2026-01-14 03:34:17.914840926 +0000
                @@ -0,0 +1,2 @@
                +# frozen_string_literal: true
                +
        lib/thor/version.rb
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/lib/thor/version.rb	2026-01-14 03:34:17.909840954 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/lib/thor/version.rb	2026-01-14 03:34:17.915840920 +0000
                @@ -2 +2 @@
                -  VERSION = "1.4.0"
                +  VERSION = "1.5.0"
        thor.gemspec
                --- /tmp/d20260114-1667-fn0z67/thor-1.4.0/thor.gemspec	2026-01-14 03:34:17.909840954 +0000
                +++ /tmp/d20260114-1667-fn0z67/thor-1.5.0/thor.gemspec	2026-01-14 03:34:17.915840920 +0000
                @@ -12 +12 @@
                -  spec.homepage = "http://whatisthor.com/"
                +  spec.homepage = "https://github.com/rails/thor"
                @@ -19 +19 @@
                -    "documentation_uri" => "http://whatisthor.com/",
                +    "documentation_uri" => "https://github.com/rails/thor/wiki",
                @@ -32 +32 @@
                -  spec.add_development_dependency "bundler", ">= 1.0", "< 3"
                +  spec.add_development_dependency "bundler", ">= 1.0"

@github-actions
Copy link
Contributor

gem compare --diff tilt 2.4.0 2.7.0

Diff too large (71012 chars)

3 similar comments
@github-actions
Copy link
Contributor

gem compare --diff tilt 2.4.0 2.7.0

Diff too large (71012 chars)

@github-actions
Copy link
Contributor

gem compare --diff tilt 2.4.0 2.7.0

Diff too large (71012 chars)

@github-actions
Copy link
Contributor

gem compare --diff tilt 2.4.0 2.7.0

Diff too large (71012 chars)

@github-actions
Copy link
Contributor

gem compare tilt 2.4.0 2.7.0

Compared versions: ["2.4.0", "2.7.0"]
  DIFFERENT date:
    2.4.0: 2024-06-27 00:00:00 UTC
    2.7.0: 1980-01-02 00:00:00 UTC
  DIFFERENT metadata:
    2.4.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt"}
    2.7.0: {"bug_tracker_uri" => "https://github.com/jeremyevans/tilt/issues", "changelog_uri" => "https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md", "mailing_list_uri" => "https://github.com/jeremyevans/tilt/discussions", "source_code_uri" => "https://github.com/jeremyevans/tilt", "documentation_uri" => "https://tilt.jeremyevans.net"}
  DIFFERENT rubygems_version:
    2.4.0: 3.5.9
    2.7.0: 4.0.3
  DIFFERENT version:
    2.4.0: 2.4.0
    2.7.0: 2.7.0
  DIFFERENT files:
    2.4.0->2.7.0:
      * Deleted:
            lib/tilt/creole.rb
            lib/tilt/erubis.rb
            lib/tilt/maruku.rb
            lib/tilt/wikicloth.rb
      * Changed:
            lib/tilt.rb +9/-5
            lib/tilt/asciidoc.rb +12/-5
            lib/tilt/babel.rb +5/-0
            lib/tilt/builder.rb +4/-0
            lib/tilt/coffee.rb +14/-4
            lib/tilt/commonmarker.rb +41/-0
            lib/tilt/csv.rb +35/-25
            lib/tilt/erb.rb +67/-2
            lib/tilt/erubi.rb +41/-8
            lib/tilt/etanni.rb +7/-0
            lib/tilt/haml.rb +67/-1
            lib/tilt/kramdown.rb +47/-1
            lib/tilt/liquid.rb +66/-13
            lib/tilt/livescript.rb +11/-4
            lib/tilt/mapping.rb +9/-9
            lib/tilt/markaby.rb +11/-2
            lib/tilt/nokogiri.rb +13/-2
            lib/tilt/pandoc.rb +43/-1
            lib/tilt/pipeline.rb +6/-1
            lib/tilt/plain.rb +5/-1
            lib/tilt/prawn.rb +17/-6
            lib/tilt/radius.rb +55/-0
            lib/tilt/rdiscount.rb +65/-6
            lib/tilt/rdoc.rb +23/-9
            lib/tilt/redcarpet.rb +42/-0
            lib/tilt/redcloth.rb +28/-1
            lib/tilt/rst-pandoc.rb +24/-1
            lib/tilt/sass.rb +16/-3
            lib/tilt/slim.rb +13/-0
            lib/tilt/string.rb +10/-2
            lib/tilt/template.rb +189/-33
            lib/tilt/typescript.rb +5/-0
            lib/tilt/yajl.rb +46/-36

@github-actions
Copy link
Contributor

gem compare --diff tilt 2.4.0 2.7.0

Diff too large (71012 chars)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies ruby Pull requests that update Ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant