hello folks!
Is there a way to list methods only for specific class, i.e., not
inherited?
Thank you!
···
--
Posted via http://www.ruby-forum.com/.
hello folks!
Is there a way to list methods only for specific class, i.e., not
inherited?
Thank you!
--
Posted via http://www.ruby-forum.com/.
object.public_methods(false)
Hope this helps!
On Mon, Jun 15, 2009 at 12:38 AM, Le Sa <lescoutinhovr@gmail.com> wrote:
hello folks!
Is there a way to list methods only for specific class, i.e., not
inherited?Thank you!
--
Posted via http://www.ruby-forum.com/\.
--
Daniel Roux
robert
On 15.06.2009 07:38, Le Sa wrote:
Is there a way to list methods only for specific class, i.e., not
inherited?
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
so many replies hehe. you are amazing!!!
thank you all!!!
--
Posted via http://www.ruby-forum.com/.
I would like to list ms1 and ms2, but thanks for the help!
class Person
def mp1() end
end
class Student < Person
def ms1() end
def ms2() end
private :ms2
end
Student.public_methods(false).each {|m|puts m}
puts "************\n"
Student.instance_methods(false).each{|m|puts m}
=begin
OUTPUT IS:
yaml_tag_subclasses?
allocate
to_yaml
superclass
new
************
ms1
=end
--
Posted via http://www.ruby-forum.com/.
No problem!
instance_methods(false) is fine, because I won't be able to use private
methods anyway xD
Le Sa wrote:
I would like to list ms1 and ms2, but thanks for the help!
--
Posted via http://www.ruby-forum.com/\.
I would like to list ms1 and ms2, but thanks for the help!
class Person
def mp1() end
endclass Student < Person
def ms1() end
def ms2() endprivate :ms2
end
The closest I have to offer is this:
Student.new.methods - Object.instance_methods
=> ["ms1", "mp1"]
On Mon, Jun 15, 2009 at 5:27 PM, Le Sa<lescoutinhovr@gmail.com> wrote:
Try:
Student.new.public_methods(false) + Student.new.private_methods(false)
=> ["ms1", "ms2"]
On Mon, Jun 15, 2009 at 10:27 AM, Le Sa <lescoutinhovr@gmail.com> wrote:
I would like to list ms1 and ms2, but thanks for the help!
class Person
def mp1() end
endclass Student < Person
def ms1() end
def ms2() endprivate :ms2
endStudent.public_methods(false).each {|m|puts m}
puts "************\n"
Student.instance_methods(false).each{|m|puts m}
=begin
OUTPUT IS:yaml_tag_subclasses?
allocate
to_yaml
superclass
new
************
ms1
=end
--
Posted via http://www.ruby-forum.com/\.
--
Daniel Roux
Why do you folks create instances? You can do this as well:
cl = any_class
cl.instance_methods(false) - cl.private_instance_methods
Kind regards
robert
2009/6/15 Daniel Roux <danielroux@gmail.com>:
Try:
Student.new.public_methods(false) + Student.new.private_methods(false)
=> ["ms1", "ms2"]
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
Often, I'm most interested in methods unique to a given class and not those inherited from, say, Object:
(Array.instance_methods - Array.private_instance_methods - Object.public_methods).sort
And I sort them for easier reference. Don't know if this adds any information...
On Jun 16, 2009, at 12:04 AM, Robert Klemme wrote:
2009/6/15 Daniel Roux <danielroux@gmail.com>:
Try:
Student.new.public_methods(false) + Student.new.private_methods(false)
=> ["ms1", "ms2"]Why do you folks create instances? You can do this as well:
cl = any_class
cl.instance_methods(false) - cl.private_instance_methodsKind regards
robert
Steve Ross wrote:
Often, I'm most interested in methods unique to a given class and not
those inherited from, say, Object:(Array.instance_methods - Array.private_instance_methods -
Object.public_methods).sortAnd I sort them for easier reference. Don't know if this adds any
information...
If you really want unique to the class, and the class may have a more
complex object hieararchy than just inheriting from Object, why not
something like:
(MyClass.methods - MyClass.superclass.methods)
I _think_ that'll work, although how included modules in MyClass are
treated should be tested experimentally. I think it'll still work cause
of the magic anonymous singleton class thing ruby uses for module
mix-ins and such.
The trick in both Steve's and my attempt is the really useful '-'
operator/method on Arrays, which does array difference. So useful! See
also '&' for array intersection. Can save you a lot of hacky code if you
remember they're there.
Jonathan
--
Posted via http://www.ruby-forum.com/\.