Основы

Магия модуля Enumerable в Ruby: #3 Условные Операторы

января 15, 2011  |  Published in Ruby, Основы

enumerating ruby enumerable
Статьи из цикла Магия модуля Enumerable:
1.Основы
2. Унарный оператор амперсанд “&”
3. Условные операторы
4. Фильтры
5. Создание новых коллекций
6. Методы inject, min и max
Самые основные методы модуля Enumerable это те, которые дают простой ответ да или нет. Существует три таких условных метода: all? , any? и include?. каждый из этих методов предоставляют вам информацию о коллекции с которой вы работаете.
Начнем изучение их работы на основе следущего кода:

class Team
  include Enumerable

  attr_accessor :members

  def initialize
    @members = []
  end

  def each &block
    @members.each{|member| block.call(member)}
  end
end

Read the rest of this entry »

Tags: , ,

Магия модуля Enumerable в Ruby: #2 унарный оператор амперсанд “&”

января 15, 2011  |  Published in Ruby, Основы

enumerating ruby enumerable

Эта статья является свободным переводом оригинальной статьи на английском языке. Оригинал статьи на английском: . И является второй статьей в цикла «Магия модуля Enumerable».

Статьи из цикла Магия модуля Enumerable:
1.Основы
2. Унарный оператор амперсанд “&”
3. Условные операторы
4. Фильтры
5. Создание новых коллекций
6. Методы inject, min и max
Read the rest of this entry »

Tags: , ,

Магия модуля Enumerable в Ruby: #1 Основы

января 10, 2011  |  Published in Ruby, Основы

enumerating ruby enumerable
Статьи из цикла Магия модуля Enumerable:
1.Основы
2. Унарный оператор амперсанд “&”
3. Условные операторы
4. Фильтры
5. Создание новых коллекций
6. Методы inject, min и max
Вы вероятно уже знакомы с модулем Enumerable в Ruby, даже если вы видите это название в первый раз. Этот модуль добавляет некоторые методы для массивов, например map, inject, select и т.д. Вы наверняка думаете (Как и я ранее долгое время думал), что эти методы являются методами, подмешиваемыми только к массивам, однако это не так.

Read the rest of this entry »

Tags: , ,

Фокусы-Покусы с Хэшами: трюки с передачей блока кода

декабря 31, 2010  |  Published in Ruby, Основы

ruby hash triks magic hatВ Ruby при объявлении хэша, в хэш можно передавать блок кода. Блок передаваемый хэшу вызывается каждый раз, когда вы обращаетесь к несуществующему ключу хэша. Блок передаваемый хэшу при его объявлении имеет следующий формат:

Hash.new{|hash, key| … }

hash — ссылка на самого себя (текущий объект hash), а параметр key — содержит ненайденный ключ. Со всем этим вы можете инициировать значения по умолчанию в хэше до того, как они станут доступными. Ниже представлены несколько интересных вещей, которые вы можете сделать при помощи блока кода, который передается в хэш при его объявлении. Read the rest of this entry »

Tags: , ,

Memoize техники в Ruby и Ruby on Rails

декабря 24, 2010  |  Published in Ruby, Ruby on Rails, Основы

ruby brainЗаголовок не опечатка. Если вы не слышали о «memoizе», то я вам кратко расскажу. Memoiz’инг — это кэширование результата метода таким образом что когда вы вызываете метод в будущем, то он не выполняет заново все операции. Я покажу вам несколько различных техник для подобного кэширования, с комментариями за и против использования каждой техники.
Read the rest of this entry »

Tags:

Различия между Public, Protected и Private методами

декабря 19, 2010  |  Published in Ruby, Основы

Очень просто программировать несколько лет на Ruby и никогда не обращать внимание на декларирование видимости методов (прав доступа к методам) при помощи public, private и protected. Я так говорю потому, что и сам не обращал на это внимание. Я пришел в Ruby из С/C++, поэтому я отлично понимал концепцию public и private, и я догадывался о том, что собой представляет декларация protected в Ruby, но я никогда не пытался разобраться со всем этим более подробно. В конечном счете по некоторым причинам я заинтересовался этим вопросом и в этой статье я расскажу о различных декларациях видимости методов: public, protected и private.
Read the rest of this entry »

Tags:

alias и alias_method под микроскопом

декабря 12, 2010  |  Published in Ruby, Основы

rubyЧасто перед программистом становится необходимость создания второго имени для метода — псевдонима метода. Создание псевдонима может нам понадобится, например если мы хотим переопределить метод, но при этом данный метод нам так же необходим. Для этих задач Ruby предоставляет нам такие инструменты, как alias и alias_method. Псевдоним — это не просто другое имя, это полная, точная копия метода, которой дано новое имя, благодаря чему мы можем изменить один метод (оригинал) не боясь, что это как-то отразится на другом (псевдониме — копии). Давайте рассмотрим пример использования alias:

Read the rest of this entry »

Tags:

Что делает оператор * — «звездочка» в Ruby?

декабря 8, 2010  |  Published in Ruby, Основы

ruby asterisk operatorRuby — язык, который полон сюрпризов, чаще всего приятных. Одной из интересных идиом в Ruby является унарный оператор «звездочка» - *, он же asterisk и splat. К сожалению не все умеют с ним работать и не все понимают что он делает. Мне больше всего нравится название asterisk, поэтому я буду использовать его далее по тексту.
Read the rest of this entry »

Tags:

Ruby и красивый код #4

декабря 7, 2010  |  Published in Ruby, Основы

Это относительно вольный перевод с английского статьи

ruby

Предыдущие статьи из рубрики:
Ruby и красивый код #1
Ruby и красивый код #2
Ruby и красивый код #3

Что же такое идиома?
Идиома — это что-то специфическое в языке. Идиомы Ruby — это программистские техники которые специфичны для Ruby и позволяют писать на Ruby небольшие фрагменты кода, которые, если попытаться переписать на менее лаконичном языке, потеряют свою красоту и могут превратиться во что-то монструозное.

Зачем изучать идиомы в Ruby, если можно писать код и без них?

Во-первых идиомы — это лаконичный код, а во-вторых вы ведь не сплошь и рядом пользуетесь своими велосипедами? Вы наверняка используете чужие библиотеки и rubygem’ы и плагины и читая чужой код вы наверняка наткнетесь на идиомы и техники метапрограммирования, таким образом без знания идиом языка Ruby и техник метапрограммирования вы не сможете понять чужого кода.
Read the rest of this entry »

Tags: , ,

Что нового в Ruby 1.9?

ноября 20, 2010  |  Published in Ruby, Основы

Что нового в 1.9?В этой статье автор пытается раскрыть все наиболее значительные изменения в Ruby 1.9.

Изменения в самом Ruby:

— Rubygems и Rake теперь официально являются частями Ruby и поставляются с ним в комплекте.

— Некоторые непопулярные библиотеки были исключены из ядра, однако доступны в виде RubyGems: soap, jruby и т.д.

— Новый «основной» класс в иерархии классов: BasicObject:

1.8 => [Class, Module, Object, Kernel]
1.9 => [Class, Module, Object, Kernel, BasicObject]

BasicObject.instance_methods # => [:==, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__]

Этот класс на столько основной, что для него даже не определен метод object_id.

Read the rest of this entry »

Tags: ,