2011-10-28 34 views
8

Tôi đang sử dụng RubyMine đó thông báo với tôi rằngĐộ dài tối đa của tên phương pháp trong ruby ​​là bao nhiêu?

unsubscribe_from_all_notifications 

... là quá dài đối với một tên phương pháp. Chiều dài tối đa là bao nhiêu?

+4

Tôi đoán đó là sự cố RubyMine; Tôi đã thử một phương thức với tên 'unsubscribe_from_all_notifications_and_keep_making_this_bloody_thing_longer_and_longer_and_longer_and_longer_and_longer' và nó hoạt động tốt trong Ruby 1.8.7 và 1.9.2 ... – BaronVonBraun

+0

Lập trình meta cho bất kỳ ai? –

+0

@AndrewGrimm hoàn thành :-) –

Trả lời

13

RubyMine nằm :-) Hoặc ít nhất không có nghĩa là đó là giới hạn của trình thông dịch Ruby.

looong_name = "a" * 10000; # => "aaaaaaaaa..... 
a_class = Class.new 
a_class.__send__(:define_method, looong_name) { :hello } 
a_class.new.__send__(looong_name) # => :hello 

puts a_class.instance_methods.inspect # you better not run this :-) 
1

AFAIK không có giới hạn về kích thước của tên phương thức trong ruby.

Rất có thể bạn có một số thiết lập kiểu mã hóa trong RubyMine hiển thị cho bạn cảnh báo này. Nếu trên một mac kiểm tra RubyMine> Preferences> Code Style> Ruby và xem nếu có một số loại ưu tiên trong đó.

Để cho bạn biết tôi cũng sử dụng RubyMine nhưng tôi không thấy kiểu mã hóa này được đặt cho tôi.

14

Trong RubyMine, bạn có thể thay đổi độ dài tối đa cho tất cả các loại tên của Ruby bởi:

  1. Chọn mục trình đơn RubyMine -> Preferences
  2. Trong kết quả hộp thoại phương thức trong ngăn bên trái dưới Trình biên tập, chọn Thanh tra.
  3. Trong ngăn kết quả ở bên phải, chọn Ruby ->Quy ước đặt tên.
  4. Bạn có chín loại tên Ruby để thay đổi. Mỗi trường hiển thị trường chỉnh sửa cho Độ dài tối đa. Vì vậy, ví dụ, tôi đã thay đổi tất cả từ 20 hoặc 30 đến 60. Nhấp vào Áp dụng cho mỗi trong số chín danh mục bạn thay đổi.
Các vấn đề liên quan