ad79ed0e6b
Prior to this commit, the only out-of-the-box parsing that `ActionDispatch::Testing::TestResponse#parsed_body` supported was for `application/json` requests. This meant that `response.body == response.parsed_body` for HTML requests. ```ruby get "/posts" response.content_type # => "text/html; charset=utf-8" response.parsed_body.class # => Nokogiri::HTML5::Document response.parsed_body.to_html # => "<!DOCTYPE html>\n<html>\n..." ``` Using `parsed_body` for JSON requests supports `Hash#fetch`, `Hash#dig`, and Ruby 3.2 destructuring assignment and pattern matching. The introduction of [Nokogiri support for pattern matching][nokogiri-pattern-matching] poses an opportunity to make assertions about the structure of the HTML response. On top of that, there is ongoing work to [introduce pattern matching support in MiniTest][minitest-pattern-matching]. [nokogiri-pattern-matching]: https://github.com/sparklemotion/nokogiri/pull/2523 [minitest-pattern-matching]: https://github.com/minitest/minitest/pull/936
48 lines
1.8 KiB
Ruby
48 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
version = File.read(File.expand_path("../RAILS_VERSION", __dir__)).strip
|
|
|
|
Gem::Specification.new do |s|
|
|
s.platform = Gem::Platform::RUBY
|
|
s.name = "actionpack"
|
|
s.version = version
|
|
s.summary = "Web-flow and rendering framework putting the VC in MVC (part of Rails)."
|
|
s.description = "Web apps on Rails. Simple, battle-tested conventions for building and testing MVC web applications. Works with any Rack-compatible server."
|
|
|
|
s.required_ruby_version = ">= 2.7.0"
|
|
|
|
s.license = "MIT"
|
|
|
|
s.author = "David Heinemeier Hansson"
|
|
s.email = "david@loudthinking.com"
|
|
s.homepage = "https://rubyonrails.org"
|
|
|
|
s.files = Dir["CHANGELOG.md", "README.rdoc", "MIT-LICENSE", "lib/**/*"]
|
|
s.require_path = "lib"
|
|
s.requirements << "none"
|
|
|
|
s.metadata = {
|
|
"bug_tracker_uri" => "https://github.com/rails/rails/issues",
|
|
"changelog_uri" => "https://github.com/rails/rails/blob/v#{version}/actionpack/CHANGELOG.md",
|
|
"documentation_uri" => "https://api.rubyonrails.org/v#{version}/",
|
|
"mailing_list_uri" => "https://discuss.rubyonrails.org/c/rubyonrails-talk",
|
|
"source_code_uri" => "https://github.com/rails/rails/tree/v#{version}/actionpack",
|
|
"rubygems_mfa_required" => "true",
|
|
}
|
|
|
|
# NOTE: Please read our dependency guidelines before updating versions:
|
|
# https://edgeguides.rubyonrails.org/security.html#dependency-management-and-cves
|
|
|
|
s.add_dependency "activesupport", version
|
|
|
|
s.add_dependency "nokogiri", ">= 1.8.5"
|
|
s.add_dependency "rack", ">= 2.2.4"
|
|
s.add_dependency "rack-session", ">= 1.0.1"
|
|
s.add_dependency "rack-test", ">= 0.6.3"
|
|
s.add_dependency "rails-html-sanitizer", "~> 1.0", ">= 1.2.0"
|
|
s.add_dependency "rails-dom-testing", "~> 2.0"
|
|
s.add_dependency "actionview", version
|
|
|
|
s.add_development_dependency "activemodel", version
|
|
end
|