Код:#=============================================================================== # Array # Класс массива. Элементы массива - произвольные объекты Ruby. #----------------------------------------------------------------------------- # Заимствованы решения авторов: # Ширяев Денис #=============================================================================== class Array #----------------------------------------------------------------------------- # Псевдоним метода join # Возвращает строку, созданную путем преобразования каждого элемента массива # в строку, разделенных строкой separator. # Вызов: self.to_s(separator :string) # self.join(separator :string) # Возвращает :string #----------------------------------------------------------------------------- alias to_s :join #----------------------------------------------------------------------------- # Возвращает случайный элемент массива #----------------------------------------------------------------------------- def rand self[Kernel.rand(size)] end #----------------------------------------------------------------------------- # Возвращает количество элементов массива :integer # Если указано условие, будет подсчитано количество совпадений с ним # Пример: self.size{ |i| (i % 2).zero? } сосчитает количество четных чисел #----------------------------------------------------------------------------- def size(&closure) closure ? inject(0){ |count, elem| (yield elem) ? count + 1 : count } : length end #----------------------------------------------------------------------------- # Преобразует одномерный массив в прямоугольник # Возвращает :rect # Примечание: первые четыре ячейки массива должны быть класса integer. #----------------------------------------------------------------------------- def to_rect return Rect.new(self[0], self[1], self[2], self[3]) end #----------------------------------------------------------------------------- end
Социальные закладки