diff options
author | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-24 18:08:15 +0000 |
---|---|---|
committer | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-24 18:08:15 +0000 |
commit | e565c838ce2f70f7f632aa0b728430fe195357fb (patch) | |
tree | 6e60acf1dff6953a87fc6ccb61137c962feac16f /lib/ostruct.rb | |
parent | e077e7956a63cbe266368d034fa76a35020cf78e (diff) | |
download | ruby-e565c838ce2f70f7f632aa0b728430fe195357fb.tar.gz |
lib/ostruct.rb: Use frozen literals.
Patch adapted from Espartaco Palma. [GH-1714] [Bug #14000]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/ostruct.rb')
-rw-r--r-- | lib/ostruct.rb | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/lib/ostruct.rb b/lib/ostruct.rb index 2edb2edeb4..6cf0ecefc3 100644 --- a/lib/ostruct.rb +++ b/lib/ostruct.rb @@ -1,4 +1,4 @@ -# frozen_string_literal: false +# frozen_string_literal: true # # = ostruct.rb: OpenStruct implementation # @@ -308,25 +308,20 @@ class OpenStruct # Returns a string containing a detailed summary of the keys and values. # def inspect - str = "#<#{self.class}" - ids = (Thread.current[InspectKey] ||= []) if ids.include?(object_id) - return str << ' ...>' - end - - ids << object_id - begin - first = true - for k,v in @table - str << "," unless first - first = false - str << " #{k}=#{v.inspect}" + detail = ' ...' + else + ids << object_id + begin + detail = @table.map do |key, value| + " #{key}=#{value.inspect}" + end.join(',') + ensure + ids.pop end - return str << '>' - ensure - ids.pop end + ['#<', self.class, detail, '>'].join end alias :to_s :inspect |