From: merch-redmine@... Date: 2020-07-30T21:18:19+00:00 Subject: [ruby-core:99406] [Ruby master Bug#17093] attr_accessor works strange Issue #17093 has been updated by jeremyevans0 (Jeremy Evans). Status changed from Open to Feedback Do you expect the `type = 'default'` in `b` to set the @type instance variable to `'default'`? If so, that doesn't work, you need to use `self.type =` instead of `type =`. If not, can you provide an explanation of what behavior you are expecting? ---------------------------------------- Bug #17093: attr_accessor works strange https://bugs.ruby-lang.org/issues/17093#change-86854 * Author: mpavel (pavel m) * Status: Feedback * Priority: Normal * ruby -v: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin17] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- require 'rubygems' class A def initialize(type:) @type = type end def b p type p type.nil? type = 'default' if type.nil? type end private attr_accessor :type end RSpec.describe A do let(:type) { 'whoaaa' } it 'return default' do expect(A.new(type: type).b).to eq('default') end it 'instance variable is "whoaaa"' do expect(A.new(type: type).instance_variable_get(:@type)).to eq(type) end end all tests green output A "whoaaa" false return default instance variable is "whoaaa" -- https://bugs.ruby-lang.org/ Unsubscribe: