Skip to content

Commit 3dbc08f

Browse files
committed
Remove unnecessary definition of members methods by eval
1 parent 4993b2c commit 3dbc08f

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

lib/concurrent/synchronization/immutable_struct.rb

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,12 @@ class ImmutableStruct < Synchronization::Object
1111
def self.with_fields(*names, &block)
1212
Class.new(self) do
1313
attr_reader(*names)
14-
14+
const_set :MEMBERS, names
1515
class_eval <<-RUBY, __FILE__, __LINE__ + 1
1616
def initialize(#{names.join(', ')})
1717
#{names.map { |n| '@' + n.to_s }.join(', ')} = #{names.join(', ')}
1818
ensure_ivar_visibility!
1919
end
20-
21-
def members
22-
#{names.inspect}
23-
end
24-
25-
def self.members
26-
#{names.inspect}
27-
end
2820
RUBY
2921

3022
instance_eval &block if block
@@ -46,6 +38,14 @@ def self.[](*args)
4638
new *args
4739
end
4840

41+
def self.members
42+
MEMBERS
43+
end
44+
45+
def members
46+
MEMBERS
47+
end
48+
4949
include Enumerable
5050

5151
def each(&block)

0 commit comments

Comments
 (0)