Открыть список
Как стать автором
Обновить

Комментарии 21

ох. я за вами не успеваю ))
Самое смешное, что в то время как пишу статьи по .NET жду ваши, так как сейчас подсел прямо таки на рельсы и руби. Спасибо.
Не менее смешно, что мне жутко интересен C#, но, к сожалению, ваши статьи уже «не умещаются» в голове с этим Руби :(
ExtraCat = Struct.new("ExtraCat", :name, :age, :weight)
    lucky = ExtraCat.new("Lucky", 2, 4)

По-моему пример не окончен, не показано собствеено как работать c lucky. Можно попробовать puts lucky.name и lucky.age += 1, но не уверен, что именно такой синтаксис
>Можно попробовать puts lucky.name и lucky.age += 1
Нужно:) Да, синтаксис именно такой.
Нашел еще альтернативу lucky[:name] равносильна (насколько я могу судить) lucky.name, но главное вместо :name может быть переменная, чего, по-моему в записи lucky.name сделать нельзя
Не конструктор, а порождающий метод (глубже не буду).
Углубляясь в модули

Перелистнем на одну каплю назад и вспомним, что такое модули и как их применять, в частности, обратим внимание на примеси и пример, приведенный там.
Но что случится при смешивании с нашими методами модуля? Если вы думаете, что будут включены как методы класса, то Руби так не поступает. Для этого можно сделать так:


Смотря как модмешивается модуль. Если это include — то будут instance-методы, если это extend — то — синглтон-методы. При этом записи:

не дописал, опять отправилось по клавишам случайно.

При этом записи:

class << self    # Здесь self это MyClass
  include MyMod
end

и

extend MyMod

эквиваленты, и обе создают синглтон-методы для «сущности». Если сущностью является класс, то будет создан метакласс, который будет содержать методы класса. Если сущность — это инстанс, то будет создан virtual-класс, который будет хранить методы инстанса. Кстати, класс — тоже инстанс (класса Class), поэтому первая конструкция, в которой используется include (который добавляет инстанс-методы) эквивалентна второй.

И сам include, как я уже отмечал, создает прокси-класс со ссылкой на подмешиваемый модуль.

P.S> для начального изучения эти механизмы не столь важны, но привожу, поскольку знать это тоже нужно будет.
Лучше писать не def SuperCat.big_cat, а def self.big_cat, чтобы не пришлось всё переименовывать, когда сменишь имя класса.
а чтобы не писать каждый раз self, можно и

class << self
  # и здесь методы класса
end
pussy = HyperCat.new do
    self.name = "Pussy"
end

Лучше заменить на:
pussy = HyperCat.new do
    @name = "Pussy"
end
а где-нибудь упоминалось, что почти все взято с книги Хэла Фултона? причем в предыдущих постах еще было что-то свое, а в этом почти копипаст…
Спасибо большое за статьи. У меня тут появился вопрос к знающим людям. Ситуация такая: меня учитель по химии попросила написать программу для тестирования. И в этот момент стали появляться капли, я загорелся идеей написать это всё на Ruby. В данный момент программа теста написана, работает в консоли при открытии .rb файла. А можно ли заснуть её в .exe и создать для неё интерфейс, с радиобоксами для выбора ответа и т.д.?
Нашёл для себя Shoes. Буду пробывать.
угу, потом поделитесь впечатлениями?
Ну, пока успехов никаких. Не могу понять одну вещь. Приложение создаётся вставкой кода Shoes.app do… end. Но как мне внутри этого блока делать расчёты, которые нужны для программы? Ведь внутри этого блока могут описывать лишь элементы интерфейса и их действие, кнопочки, поля, радиобаттоны и другие.
Если кто-то может кинуть ссылку на форум\сайт\irc или дать контакты человека, который может помочь с этим разобраться, буду благодарен.
P.S. Сайт shoes мне не помог, встроенный мануал тоже.
а зачем именно внутри этого блока? делайте где -то в другом месте, а уже результат выводите на экран. если я правильно понял.
насколько я понимаю, это не совсем реально с моим кодом (всё работает в консоли), а как переписать его под гуи я не знаю, с этим пока проблемы. поэтому и прошу линки на тех, кто может мне помочь с этим разобраться. не хочется просто своим кодом мусорить на хабре.
> Windows Live Writer + Visual Studio + VSPaste + HTML Snippet + PowerGREP + регулярные выражения + некоторая работа ручками

мне кажется, по количеству действий Gvim (в том числе под виндами) будет давать результат несколько быстрее: меню Синтаксис -> Сделать HTML с подсветкой. Пробелы он превращает в , такой умница.
APTANA IDE имхо вполне вариант для разработки и подсветка кода там есть:)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.