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

Ruby *

Динамический высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Доступ к документации по Ruby 1.9 из OS X Dictionary и Spotlight

Время на прочтение1 мин
Количество просмотров834
Priit Haamer эстонский Ruby разработчик опубликовал документацию по Ruby 1.9 в формате словаря для приложения Dictionary. С этой странички можно скачать Ruby dictionary. В таком же формате доступна документация по Ruby on Rails

Установка


Распакуйте zip в папку ~/Library/Dictionaries если хотите поставить словари только для себя. Возможно эту папку придется создать. Если хотите поставить словари для всех, то распакуйте их в папку /Library/Dictionaries.
Для того чтобы работал поиск по этим словарям из Spotlight откройте настройки Dictionary.app и перетяните необходимый словарь вверх потому что Spotlight ищет только по первому словарю из списка.

4. Metaprogramming patterns. 19 кю. Спасение утопающих дело рук самих утопающих

Время на прочтение12 мин
Количество просмотров3K
Предположим, что у вас есть библиотечный метод, который иногда кидает ексепшены.
Этот метод библиотечный в том смысле, что вы не хотите трогать руками тот файл, где он определён, так как этот файл, например, относится к библиотеке, которая регулярно обновляется, и ваши изменения после каждого обновления будут теряться, если вы специально не позаботитесь о их сохранении.
Такие методы принято менять в своем собственном коде — в динамических языках можно прямо в своем коде переписать избранный метод избранного класса.
Читать дальше →

Вышел релиз Ruby 1.9.1

Время на прочтение1 мин
Количество просмотров632
image
Спешу поделиться со всеми пользователями Хабра хорошей новостью! Вышел Ruby 1.9.1
Обещают что он в несколько раз быстрее 1.8.7 что есть просто отлично…
Найти исходники можно на официальном сайте. К сожалению пока только исходники. Ну и ладно.
Список изменений и отличий от 1.8.7
Список профикшеных багов от 1.9.1 RC2
Bzip архив
Gzip архив
PS
Rails запускаются
image

3. Metaprogramming patterns — 20 кю. Замыкания

Время на прочтение7 мин
Количество просмотров6K
В предыдущем посте мы затронули важнейшую концепцию — замыкание (closure).
Суть этой концепции в том, что в любой блок как бы заключается «весь окружающий мир» так, как он виден в контексте, где блок создается. Правильнее сказать, что в блок заключается не весь окружающий мир (пространство имён), а фиксируется точка зрения на окружающий мир (пространство имён).
Читать дальше →

Запуск Ruby on Rails приложений на shared-хостинге на примере баг/таймтрекера Redmine

Время на прочтение2 мин
Количество просмотров6.1K
Для своего нового проекта я как раз сейчас устанавливаю рабочее окружение, и ключевое место в нем занимает баг/таймтрекер+wiki. Платные реализации извесны (тот же Basecamp, Fogbugs, updatelog.com), но хотелось найти что-то что хостится на моём сервере. Из извесного и хорошо работающего — это Bugzilla (с очень скромным функционалом), Trac(есть все, но только 1 проект), и вот только что наткнулся на «новый» проект (около 3-х лет ему) — Redmine. Практически аналог вышеупомянутых платных сервисов, но бесплатный. Проблема для меня в том, что он написан на Ruby On Rails, и как оказалось деплоймент ROR приложений может быть не слишком простым (по крайней мере для таких новичков в этом деле как я). Так как хостинг не специализируется на Ruby, Passenger-а нету. В конечном итоге оказалось что это все не так уж и сложно :-)

Читаем дальше

Наглядная история Rails

Время на прочтение1 мин
Количество просмотров931
Теперь любой человек может посмотреть сколько труда было вложено в создание Ruby on Rails.
Вся git-история была перенесена в видео, используя code_swarm.


Источник

Домашний файлообменник на базе Sinatra и DataMapper. Часть 3 — Very Advanced features

Время на прочтение10 мин
Количество просмотров4.1K
Предыдущие две статьи (раз и два) оказались гораздо популярнее, чем я мог ожидать. А теперь пришла пора третьей, завершающей статьи о файлообменнике на базе Sinatra и DataMapper.

В этот раз мы рассмотрим:
  • Проблему с одинаковыми именами файлов
  • Страницу ожидания перед загрузкой
  • Создание CSS с помощью SASS
  • Аутентификацию
  • Запуск из под thin
  • Тестирование с помощью RSpec
  • Бенчмарки


Поехали

2. Metaprogramming patterns — 22кю. Reuse в малом — bang!

Время на прочтение6 мин
Количество просмотров3.5K
На этот раз буду рассказывать не только про метапрограммирование, но и про Ruby, а также про алгоритмы — сегодня вспомним классику и посмотрим, как она нам явится в Ruby-строках реализации метода qsort. Блог только начинается, про настоящее метапрограммирование пока говорить рано, поэтому позволю себе отступления от основной темы.
Читать дальше →

Домашний файлообменник на базе Sinatra и DataMapper. Часть 2 — Advanced features.

Время на прочтение11 мин
Количество просмотров12K
В первой статье я рассказывал о том, как написать простое веб-приложение с применением Sinatra и DataMapper. В этот раз мы добавим множество новых фич и улучшим код в целом.
Читать дальше →

Ruby и C. Часть 3.

Время на прочтение3 мин
Количество просмотров3.4K
В прошлых частях(часть 1,часть 2) мы рассмотрели использование С для ускорения или расширения Ruby. Сейчас же мы узнаем как использовать Ruby интерпретатор в программах, написанных на С/С++.
В некоторых приложениях возникает необходимость во встроенном языке, для более тонкой настройки или для написания расширений без перекомпиляции. Ruby очень хорошо подходит для этой цели, т.к. имеет простое и удобное API для втраивания в C/C++ приложения. Например Google SketchUp использует Ruby в качестве скриптового языка.

Давайте рассмотрим как встроить Ruby в наши С/С++ приложения.
Читать дальше →

Домашний файлообменник на базе Sinatra и DataMapper. Часть 1 — The Begining

Время на прочтение8 мин
Количество просмотров12K
Продолжение статьи

Длительное вступление


Логотип  SinatraМне и моей жене часто приходится передавать файлы из точки А в точку Б, где точка А — один из домашних компьютеров, а точка Б — либо компьютер кого-нибудь из знакомых, либо, например, компьютер на работе (где, порой, запрещены флешки). К тому же идти за флешкой (которая может лежать в любой части квартиры) и копировать файл на нее — тоже достаточно лениво :) В общем, я обычно использую для этих целей сервисы вроде webfile.ru и box.net, а жена тупо посылает файл себе (или корреспонденту) по почте.

Еще немного вступления и наконец-то мы начинаем писать код! Но букв всё равно очень много.

1. Metaprogramming patterns — 25кю. Метод eval

Время на прочтение10 мин
Количество просмотров23K
Программирование, которым я периодически по-прежнему занимаюсь, постепенно меняет свой стиль и всё больше связано с метапрограммированием. При этом нельзя сказать, что обычное программирование мне опостылело. Просто как любой программист, я ищу пути для всё большей модульности, краткости, внятности и гибкости кода, и в метапрограммировании мне видится нераскрытый потенциал (несмотря на давний необозримый интернетовский флуд по метапрограммированию идущий ещё от Lisp). :)

Хочу начать вести блог, посвященный метапрограммированию на Ruby.
Читать дальше →

Ближайшие события

Обучение программирования на Ruby/Python

Время на прочтение4 мин
Количество просмотров37K
BASIC и Pascal давно стали стандартом при начальном обучении программиста. Для многих это первый язык со школы или первого курса университета. Однако за десяток лет ситуация практически не изменилась. Действительно ли Basic и Pascal подходят для обучения сейчас? Неужели за десяток лет не появилось ничего лучше?

Подумайте, есль ли причины использовать BASIC и Pascal кроме исторических?

В школе давно понятно — лучше давать не программирование, а основы использования компьютера. Максимум — Logo в среде типа KTurtle.

Но для первых курсов института и усиленного изучения школьников я считаю, лучше использовать Ruby и Python.

Конечно я не настаиваю учить только на Ruby. Но, например, базис дать на Ruby, а более сложное на Java/C# или С (включая управление памятью) — более правильно скажется на становлении программиста.

Далее аргументы.
Читать дальше →

Ruby и C. Часть 2.

Время на прочтение4 мин
Количество просмотров5.8K
В прошлой части мы рассмотрели библиотеку RubyInline, которая позваляет делать вставки C кода прямо в Ruby методы. Ее очень удобно использовать если нам нужно ускорить несколько критичных методов. Но если нам нужно реализовать C библиотеку и использовать в Ruby, или сделать обертку для уже существующей, то нам на помощь придет C API для создания расширений.

Читать дальше →

Ruby && Python && Perl && PHP && Ruby1.9

Время на прочтение3 мин
Количество просмотров14K
В коментариях к моей статье были высказанны просьбы протестировать производительность приведенного там примера на других языках. Что я и пытался сделать.
Как видно из заголовка, в тесте участвовали практически все популярные сегодня динамические языки, а также новая версия Ruby.
Давайте взглянем на результаты.
Читать дальше →

Ruby и C. Часть 1.

Время на прочтение3 мин
Количество просмотров6.7K
Ruby очень легко интегрируется с языком программирования C. Можно создавать расширения для Ruby. Или мы можем сделать обертку для библиотеки на C, и использовать ее как обычную Ruby библиотеку. Так же можно реализовать критичные вычисления на C прямо в Ruby коде! Другой вариант интеграции — это использование Ruby в C/C++ программах, в качестве скриптового языка. Например, как это сделано в Google SketchUp.

Давайте посмотрим, какие возможности Ruby представляет для интеграции с C.

Читать дальше →

DSL и динамические вкусности Ruby

Время на прочтение5 мин
Количество просмотров13K
В этой статье я проиллюстрирую основные возможности Ruby для построения Domain Specific Languages(DSL). DSL, это небольшие, узкоспециализированные языки для решения конкретных задач. В отличие от языков общего назначения, таких как C++ или Java, DSL обычно очень компактны, и обладают высокой выразительностью в контексте решаемой задачи.

Различные DSL широко распространены в библиотеках и фреймворках для Ruby. Например в Rails DSL используются для создания миграций.

А теперь, давайте посмотрим какие возможности Ruby предоставляет для построения DSL
Читать дальше →

Подсветка синтаксиса в Ruby

Время на прочтение2 мин
Количество просмотров1.9K
В проектах, ориентированных на IT аудиторию время от времени возникает задача подсветки синтаксиса исходных файлов. Недавно, я захотел посмотреть как эта задача решается в Ruby.
И что же я нашел?

Быстрый полнотекстовый поиск в Rails приложениях

Время на прочтение3 мин
Количество просмотров6.1K
Рано или поздно перед каждым сайтом (будь то социальная сеть, форум, блог или еще какое-то хранилище информации) возникает проблема поиска. Каждый разработчик решает эту проблему по-своему: одни пишут свои решения, другие используют готовые встраиваемые поисковики, третьи используют внешние решения, например сервисы от Google.

В этой статье мне хотелось бы рассказать о таком средстве поиска, как Ferret, и о том, как просто использовать данное решение в своем Rails-приложении.

и что же такое ferret?

Вклад авторов