Archive for сентября, 2011

Sinatra: шаблоны, редирект и сессии

сентября 25, 2011  |  Published in Sinatra

Шаблоны
В предыдущей статье мы просто рендерили переменные и строки, но чаще всего это не самый лучший способ представления информации пользователю. Когда мы хотим создать реальный сайт, а не приложение выводящее одну строку — нам необходимо использовать много разметки для данных, которую помещать в блок обработки запроса — неправильно. Sinatra Framework позволяет использовать различные шаблоны благодаря gem Tilt. Возьмем приложение из предыдущей статьи и перепишем его с использованием шаблонов. Все шаблоны будут храниться в поддиректории ./views/. Views — это директория в которой хранятся файлы представлений по умолчанию.

#app.rb
require 'sinatra'
require 'erb'

before do
  @title = "Sinatra Tutorial"
end

get '/' do
  @message = "Welcome to RubyDev.ru"
  erb :index
end
<!--- ./views/index.erb --->
<html>
  <head>
    <title><%= @title %></title>
  </head>
  <body>
    <div id='header'>
      <h1><%= @title %></h1>
    </div>
    <div id='content'>
     <p><%= @message %></p>
    </div>
  </body>
</html>

Read the rest of this entry »

Tags: , ,

Sinatra: Введение и роутинг

сентября 25, 2011  |  Published in Sinatra

Новая рубрика в RubyDev — разработка на Sinatra Framework.

Кто не знает, Sinatra — это минималистичный веб фреймворк написанный на Ruby, построенный на основе Rack. Sinatra отлично подходит для разработки простых сайтов и сервисов, где Rails будет слишком избыточным решением. Сами разработчики называют Sinatra — «Domain Specific Language for quickly creating web-applications in Ruby».
Read the rest of this entry »

Tags: ,

Interview with David Henner about RoReCommerce and not only

сентября 25, 2011  |  Published in English, Интервью

В статье — переводе моего интервью с Девидом Хеннером, Антон Копилов попросил меня опубликовать оригинал на английском. Для всех ценителей английского языка =) предлагаю оригинальный, немного сырой текст интервью. Заранее извиняюсь за мой английский, благо — его не так много в тексте. (все картинки кликабельны)

 

Hello, David! David, introduse yourself please.

I’m David Reyn Henner.  I doing some contract work while I am also trying to start up my own company.  My Startup’s name is and we sell Men’s Fashion online and through direct sales.  For a hobby, I haven’t been doing much outside the ruby world.  I’m hoping I can start golf and workout more soon though.

Devid tell me about your project that is named , please.

is an e-commerce starter application written in rails 3.  It’s a project designed for an e-commerce startup that has a goal to become large.  For example, I built in a double entry accounting system.  This might not be needed for a small shop but it doesn’t hurt.  I also wanted to make sure the application was developer friendly.  I’ve documented the majority of the methods in the models and I also kept most methods easy to read.

Read the rest of this entry »

Tags: , ,

jQuery ч.4: Обработка событий

сентября 23, 2011  |  Published in JavaScript, jQuery

jqueryВ этой статье мы разберемся с обработкой событий в jQuery.

Чтобы присоединить обработчик к событию необходимоо использовать функцию bind():

$(function(){
  $('a.link-style').bind('click', function(){
    alert("Welcome to RubyDev.ru!")
  });
});

В примере выше функция bind() связывает с событием click (одиночный клик) с анонимной функцией, которая вызывает фнутри себя функцию alert(). Функция с которой связано событие называется обработчиком события.
Read the rest of this entry »

Tags: ,

Что должна уметь правильная CMS?

сентября 23, 2011  |  Published in CMS, Новости

Я уже писал о том, что работаю над QuasarCMS — CMS’кой на Rails. После нескольких недель разработки зашел в тупик. То, что я сделал нельзя назвать CMS, это скорее приложение на Rails реализующее функционал блога + несколько различных плюшек, которым я хочу заменить нынешний движек RubyDev — WordPress.

Вы уже заметили, что я начал псать о RSpec и обещал написать большую статью по Git. Все это длятого, чтобы новички могли присоединиться к проекту и поучаствовать в нем набираясь опыта. Хочется побыстрее довести работу до некоторой кондиции, когда можно уже пригласить людей для совместной разработки. Скоро, все желающие смогут поучаствовать в разработке CMS. Причинами того, что все так затянуто является мой поиск работы, учеба, иногда, просто лень, и то, что я стаю на распутьи выбора того, какой должна быть CMS. Поэтому хочу задать читателям несколько вопросов: Read the rest of this entry »

Интервью с Акжаном Абдулиным об runit-man, git-commit-notifier, bluepill и не только

сентября 21, 2011  |  Published in Интервью

Добрый день ув. читатели RubyDev! Сегодня в нашей виртуальной студии Акжан Абдулин — Ruby разработчик из известной в русскоязычном Rails сообществе компании Undev. Сегодня мы поговорим об интересных и полезных инструментах для веб разработчика, в создании которых принимает участие Акжан.

Акжан, здравствуй! Расскажи немного о себе читателям RubyDev.

Привет всем! Меня зовут Акжан Абдулин, я работаю программистом в — самой крутой компании мира, мы разрабатываем различные интересные веб приложения. Живу в Москве. Свободное время посвящаю мотоциклам и кошкам.

 

 

В комментарии к посту о предложении попиарить интересные проекты на rubydev, ты упомянул о разработке runit-man, Git Commit Notifier и bluepill. Раccкажи пожалуйста что это за проэкты.

: В нашей компании для обеспечения надежности в работе сервисов мы используем пакет runit, поэтому для удобства управления сервисами был создан дополнительный сервис, который позволяет управлять всеми runit-сервисами конкретной машины, а также вести наблюдение через Web-интерфейс. Он и получил название runit-man. В дальнейшем данный проект было решено опубликовать на GitHub.

Этот проект сильно упрощает поддержку нашей инфраструктуры (например, нет необходимости использовать SSH или иной инструментарий для перезапуска или остановки сервисов, или для просмотра журнальных файлов или файлов конфигурации). Также он используется для мониторинга общего состояния нашей платформы.

: Этот гем позволяет присылать на почту уведомления о коммитах в Git-репозитории посредством установки обработчика событий Git. Создан он был не мной, я всего лишь существенно его переработал и стал одним из контрибуторов/авторов проекта.

: Один из популярных инструментов для мониторинга и автоматического реагирования на предопределенные ситуации (например, сильное потребление CPU или памяти процессом приложения или отсутствие отклика по HTTP). Наиболее известными альтернативами являются monit и God. Опять-таки, я в случае с bluepill являюсь лишь сопроводителем и контрибутором проекта. Авторы давно не имеют времени на поддержку, так что последнее время все тикеты, запросы на внесение изменений и выпуск версий проходят через меня.
Read the rest of this entry »

Tags:

RSpec Tutorial: Введение

сентября 18, 2011  |  Published in BDD, RSpec, Тестирование

UPD: Добавлен параграф об around() хуке.

toolkit rspecДоброго времени суток ув. читатель RubyDev’а!
В данный момент автор RubyDev, то есть я, очень похож на белку в колесе ибо он занимается устройством на работу. К сожалению или к великому счастью обязательным условием является умение работать с RSpec, которым автор владеет в совершенстве плохо, по сему, решил я бросить все ресурсы на то, чтобы изучить сие твоение Девида Челимски.

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

Ибо время — деньги, а платить мне никто за это старание не будет, буду совсем краток.
Read the rest of this entry »

Tags: , , ,

Интервью с Девидом Хэннером о RoReCommerce и не только

сентября 14, 2011  |  Published in Интервью

Доброго времени суток всем читателям RubyDev! Сегодня в виртуальной студии RubyDev гость из США, профессиональный разработчик, который в свободное от работы время занимается разработкой альтернативы для Spree — .


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

Девид, представся пожалуйста читателям RubyDev, расскажи немного о себе, работе и хобби.

Привет! Я Девид Райaн Хэннер (David Rayn Henner). Я работаю по контракту на одну софтверную компанию и кроме того пытаюсь создать свой собственый бизнес. Мой стартап называется и мы продаем мужскую одежду онлайн и через прямые продажи. Насчет хобби, то я особо ничем не увлекаюсь кроме программирования на Ruby и смежных с разработкой тематиками. Надеюсь в ближайшее время начать играть в гольф.

 

 

 

 

 

 

 

 

Девид, расскажи пожалуйста о своем проекте RoReCommerce.

ror_ecommerce — это e-commerce стартовое приложение разработанное на Rails 3. Это проект разработанный для начинающих бизнесов в сфере электронной торговли, которые имеют перспективу большого роста. Вот например, я создаю двойную систему аккаунтов, которая совсем не нужна для маленьких магазинов, однако ее наличие им не навредит. Я также хочу, чтобы мой проект был дружелюбен к разработчику, я задокументировал почти весь код в моделях и стараюсь писать понятные, «говорящие» имена методов.

Read the rest of this entry »

Tags: ,

jQuery ч.3: Взаимодействие со стилями и свойствами

сентября 7, 2011  |  Published in ClientSide, JavaScript, jQuery

jqueryВ прошлой статье — главе мы познакомились с селекторами, а в этой мы научимся работать с атрибутами тегов: определять, переопределять, отменять их и т.д.

Проверяем имеют ли элементы определенный класс:

$('p:first').hasClass('super'); // проверяем имеет ли первый параграф класс super.

Добавляем класс определенному элементу (объекту DOM):

$("p.super").addClass("some-class"); // объявляем элементу p.super второй класс - some-class.

Удаляем определенный класс у определенного элемента:

$("p.some-class").removeClass("some-class");

Read the rest of this entry »

Tags: ,

Что добавить в RubyDev Ruby Tutorial?

сентября 2, 2011  |  Published in Новости

Есть на RubyDev такая страница: http://rubydev.ru/ruby_tutorial/ со списком статей по различным аспектам языка Ruby. Честно признаться не знаю, что еще можно туда написать. В комментариях к этому посту вы можете написать о том, какие главы следует добавить, не гарантирую, что все главы добавлю, но постараюсь добавить побольше. А еще я собираюсь потихоньку переписать все статьи из учебника, добавить побольше информации и устранить ошибки.

Жду ваших предложений!

P.S. Спасибо за внимание к жизни RubyDev!

Tags: