Chỉ cần vượt qua false
cho inherited
đối số của public_methods
:
"hello".public_methods.include?(:dup) # => true
"hello".public_methods(false).include?(:dup) # => false
Không phải là câu trả lời cho câu hỏi của bạn, nhưng trong trường hợp bạn không biết, irb
không autocompletion, vì vậy nó dễ dàng để có được danh sách của công chúng phương pháp (đặc biệt là nếu bạn biết bắt đầu của phương pháp bạn đang tìm kiếm). Chỉ cần nhấn tab; đánh nó hai lần sẽ liệt kê tất cả các khả năng (bao gồm cả những người thừa hưởng, mặc dù):
> "nice".d<tab><tab>
"nice".delete "nice".delete! "nice".display "nice".downcase
"nice".downcase! "nice".dump "nice".dup "nice".define_singleton_method
> "nice".<tab><tab>
Display all 162 possibilities? (y or n)
...
Sử dụng pry
làm cho nó thậm chí còn dễ dàng hơn để xem phương pháp có sẵn, chia theo mức độ thừa kế:
[1] pry(main)> cd "nice"
[2] pry("nice"):1> ls
Comparable#methods: < <= > >= between?
String#methods: % * + << <=> == === =~ [] []= ascii_only? bytes bytesize byteslice capitalize capitalize! casecmp center chars chomp chomp! chop chop! chr clear codepoints concat count crypt delete delete! downcase downcase! dump each_byte each_char each_codepoint each_line empty? encode encode! encoding end_with? eql? force_encoding getbyte gsub gsub! hash hex include? index insert inspect intern length lines ljust lstrip lstrip! match next next! oct ord partition prepend replace reverse reverse! rindex rjust rpartition rstrip rstrip! scan setbyte shellescape shellsplit size slice slice! split squeeze squeeze! start_with? strip strip! sub sub! succ succ! sum swapcase swapcase! to_c to_f to_i to_r to_s to_str to_sym tr tr! tr_s tr_s! unpack upcase upcase! upto valid_encoding?
locals: _ _dir_ _ex_ _file_ _in_ _out_ _pry_
Nguồn
2012-01-13 04:02:15
ý bạn là 'irb' hay' irc'? :-) –
Thật vậy, 'irb'. Cảm ơn bạn và @Mu –
Ah, siêu hữu ích! Tôi đã không nhận ra '# public_methods' chấp nhận bất kỳ đối số nào, và nó thậm chí không xảy ra với tôi để kiểm tra. Cảm ơn! – Andrew