why is it that: >> class Akill >> def astop(seq) >> self.select{|astop| astop.first==seq}.collect >> end >> end => nil >> grr.astop(b[0]) i get this error.... NoMethodError: private method `select' called for #<Akill:0x2dd01f8> from (irb):86:in `astop' from (irb):89 from ?:0 >> ...and when i do this: class Akill def astop(seq) @arte.select{|astop| astop.first==seq}.collect end end i don't....? ...and what is the difference in it's use if both worked... i mean...what is the difference between making a method that uses 'self' and one that uses a instance variable.... when would one to want to design a method with self and/or with a instance variable? ....and even though i add to the Akill class: attr_reader :arte, :stops, :rtes ...i still get these errors.... >> class Akill >> def astop(seq) >> self.select{|astop| astop.first==seq}.collect >> end >> end => nil >> grr.arte.astop(b[0]) NoMethodError: undefined method `astop' for #<Array:0x2dd01b0> from (irb):143 from :0 >> grr.astop([b0]) NameError: undefined local variable or method `b0' for main:Object from (irb):144 from :0 >> grr.astop(b[0]) NoMethodError: private method `select' called for #<Akill:0x2dd01f8> from (irb):140:in `astop' from (irb):145 from :0 >> -- Posted via http://www.ruby-forum.com/.