From: Jim Carter Date: 2011-02-02T03:11:02+09:00 Subject: attr_reader - general question I have the following configuration: class ExternalBallistics attr_accessor :a,:b #inputs attr_reader :c #outputs def initialize(&block) instance_eval &block end def calculate c = a + b end end #class ExternalBallistics.new do self.a = 5 self.b = 3 calculate puts self.c end #ExternalBallistics This returns a nil value for c. If I use "puts" inside of def calculate, I will get 8 for an answer. Why does a and b act globally and c not. Am I forced to use a return on calculate to get an answer. If I do so, do I still need to define an attr_reader :c (what use is it then) ? Thanks -- Posted via http://www.ruby-forum.com/.