Показаны сообщения с ярлыком ruby. Показать все сообщения
Показаны сообщения с ярлыком ruby. Показать все сообщения

14 октября 2012 г.

Разворачивание RubyOnRails 3 + PostgreSql приложения с github на хостинге Locum.ru

Один мой знакомый системный администратор предложил попробовать хостинг locum.ru ссылаясь на крайне приятное впечатление о данном сервисе. Сразу оговорюсь что данный пост не является рекламой: при первом знакомстве возникли некоторые моменты, которые мягко говоря смутили меня и о них хочется рассказать подробнее, так как необходимой информации я не нашел ни в официальном блоге, ни в рунете.

Здесь я пошагово расскажу как развернуть ваше приложение на тарифе "Плекс" или аналогичном ("Прайм" и "Оптима" - тарифы поддерживающие RubyOnRails-проекты на момент написания статьи). Будет рассмотрено подключение по ssh, особенности работы с rails-приложением через командную строку на сервере данного хостинга и описан процесс клонирования git-проекта.

4 октября 2012 г.

Парсинг ресурсов с Nokogiri в приложении Ruby on rails

Долгое время не доходили руки написать эту статью, однако слабая освещенность темы в рунете заставила меня вернуться к ней.

Итак, в этой статье я расскажу как легко и быстро парсить информацию с онлайн ресурсов для последующей работы с ней в ваших RubyOnRails приложениях. В этом нам поможет замечательный гем Nokogiri - это HTML, XML, SAX , и RSS парсер. Среди прочих фишек Nokogiri имеется возможность доступа к элементам по XPath и CSS3-селекторам. Это означает что вы можете использовать Nokogiri не только для парсинга веб-ресурсов, но и для разбора xml-файлов самых разных видов.


3 марта 2012 г.

Форма с чекбоксами и multiple select для модели с has_many связями на Rails 3

текст основан на вольном переводе статьи из блога Bucky Bits с авторскими дополнениями

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

@товар может иметь много @категорий, а @магазин иметь отделения в разных @городах, при этом и @категории и @города являются отдельными ресурсами с чёткой и востребованной структурой - т.е. мы выбираем связи из предложенных вариантов.

Если список выбора не слишком богат, то велик соблазн применить в визуальном решении для формы основной модели чекбоксы, каждый из которых будет отдельным кейсом из списка вариантов, или multiple select для более крупных списков. Давайте посмотрим как это делается.

19 февраля 2012 г.

Настройка конфигурации сервера Nginx для разработки на хостингн Amazon EC2

перевод с официального сайта http://http://nginx.org

В качестве независимого поставщика решений, в рамках программы AWS Solution Providers, Nginx предлагает автоматизированный скрипт установки сервера для использования на образах AWS EC2. Этот всмпомогательный сценарий ориентирован на разработчиков, которые только начали использовать Nginx и EC2, и хотели бы иметь быструю и эффективную среду. Пожалуйста, проделайте описанные в списке действия для того, чтобы подготовить свою виртуальную машину и настроить корректную конфигурацию Nginx.

Для настройки среды разработки:


  • Используйте руководство Get Started with EC2 чтобы зарегестрироваться на AWS (Amazon Web Services) и запустить свой EC2 образ (Spot request или Instance). Наш сценарий поддерживает только “Basic 32-bit Amazon Linux AMI” или “Basic 64-bit Amazon Linux AMI” образы, поэтому выберите один из них. При настройке правил брандмауэра (Security groups), необходимо добавить правило, чтобы принимать веб-трафик на 80 порту:
    80 (HTTP) 0.0.0.0/0
    
  • Как только сущность будет запущена войдите на нее используя ssh доступ и скачайте баш-скрипт aws_nginx_setup.sh с помощью следующей команды:
    wget http://nginx.org/download/aws_nginx_setup.sh
    
    затем запустите скрипт с правами суперпользователя:
    sudo sh ./aws_nginx_setup.sh
    
  • Вам будут предложены различные варианты установки. Возможно выбрать Django, Pyramid, Ruby on Rails или PHP среды разработки. После выбора необходимых компонентов, скрипт автоматически подготовит конфигурацию для работы с Nginx. Будет создан отдельный пользователь, а затем пример web-приложения будет запущен, для демонстрации корректной работы.
  • После завершения установки директорией для приложений будет являться папка /var/www, скрипт сообщит как запускать/останавливать пример приложения. Например Rails приложение будет находиться в /var/www/rails, а специфичные настройки Rails в конфигурации nginx будут находиться в /etc/nginx/conf.d/rails.conf. Установленные приложения и конфигурация могут быть использованы в качестве основы для дальнейшего развития.

От PHP к Ruby (Сходства и различия)

перевод с официального сайта http://www.ruby-lang.org

PHP широко используется для разработки web-приложений, однако если вы собираетесь попробовать Ruby on Rails или хотите писать на языке предназначенном для общего использования, то Ruby это то что вам нужно.

Сходства
  • Ruby как и PHP имеется механизм динамической типизации данных. Вы можете определять перменные непосредственно во время выполнения сценария.
  • Имеются классы, и вы можете контролировать доступ к ним, идентично PHP 5 присутсвуют public, private и protected уровни доступа.
  • Некоторые переменные также начинаются с $, как в PHP (но не все)
  • В Ruby присутсвует eval функция.
  • Вы также может использовать строчную интерполяцию. ”$foo is a $bar” вы можете написать как ”#{foo} is a #{bar}” — как и в PHP, это не распространяется на одиночные кавычки.
  • Идентичный heredoc механизм и синтаксис.
  • В Ruby есть исключения (exceptions -> raise или fail), как в PHP 5
  • Также имеется огромная библиотека стандартных механизмов.
  • Массивы (array) и хэш-массивы (hashes) устроены подобным образом, если вы замените конструкцию array() на { и }, то PHP array('a' => 'b') превратится Ruby {'a' => 'b'}.
  • true и false устроены аналогично PHP, но null обозначается nil

Различия
  • В Ruby строгая типизация данных. Вы должны использовать методы .to_s, .to_i и т. д. для конвертации строк, чисел и т.д. вместо того чтобы оставлять эту работу языку.
  • Строки, числа, массивы, хэш-массивы и все остальные сущности в Ruby являются объектами.
  • Скобки не являются обязательными при вызове метода, кроме тех случчаев когда нееобходимо передать параметры в тело метода
  • Вместо соблюдения оговоренного пространства имён например таких как подчеркивания (Underscores) или camelCase, стандартные библиотеки и расширения оформлены в классы и модули.
  • Reflection изначально имеется в объектах, вам не нужно подключать Reflection классы как в PHP 5
  • Переменные Ruby передаются по ссылкам. Присваивая переменной объект вы ссылаетесь на него, а не получаете копию.
  • В Ruby нет абстрактных классов (abstract classes) или интерфейсов (interfaces)
  • Хэш-массивы (hashes) и массивы (arrays) не являются взаимозаменяемыми
  • Только false и nil являются false, а вот 0, array() и пустая строка "" в теле условия определяются как true.
  • Практически все действия являются вызовом того или иного метода, даже raise (throw в PHP).