Archive for мая, 2010

to_hex, to_binary, to_… или преобразование систем счисления

мая 26, 2010  |  Published in Ruby, Основы

В очередной раз поражаюсь тому, на сколько Ruby интересный и изящно спроектированный язык. Например, вы  знали, что стандартными методами преобразования типов данных to_i и to_s можно преобразовывать систему счисления. Для того, чтобы было понятней приведу примеры:

puts 2.to_s(2) #=> 10
puts 11.to_s(2) #=> 1011
puts 'aa'.to_i(16) #=> 170
puts 'fe'.to_i(16) #=> 254
a = 0xff+0xee #=> 493
b= a.to_s(16) #=> 1ed
puts b
puts b.to_i(16) #=> 493
class Fixnum
        def to_hex
                "0x" << self.to_s(16)
        end
        def to_binary
                "0b" << self.to_s(2)
        end
end

puts 16.to_hex #=> 0x10
puts (16+16).to_hex #=> 0x20
puts 3.to_binary #=> 0b11 

Вы можете сами придумать любую систему счисления (пятнядцетиричную, троичную и т.д.) и написать метод для преобразования чисел по аналогии с to_hex и to_binary.

Tags: ,

Методы модуля Enumerable.

мая 24, 2010  |  Published in Ruby, Основы

Модуль Enumerable в Ruby представляет собой хранилище методов для работы с исчисляемыми типами данных: массивами, хэшами и диапазонами и включается в определение всех этих классов. Enumerable содержит огромное количество методов для работы с исчисляемыми типами и решения различных задач, в случае, если вам понадобится объявить свой метод, который будет доступен для всех исчисляемых типов, вы можете сделать это в определении модуля Enumerable:

module Enumerable
def my_method
...
end
end

Но сейчас беседа пойдет не об этом, а о том, как могут быть полезны предоставляемые модулем Enumerable методы.

В следующих примерах мы будем использовать следующий массив, который содержит названия различных транспортных средств:

vehicles = %w[ car truck boat plane helicopter bike ]

Read the rest of this entry »

Tags: ,

Богатство Ruby на циклы и итераторы

мая 6, 2010  |  Published in Ruby, Основы

loopRuby очень богат на циклы, итераторы и другие синтаксические конструкции. Очень часто изучающие Ruby тратят много времени на изучение всех этих конструкций. Этому способствует даже не так разнообразие и богатство языка Ruby, как то, что в книгах и сайтах посвященных азам программирования на языке Ruby мало внимания уделяется освещению всех способов создания циклов и итераторов как не самых интересных для изучающего частей языка.

В этой статье я познакомлю вас со всеми знакомыми мне циклами и некоторыми часто используемыми итераторами и приведу простые примеры их использования. Read the rest of this entry »

Tags: ,

Ruby ‘шные итераторы — each и collect

мая 5, 2010  |  Published in Ruby, Основы

each & collect Ruby methodsИтераторы являются не чем иным, как методами, поддерживающими коллекции. Коллекциями называются объекты, которые хранят в себе группы элементов данных. В массивы и хэши в Ruby также могут называться коллекциями, поскольку полностью соответствую вышеописанному определению коллекций.
Итераторы – это методы, которые последовательно проходят по всем элементам коллекции (массива или хэша) при этом выполняя над ними определенные операции. В этой статье мы рассмотрим два итератора – это итераторы each и collect. Давайте приступим! Read the rest of this entry »

Tags: ,

Эти загадочные True, False и Nil объекты Ruby

мая 4, 2010  |  Published in Ruby, Основы

true Каждое выражение и каждый объект в Ruby имеет булево значение, что означает, что каждый объект и каждое выражение оцениваются как true или как false. Это делает true и false довольно специфическими значениями в языке Ruby. При всем при этом, true и false являются не просто значениями, а объектами Ruby.

Объекты True и False

Вы, наверняка, знаете, что true и false — это зарезервированные слова Ruby, что означает, что вы не сможете использовать их как имена для переменных или методов. Но помимо этого, оба true и false также являются абсолютно полноценными объектами. Ruby имеет 2 специальных класса от которых происходят эти объекты, а именно: Read the rest of this entry »

Tags:

Вся правда о LESS

мая 3, 2010  |  Published in Ruby Gems

Перевод оффициальной документации с

LESS css logoLESS — Ruby gem, позволяющий ускорить и сделать более удобным написание CSS-кода для дизайна ваших веб приложений. LESS даёт возможность изящно обойти различные неудобства работы на «чистом» CSS. Его разработчики находились под впечатлением от других подобных разработок и в большей мере от любимого многими SASS.

Зачем же понадобилось создавать LESS, если существует и чрезвычайно популярен SASS?
Все просто: дело в синтаксисе!

SASS действительно очень удобен, но у этого удобства есть и высокая цена — изучение нового синтаксиса и полная переработка вашего CSS кода в код на SASS. Read the rest of this entry »

Tags: , ,