| 
									
										
										
										
											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 |