2021-09-11 01:00:23 +01:00
|
|
|
# typed: true
|
2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-06-04 11:05:02 -05:00
|
|
|
class Module
|
|
|
|
def attr_rw(*attrs)
|
|
|
|
attrs.each do |attr|
|
2021-01-29 09:11:35 +00:00
|
|
|
module_eval <<-EOS, __FILE__, __LINE__+1
|
2022-08-24 23:53:35 +01:00
|
|
|
def #{attr}(val=nil) # def prefix(val=nil)
|
|
|
|
if val.nil? # if val.nil?
|
|
|
|
if instance_variable_defined?(:@#{attr}) # if instance_variable_defined?(:@prefix)
|
|
|
|
return @#{attr} # return @prefix
|
|
|
|
else # else
|
|
|
|
return nil # return nil
|
|
|
|
end # end
|
|
|
|
end # end
|
|
|
|
#
|
|
|
|
@#{attr} = val # @prefix = val
|
|
|
|
end # end
|
2013-06-04 11:05:02 -05:00
|
|
|
EOS
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|