Remove usage of OpenStruct

This commit is contained in:
fatkodima 2024-04-06 17:55:53 +03:00
parent 8feeab2338
commit 041de49399
14 changed files with 23 additions and 36 deletions

@ -316,6 +316,9 @@ Style/RedundantCondition:
Style/RedundantDoubleSplatHashBraces:
Enabled: true
Style/OpenStructUse:
Enabled: true
Style/ArrayIntersect:
Enabled: true
@ -355,9 +358,6 @@ Performance/DeletePrefix:
Performance/DeleteSuffix:
Enabled: true
Performance/OpenStruct:
Enabled: true
Performance/InefficientHashSearch:
Enabled: true

@ -38,9 +38,6 @@ gem "cgi", ">= 0.3.6", require: false
gem "prism"
# Became a bundled gem in Ruby 3.5
gem "ostruct"
group :lint do
gem "syntax_tree", "6.1.1", require: false
end

@ -368,7 +368,6 @@ GEM
nokogiri (1.16.0-x86_64-linux)
racc (~> 1.4)
os (1.1.4)
ostruct (0.6.0)
parallel (1.24.0)
parser (3.2.2.4)
ast (~> 2.4.1)
@ -624,7 +623,6 @@ DEPENDENCIES
msgpack (>= 1.7.0)
mysql2 (~> 0.5)
nokogiri (>= 1.8.1, != 1.11.0)
ostruct
pg (~> 1.3)
prism
propshaft (>= 0.1.7)

@ -2,7 +2,6 @@
require "abstract_unit"
require "action_controller"
require "ostruct"
class WelcomeController < ActionController::Base
end
@ -42,7 +41,7 @@ def exercise_url_for(options)
class ActionMailerUrlTest < ActionMailer::TestCase
class DummyModel
def self.model_name
OpenStruct.new(route_key: "dummy_model")
Struct.new(:route_key, :name).new("dummy_model", nil)
end
def persisted?

@ -1,6 +1,5 @@
# frozen_string_literal: true
require "ostruct"
require "abstract_unit"
class HttpTokenAuthenticationTest < ActionController::TestCase
@ -240,7 +239,7 @@ def sample_request_without_token_key(token)
end
def mock_authorization_request(authorization)
OpenStruct.new(authorization: authorization)
Struct.new(:authorization).new(authorization)
end
def encode_credentials(token, options = {})

@ -207,7 +207,7 @@ class Plane
class << self
def model_name
OpenStruct.new param_key: "airplane"
Struct.new(:param_key).new("airplane")
end
end

@ -1,7 +1,6 @@
# frozen_string_literal: true
require "abstract_unit"
require "ostruct"
class ControllerHelperTest < ActionView::TestCase
tests ActionView::Helpers::ControllerHelper
@ -9,26 +8,28 @@ class ControllerHelperTest < ActionView::TestCase
class SpecializedFormBuilder < ActionView::Helpers::FormBuilder ; end
def test_assign_controller_sets_default_form_builder
@controller = OpenStruct.new(default_form_builder: SpecializedFormBuilder)
@controller = Struct.new(:default_form_builder).new(SpecializedFormBuilder)
assign_controller(@controller)
assert_equal SpecializedFormBuilder, default_form_builder
end
def test_assign_controller_skips_default_form_builder
@controller = OpenStruct.new
@controller = Object.new
assign_controller(@controller)
assert_nil default_form_builder
end
def test_respond_to
@controller = OpenStruct.new
@controller = Object.new
assign_controller(@controller)
assert_not respond_to?(:params)
assert respond_to?(:assign_controller)
@controller.params = {}
def @controller.params
{}
end
assert respond_to?(:params)
assert respond_to?(:assign_controller)
end

@ -2,7 +2,6 @@
require "abstract_unit"
require "controller/fake_models"
require "ostruct"
class FormHelperTest < ActionView::TestCase
include RenderERBUtils
@ -280,7 +279,7 @@ def test_label_with_locales_fallback_and_nested_attributes
end
def test_label_with_non_active_record_object
form_for(OpenStruct.new(name: "ok"), as: "person", url: "/an", html: { id: "create-person" }) do |f|
form_for(Struct.new(:name).new("ok"), as: "person", url: "/an", html: { id: "create-person" }) do |f|
f.label(:name)
end

@ -2,7 +2,6 @@
require "abstract_unit"
require "controller/fake_models"
require "ostruct"
class RecordIdentifierTest < ActiveSupport::TestCase
include ActionView::RecordIdentifier

@ -1,7 +1,6 @@
# frozen_string_literal: true
# copied from https://github.com/collectiveidea/delayed_job/blob/master/spec/delayed/backend/test.rb
require "ostruct"
# An in-memory backend suitable only for testing. Tries to behave as if it were an ORM.
module Delayed

@ -1,7 +1,6 @@
# frozen_string_literal: true
require_relative "../helper"
require "ostruct"
module Arel
module Attributes
@ -1161,10 +1160,10 @@ def fake_caster.type_cast_for_database(attr_name, value)
private
def quoted_range(begin_val, end_val, exclude)
OpenStruct.new(
begin: Nodes::Quoted.new(begin_val),
end: Nodes::Quoted.new(end_val),
exclude_end?: exclude,
Struct.new(:begin, :end, :exclude_end?).new(
Nodes::Quoted.new(begin_val),
Nodes::Quoted.new(end_val),
exclude,
)
end

@ -1,6 +1,5 @@
# frozen_string_literal: true
require "ostruct"
require "cases/encryption/helper"
require "models/pirate"
require "models/book"
@ -43,7 +42,7 @@ class ActiveRecord::Encryption::ConfigurableTest < ActiveRecord::EncryptionTestC
end
test "installing autofiltered parameters will add the encrypted attribute as a filter parameter using the dot notation" do
application = OpenStruct.new(config: OpenStruct.new(filter_parameters: []))
application = Struct.new(:config).new(Struct.new(:filter_parameters).new([]))
with_auto_filtered_parameters(application) do
NamedPirate = Class.new(Pirate) do
@ -56,7 +55,7 @@ class ActiveRecord::Encryption::ConfigurableTest < ActiveRecord::EncryptionTestC
end
test "installing autofiltered parameters will work with unnamed classes" do
application = OpenStruct.new(config: OpenStruct.new(filter_parameters: []))
application = Struct.new(:config).new(Struct.new(:filter_parameters).new([]))
with_auto_filtered_parameters(application) do
Class.new(Pirate) do
@ -71,7 +70,7 @@ class ActiveRecord::Encryption::ConfigurableTest < ActiveRecord::EncryptionTestC
test "exclude the installation of autofiltered params" do
ActiveRecord::Encryption.config.excluded_from_filter_parameters = [:catchphrase]
application = OpenStruct.new(config: OpenStruct.new(filter_parameters: []))
application = Struct.new(:config).new(Struct.new(:filter_parameters).new([]))
with_auto_filtered_parameters(application) do
Class.new(Pirate) do

@ -1,6 +1,5 @@
# frozen_string_literal: true
require "ostruct"
require "models/computer"
class Developer < ActiveRecord::Base
@ -226,7 +225,7 @@ class LazyBlockDeveloperCalledDavid < ActiveRecord::Base
class CallableDeveloperCalledDavid < ActiveRecord::Base
self.table_name = "developers"
default_scope OpenStruct.new(call: where(name: "David"))
default_scope Struct.new(:call).new(where(name: "David"))
end
class ClassMethodDeveloperCalledDavid < ActiveRecord::Base
@ -329,7 +328,7 @@ class EagerDeveloperWithCallableDefaultScope < ActiveRecord::Base
self.table_name = "developers"
has_and_belongs_to_many :projects, -> { order("projects.id") }, foreign_key: "developer_id", join_table: "developers_projects"
default_scope OpenStruct.new(call: includes(:projects))
default_scope Struct.new(:call).new(includes(:projects))
end
class ThreadsafeDeveloper < ActiveRecord::Base

@ -2,7 +2,6 @@
require "isolation/abstract_unit"
require "env_helpers"
require "ostruct"
module ApplicationTests
module RakeTests
@ -139,7 +138,7 @@ def db_create_and_drop(expected_database, environment_loaded: true)
app_file "config/environments/development.rb", <<-RUBY
Rails.application.configure do
config.other = OpenStruct.new(value: 123)
config.other = Struct.new(:value).new(123)
end
RUBY