rails/activesupport
Nick Hengeveld 5623f7f1a3 Return a copy of the source string when transliterating
Co-authored-by: Adam Hess <hparker@github.com>

Fixes an issue where parameterizing strings was mutating the source, eg:

```ruby
require "bundler/inline"

gemfile(true) do
  source "https://rubygems.org"

  git_source(:github) { |repo| "https://github.com/#{repo}.git" }

  gem "rails", github: "rails/rails", branch: "main"
  gem "sqlite3"
end

require "active_record"
require "minitest/autorun"
require "logger"

ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Base.logger = Logger.new(STDOUT)

ActiveRecord::Schema.define do
  create_table :posts, force: true do |t|
    t.text :name
    t.text :slug
  end
end

class Post < ActiveRecord::Base
  validate :generate_slug

  def generate_slug
    self.slug = name.parameterize
  end
end

class BugTest < Minitest::Test
  def test_name_gets_corrupted
    post = Post.create!(name: "hi there")

    assert_equal "hi there", post.name # This test fails, "hi-there"
  end
end
```
2022-11-30 16:55:46 +00:00
..
bin Remove AS::Multibyte's unicode table 2018-02-20 03:58:22 +09:00
lib Return a copy of the source string when transliterating 2022-11-30 16:55:46 +00:00
test Return a copy of the source string when transliterating 2022-11-30 16:55:46 +00:00
.gitignore Clean up and consolidate .gitignores 2018-02-17 14:26:19 -08:00
activesupport.gemspec Enable connection pooling by default for MemCacheStore and RedisCacheStore 2022-06-07 11:40:17 +03:00
CHANGELOG.md Merge PR #45698 2022-11-17 22:54:30 +00:00
MIT-LICENSE Bump license years to 2022 [ci-skip] 2022-01-01 15:22:15 +09:00
Rakefile Stop testing hiredis 2022-08-22 09:01:27 +02:00
README.rdoc Rename master to main in all code references 2021-01-19 20:46:33 +00:00

= Active Support -- Utility classes and Ruby extensions from Rails

Active Support is a collection of utility classes and standard library
extensions that were found useful for the Rails framework. These additions
reside in this package so they can be loaded as needed in Ruby projects
outside of Rails.

You can read more about the extensions in the {Active Support Core Extensions}[https://edgeguides.rubyonrails.org/active_support_core_extensions.html] guide.

== Download and installation

The latest version of Active Support can be installed with RubyGems:

  $ gem install activesupport

Source code can be downloaded as part of the Rails project on GitHub:

* https://github.com/rails/rails/tree/main/activesupport


== License

Active Support is released under the MIT license:

* https://opensource.org/licenses/MIT


== Support

API documentation is at:

* https://api.rubyonrails.org

Bug reports for the Ruby on Rails project can be filed here:

* https://github.com/rails/rails/issues

Feature requests should be discussed on the rails-core mailing list here:

* https://discuss.rubyonrails.org/c/rubyonrails-core