| 
									
										
										
										
											2013-06-04 11:05:02 -05:00
										 |  |  | class Module | 
					
						
							|  |  |  |   def attr_rw(*attrs) | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  |     file, line, = caller.first.split(":") | 
					
						
							| 
									
										
										
										
											2013-12-12 14:16:43 -06:00
										 |  |  |     line = line.to_i | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-04 11:05:02 -05:00
										 |  |  |     attrs.each do |attr| | 
					
						
							| 
									
										
										
										
											2013-12-12 14:16:43 -06:00
										 |  |  |       module_eval <<-EOS, file, line
 | 
					
						
							| 
									
										
										
										
											2013-06-04 11:05:02 -05:00
										 |  |  |         def #{attr}(val=nil) | 
					
						
							| 
									
										
										
										
											2018-04-07 20:28:56 +01:00
										 |  |  |           @#{attr} ||= nil | 
					
						
							|  |  |  |           return @#{attr} if val.nil? | 
					
						
							|  |  |  |           @#{attr} = val | 
					
						
							| 
									
										
										
										
											2013-06-04 11:05:02 -05:00
										 |  |  |         end | 
					
						
							|  |  |  |       EOS | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |