Урок 1: «Рубин нужен не только для лазера»

Спрос на рынке труда диктует свои правила. Не так давно Ruby on Rails стала весьма популярной у российских работодателей. А это означает, что я не мог обойти данную платформу стороной. Естественно, что для того, чтобы создавать сайты на RoR, нужно уметь программировать на самом языке Ruby. К своему неудовольствию, я обнаружил, что литературы, посвященной этому языку крайне мало. Это и побудило меня начать цикл уроков, посвященных программированию на Ruby с последующим переходом на рельсы (on Rails). Итак, приступим. Для начала программирования нам понадобятся интерпретатор языка Ruby. Да-да, это очередной интерпретируемый язык, чтобы вы знали. А это означает полную переносимость кода. Скачать интерпретатор можете c http://www.ruby-lang.org/en/downloads/. Рекомендую скачать вам инсталляционную версию под Windows. Кроме самого интерпретатора и весьма убогой среды разработки Interactive Ruby, представляющую собой обыкновенную консольную программу, вам будет доступна еще документация и замечательная книжка на английском языке по Рубину. Скажу честно, книжка просто замечательная и я часто буду прибегать к ее помощи в данной серии уроков. Итак, запустив Interactive Ruby, мы наберем следующую команду: puts “Привет программисту на Ruby!” И нажмем на Enter. У вас должно получиться такое: Знаю, что данное выражение набило оскомину, но нужно же с чего-то начинать?! Честно говоря, Interactive Ruby я сразу же затер на своем компьютере. Гораздо удобнее использовать какой-нибудь редактор с подсветкой синтаксиса (я использую SCITE или Notepad ++) и командную строку. Скрипт на Ruby должен иметь расширение .rb. Тогда в командной строке мы вызовем наш скрипт так: ruby C:\Hello.rb На экран выдаст нашу программу. Но так тоже неудобно. Гораздо лучше использовать какую-либо среду разработки с расширением под Ruby. Я использовал и Eclipse, но вам могу посоветовать Net Beans IDE. Эта среда разработки горячо любима программистами java. Однако ее расширения делают ее очень удобной и для других языков. В частности, моя позволяет мне писать скрипты PHP, Ruby и программы на C++. Вам просто нужно будет указать, что войдет в вашу сборку нет бинса. Что даст нам Net Beans? Подсветка синтаксиса программы, автозавершение кода по нажатию Ctrl + Space, документацию по функциям и методам и много чего удобного. Так что в данном цикле уроков я буду использовать именно эту среду. Давайте теперь напишем наш Hello World.rb в Net Beans. Запустим среду и выберем File ->New project -> Ruby – >Ruby Application: Нажмите Next и введите имя вашего проекта. Я назову проект Lessons, вы же вправе называть его как угодно. Обратите внимание, что NetBeans предлагает в роли платформы Ruby javaшный вариант интепретатора – Jruby. Ничего страшного здесь нет, скрипты будут работать и в обычном интепретаторе Ruby. Однако всегда можно поменять настройки на обычный Ruby, благо NetBeans может сделать это в два клика. Об этом мы поговорим в других уроках. Теперь нажмите кнопку Finish и среда сгенерирует весь проект. Как видите, мастер создал шаблон нашего приложения. Наш скрипт находится в файле main.rb. Переименуйте его в hello.rb. Теперь можно нажать на клавишу F6 или на зеленую стрелочку: И ваш скрипт запустится. Чем Net Beans (впрочем, и Eclipse) мне нравится, так это тем, что в  нижнем окне можно наблюдать ход выполнения программы, что очень удобно для отладки. Пока все. Мы настроили среду разработки и написали первый скрипт. Урок 2 будет посвящен уже синтаксису языка.

Следующий урок >>

Комментарии

7 коммент. на “Урок 1: «Рубин нужен не только для лазера»”
  1. Сергей:

    Классно! Впервые вижу уроки по программированию, которые можно читать без желания бросить изучение.
    Вячеслав, а вы и правда были преподавателем в вузе? Тогда ваши студенты много потеряли без вас.
    Скажите, у меня стоит Ubuntu — как там использовать Ruby? Я так понял, что в Linux он уже установлен?

    • admin:

      Да, я был преподавателем в вузе. Но то было давно и я стараюсь даже не вспоминать об этом. Тем не менее, в моих уроках отражается моя прошлая преподавательская деятельность.
      Насчет Ruby в Linux вы правы — он должен быть там. Просто в терминале наберите ruby -v и посмотрите, что там выдаст.
      Тем не менее, для написания скриптов Ruby вам нужно будет какой-нибудь текстовый редактор с подсветкой синтаксиса. Честно говоря, я сторонник Fedora и KDE, в которую включается редактор KWrite. Насчет Ubuntu, насколько я помню, gedit не дает подобных возможностей. Тем не менее, посмотрите для него плагины.
      Как вариант, можете скачать Eclipse и для него найти расширения под Ruby. Так будет даже лучше.

  2. VeGA:

    Интересно, чем так спамерам нравится эта страница? Кстати, спамеры, вы еще не поняли, что ни одно ваше сообщение так и не опубликуется? Я не стал ставить плагины для капчи, но антиспам у меня стоит. Так что не стоит даже пытаться спамить комменты. Кроме того, с сегодняшнего дня все спамерские сайты я буду отдавать в черный список Askmet. Уважайте чужую собственность.

  3. Виталий:

    А почему у меня не русский язык??а абракадабра??

    • Вячеслав "VeGA" Головлев:

      Это из-за кодировки. В консоли стоит 866 кодировка, а в Windows — 1251. Нужно настроить консоль и NetBeans. Спасибо, что обратили внимание на эту проблему. Я напишу статью, как правильно настроить NetBeans и окружение

  4. Smoke:

    Спасибо Вам. Благодаря Вам желание появилось.
    Как хорошо что Вы есть!

  5. Светлана:

    Здравствуйте, а не могли вы подсказать почему написанный код не воспринимает запросы на русском языке? И почему не выводит полностью ссылки, а только их фрагмент и многоточие? Как это исправить? Буду очень признательная если поможете
    # coding: utf-8
    require ‘rubygems’
    require ‘nokogiri’
    require ‘open-uri’

    puts ‘Ruby-скрипт для выделения текстов из статей’
    print ‘Введите ваш запрос (Вместо пробела используйте нижнее подчеркивание): ‘
    Query = gets.chomp
    print ‘Введите количество страниц: ‘
    N = gets.chomp.to_i
    puts ‘Ваш запрос: ‘ + Query
    puts «Количество страниц: #{N}»
    puts ‘Список полученных ссылок:’
    (1..N).each do |page_num|
    puts «Страница #{page_num}»
    url = open»http://www.google.com/search?q=#{Query}&start=#{(page_num-1)*10}»
    doc=Nokogiri::HTML url
    links=doc.css(‘cite’)
    links.each do |link|
    puts link.text.encode(«utf-8»)
    # Если ссылки длинные выводит их с многоточием.
    end
    puts
    end

Добавить комментарий

Внимание! Не будут добавляться комментарии в виде откровенного спама или прямого анкора на свои сайты. Все спамеры будут передаваться в базу Akismet

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: