WEBMASTER

Купить диплом

 

Программирование на Ruby

Программирование на языке Ruby(книга Х.Фултон, Главы 21 и 22.)

Гла­ва 21. Инс­тру­мен­ты раз­ра­бот­ки для Ruby

Че­ловек — это жи­вот­ное, соз­да­ющее инс­тру­мен­ты.

Бен­джа­мин Фран­клин

Сре­да раз­ра­бот­ки вклю­ча­ет не толь­ко ин­тер­пре­татор. У каж­до­го хо­роше­го раз­ра­бот­чи­ка под ру­кой всег­да есть це­лый на­бор средств, об­легча­ющих жизнь. Не­кото­рые из них за­висят от язы­ка, дру­гие — нет.

Са­мый важ­ный инс­тру­мент — ре­дак­тор. Ос­новная ра­бота прог­раммис­та — ма­нипу­лиро­вание тек­стом, по­это­му вы­бор ре­дак­то­ра (и ва­ше уме­ние им поль­зо­вать­ся) ока­зыва­ет ог­ромное вли­яние на про­из­во­дитель­ность тру­да. Не­мало­важ­но так­же на­личие в нем под­дер­жки кон­крет­но­го язы­ка или средств нас­трой­ки. Мы да­дим очень крат­кий об­зор рас­простра­нен­ных ре­дак­то­ров.

Дру­гие инс­тру­мен­ты по­мога­ют в сос­тавле­нии до­кумен­та­ции, ус­та­нов­ке биб­ли­отек, от­ладке и т.д. Мы уже поз­на­коми­лись с биб­ли­оте­кой от­ладки (не яв­ля­ющей­ся ав­то­ном­ным при­ложе­ни­ем) в гла­ве 16, а в гла­ве 17 рас­ска­зали о сис­те­ме RDoc. По­это­му здесь мы их ка­сать­ся не бу­дем. Так­же в гла­ве 17 шла речь о сис­те­ме RubyGems с точ­ки зре­ния раз­ра­бот­чи­ка, соз­да­юще­го па­кет; те­перь же мы ста­нем на мес­то прог­раммис­та, ко­торый поль­зу­ет­ся па­кета­ми, соз­данны­ми дру­гими людь­ми.

Так­же в этой гла­ве мы рас­смот­рим прог­раммы irb (ин­те­рак­тивный Ruby) и ri (инс­тру­мент для чте­ния до­кумен­та­ции). И за­вер­шим ее крат­ким об­сужде­ни­ем ин­тегри­рован­ных сред раз­ра­бот­ки (IDE), ко­торые хо­рошо ра­бота­ют с Ruby.

21.1. Сис­те­ма RubyGems

RubyGems — это не «офи­ци­аль­ная» сис­те­ма уп­равле­ния па­кета­ми для Ruby, но од­на из тех, что поль­зу­ют­ся об­ширной под­дер­жкой со сто­роны со­об­щес­тва. В и­юле 2006 го­да она еще не вхо­дила в стан­дар­тный дис­три­бутив, но мо­жет стать его частью в бу­дущем. Мы до­воль­но под­робно рас­смат­ри­вали про­цеду­ру соз­да­ния gem- па­кета в гла­ве 17. А в этой гла­ве рас­ска­жем, как поль­зо­вать­ся па­кета­ми, соз­данны­ми дру­гими людь­ми.

RubyGems пы­та­ет­ся ре­шить нес­коль­ко ос­новных проб­лем, как то: прос­то­та ус­та­нов­ки, цен­траль­ный ре­пози­торий, уп­равле­ние вер­си­ями биб­ли­отек, уп­равле­ние за­виси­мос­тя­ми и т.д. Gem-па­кеты пре­дос­тавля­ют дос­туп к до­кумен­та­ции и поз­во­ля­ют лег­ко кон­тро­лиро­вать, ка­кие биб­ли­оте­ки ус­та­нов­ле­ны.

Ес­ли сис­те­ма RubyGems на ва­шем компь­юте­ре не ус­та­нов­ле­на, зай­ди­те на стра­ницу http://rubyforge.org/projects/rubygems и вы­пол­ни­те прос­тые инс­трук­ции по заг­рузке и ус­та­нов­ке. В даль­ней­шем RubyGems бу­дет об­новлять­ся ав­то­мати­чес­ки.

Сам ис­полня­емый файл на­зыва­ет­ся gem. Струк­ту­ра ко­манд по­хожа на при­меня­емую в cvs и дру­гих ана­логич­ных сис­те­мах, то есть у каж­дой ко­ман­ды есть под­ко­ман­ды, а у каж­дой под­ко­ман­ды — спе­цифич­ные для нее па­рамет­ры. Ни­же при­веде­на ин­форма­ция о по­ряд­ке за­пус­ка[18]:

RubyGems — раз­ви­тый ме­нед­жер па­кетов для Ruby. Ни­же при­веде­на

крат­кая справ­ка с ука­зани­ем на ис­точни­ки до­пол­ни­тель­ной ин­форма­ции.

 

По­рядок за­пус­ка:

gem -h/—help

gem -v/—version

gem command [ар­гу­мен­ты…] [фла­ги…]

 

При­меры:

gem install rake

gem list —local

gem build package.gemspec

gem help install

 

Бо­лее под­робные справ­ки:

gem help commands  по­казать все ко­ман­ды ‘gem’

gem help examples  по­казать при­меры ис­поль­зо­вания

  gem help COMMAND   вы­вес­ти справ­ку о ко­ман­де COMMAND

  (нап­ри­мер, ‘gem help install’)

 

До­пол­ни­тель­ная ин­форма­ция:

http://rubygems.ruby forge.org

Са­мые важ­ные ко­ман­ды не вы­зыва­ют зат­рудне­ний. Нап­ри­мер, что­бы ус­та­новить биб­ли­оте­ку feedtools, нуж­но вы­пол­нить ко­ман­ду:

gem install feedtools

Сна­чала она бу­дет ис­кать gem-па­кет ло­каль­но, а ес­ли не най­дет, то об­ра­тит­ся к сер­ве­ру Ruby Forge. По умол­ча­нию ус­та­нав­ли­ва­ет­ся пос­ледняя вер­сия (хо­тя в не­кото­рых слу­ча­ях вам за­да­ют воп­рос, ка­кой имен­но па­кет вы хо­тите ус­та­новить). Мож­но и яв­но ука­зать вер­сию с по­мощью фла­га -v или —version. Есть еще нес­коль­ко фла­гов, уп­равля­ющих ус­та­нов­кой; под­робную ин­форма­цию да­ет ко­ман­да gem help install.

Иног­да gem-па­кет за­висит от дру­гих па­кетов. В та­ком слу­чае вас спро­сят, на­до ли их ус­та­нав­ли­вать. По­нят­но, что, от­ка­зав­шись от тре­бу­емых па­кетов, вы не смо­жете ус­та­новить и тот, что хо­тели из­на­чаль­но.

Как уз­нать имя нуж­но­го вам па­кета? Ес­ли он на­ходит­ся на сай­те RubyForge, то обыч­но на­зыва­ет­ся так же, как про­ект. Нап­ри­мер, прог­рамма rake на­ходит­ся на стра­нице http://rubyforge.org/projects/rake или прос­то http://rake.rubyforge.org. по­это­му для ус­та­нов­ки нуж­но вы­пол­нить ко­ман­ду gem install rake.

Ес­ли вы не рас­по­лага­ете да­же та­кой ин­форма­ци­ей, поп­ро­буй­те вос­поль­зо­вать­ся ко­ман­дой gem search. Ес­ли ука­зать часть пред­по­лага­емо­го име­ни gem-па­кета, то бу­дут най­де­ны все па­кеты с по­хожи­ми име­нами. По умол­ча­нию по­иск про­из­во­дит­ся на ло­каль­ном компь­юте­ре; что­бы ис­кать в цен­траль­ном ре­пози­тории, за­дай­те флаг —remote. Нап­ри­мер, ко­ман­да gem search xml —remote наш­ла 12 па­кетов.

Что­бы по­лучить ин­форма­цию об ус­та­нов­ленном па­кете, вве­дите ко­ман­ду gem specification — она на­печа­та­ет все со­дер­жа­щи­еся в па­кете ме­тадан­ные (в ос­новном со­дер­жи­мое са­мого фай­ла gemspec). Флаг —remote су­щес­тву­ет, но по­ка не ре­али­зован.

Кро­ме то­го, име­ет­ся ко­ман­да де­ин­стал­ля­ции uninstall, а так­же ко­ман­ды query и list, от­части пе­рек­ры­ва­ющие друг дру­га и ко­ман­ду search. Есть и еще мно­го ко­манд (до­пол­ни­тель­ную ин­форма­цию вы най­де­те во встро­ен­ной справ­ке или в он­лай­но­вой до­кумен­та­ции).

По­лез­но ус­та­новить gem-сер­вер и на сво­ей сис­те­ме — не в ка­чес­тве ре­пози­тория, из ко­торо­го дру­гие смо­гут дис­танци­он­но ус­та­нав­ли­вать па­кеты, а как цен­тра­лизо­ван­ный ме­ханизм, поз­во­ля­ющий прос­матри­вать в бра­узе­ре все ло­каль­но ус­та­нов­ленные па­кеты вмес­те с до­кумен­та­ци­ей.

Для за­пус­ка gem-сер­ве­ра прос­то на­бери­те ко­ман­ду gem_server (обыч­но сер­вер ра­бота­ет в фо­новом ре­жиме). Ука­зав в ад­ресной стро­ке бра­узе­ра URL localhost:8808, вы уви­дите стра­ницу «RubyGems Documentation Index», где в ал­фа­вит­ном по­ряд­ке пе­речис­ле­ны все ус­та­нов­ленные gem-па­кеты со ссыл­ка­ми на до­кумен­та­цию в фор­ма­те rdoc и на до­маш­нюю стра­ницу про­ек­та в Web.

О сис­те­ме RubyGems мож­но еще мно­гое ска­зать; к то­му же она пос­то­ян­но раз­ви­ва­ет­ся. Са­мая ак­ту­аль­ная ин­форма­ция пред­став­ле­на на сай­те http://rubygems.rubyforge.org.

21.2. Прог­рамма Rake

Читать далее

БЕСПЛАТНО!
Получить бонус