Ruby/Избранное с RubyNews: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 255:
 
Какие методы в Ruby самые популярные? Естественно, что ответ на подобный вопрос зависит от опытности программиста и его собственного стиля. А ведь хочется узнать ответ "в общем"... Для чего мне это? Ну как же, детей надо обучать методам первой необходимости (остальные сами выучат). Им же лень учить все! Поэтому при проектировании учебных пособий следует учитывать частоту использования тех или иных методов. Метод <code>[]</code> (он же <code>.at</code>) учитывать не будем, ибо ясно, что он один из популярнейших. Чтобы найти наши 100 излюбленных методов Руби мы напишем простенькую программу (которая имеет право глючить) и натравим ее на каталог <tt>ruby</tt> (для узости можно натравить только на каталог <tt>ruby/lib</tt>). Методы будем искать и в строках и в коментариях. Для тех, кто хочет чистоты эксперимента, может удалять из обработки строки и коментарии. Я их оставил умышленно. Итак, код программы:
<codesource lang=ruby>require 'find'
result = []
Find.find('c:/ruby/'){ |path|
if test(?f,path) && path =~ /&#92;.rbw?$/
result += IO.read( path ).scan( /&#92;.[a-z][_w!?]+/ )
end
}
puts (result - ['.com','.jp','.org','.rb','.rbw','.amazon']).inject( Hash.new(0) ){ |result,elem|
result[ elem ] = result[ elem ].succ result }.sort_by{ |array| array[1]
}.reverse[0...100].map{ |array| array.reverse.join(' : ') }</codesource>
Как видно из кода программы, она предельно проста и хватает даже доменные зоны в качестве методов (а чего?! метод .com очень даже ничего). Результат ее работы примерно такой (цифра слева — это частота использования):
<tt>11866 : .new
Строка 366:
103 : .height
103 : .id2obj</tt>
Все это конечно бред, зато прикольно и есть над чем подумать! :-)
 
 
 
== Условие может объединяться не только при помощи <nowiki>||</nowiki> ==