<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Md6 &#187; Ruby</title>
	<atom:link href="http://md6.org/tag/ruby/feed" rel="self" type="application/rss+xml" />
	<link>http://md6.org</link>
	<description>Blog</description>
	<lastBuildDate>Sun, 28 Mar 2010 08:24:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Lokalne repozytorium gemów</title>
		<link>http://md6.org/lokalne-repozytorium-gemw</link>
		<comments>http://md6.org/lokalne-repozytorium-gemw#comments</comments>
		<pubDate>Fri, 29 Feb 2008 05:05:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://127.0.0.1:3000/29-gemy-lokalne-repozytorium.html</guid>
		<description><![CDATA[Cel: chcemy mie&#263; swoje repozytorium gem&#243;w,
nie zale&#380;ne od systemowego.  Sprobojemy zainstalowa&#263; gema &#8220;term-ansicolor&#8221;:http://raa.ruby-lang.org/project/ansicolor/ w naszym nowym, magicznym repozytorium.

$ gem install term-ansicolor -i ~/tmp/gems
Successfully installed term-ansicolor-1.0.3
1 gem installed
Installing ri documentation for term-ansicolor-1.0.3...
Installing RDoc documentation for term-ansicolor-1.0.3...

W systemowym repo nie ma &#347;ladu po nowym gemie.

$ gem list term-ansicolor

Ma&#322;a modyfikacja plik&#243;w konfiguracyjnych:

$ cat ~/.gemrc
gemdir: /Users/michalkurek/tmp/gems
gemhome: /Users/michalkurek/tmp/gems

Co mu [...]]]></description>
			<content:encoded><![CDATA[<p>Cel: chcemy mie&#263; swoje repozytorium gem&#243;w,<br />
nie zale&#380;ne od systemowego.  Sprobojemy zainstalowa&#263; gema &#8220;term-ansicolor&#8221;:http://raa.ruby-lang.org/project/ansicolor/ w naszym nowym, magicznym repozytorium.</p>
<pre>
$ gem install term-ansicolor -i ~/tmp/gems
Successfully installed term-ansicolor-1.0.3
1 gem installed
Installing ri documentation for term-ansicolor-1.0.3...
Installing RDoc documentation for term-ansicolor-1.0.3...
</pre>
<p>W systemowym repo nie ma &#347;ladu po nowym gemie.</p>
<pre>
$ gem list term-ansicolor
</pre>
<p>Ma&#322;a modyfikacja plik&#243;w konfiguracyjnych:</p>
<pre>
$ cat ~/.gemrc
gemdir: /Users/michalkurek/tmp/gems
gemhome: /Users/michalkurek/tmp/gems
</pre>
<p>Co mu ty mamy:</p>
<pre>
oki@nil:~$gem list   

*** LOCAL GEMS ***

term-ansicolor (1.0.3)
</pre>
<p>Test w irbie:</p>
<pre>
$irb <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
>> require 'term/ansicolor'
LoadError: no such file to load -- term/ansicolor
        from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
        from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
        from (irb):1
>>
</pre>
<p>Aby uzywa&#263; gem&#243;w z naszego wystrza&#322;owego repozytorium w *irbie* musimy ustawi&#263; dwie zmienne &#347;rodowiskowe.</p>
<pre>
$ export GEM_PATH=/Users/oki/tmp/gems
$ export GEM_HOME=/Users/oki/tmp/gems
$irb
irb(main):001:0> require 'term/ansicolor'
=> true
irb(main):002:0>
</pre>
<p>A co z railsami?</p>
<p>Dziala, ale bez deklaracji zmiennych &#347;rodowiskowych si&#281; nie obejdzie.</p>
<p>Je&#380;eli tworzymy nasze repozytorium od zera, warto pamieta&#263; o zainstalowaniu rails&#243;w <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ,<br />
w przciwnym wypadku dostaniemy b&#322;&#261;d podobnny do:</p>
<pre>
/usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:379:in `report_activate_error': Could not find RubyGem rails
</pre>
<p>Dla wygody mo&#380;na dopisa&#263; do swojego ~/.bashrc linijki:</p>
<pre>export GEM_HOME=/Users/michalkurek/tmp/gems
export GEM_PATH=/Users/michalkurek/tmp/gems</pre>
<p>*Mo&#380;e kto&#347; zna spos&#243;b, aby to zrobi&#263; &#322;atwiej? Bez deklarowania zmiennych &#347;rodowiskowych?*</p>
<p>Przydatne linki:</p>
<p>* &#8220;rubyforge&#8221;:http://rubyforge.org/ [en]<br />
* http://rubyforge.org/softwaremap/trove_list.php [en]<br />
* http://www.ruby-lang.org/pl/libraries/ [en]<br />
* &#8220;10 essential ruby gems&#8221;:http://insider.helicoid.net/articles/show/2/10_essential_ruby_gems [en]</p>
]]></content:encoded>
			<wfw:commentRss>http://md6.org/lokalne-repozytorium-gemw/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Różne wersje gemów i railsów</title>
		<link>http://md6.org/rne-wersje-gemw-i-railsw</link>
		<comments>http://md6.org/rne-wersje-gemw-i-railsw#comments</comments>
		<pubDate>Fri, 22 Feb 2008 08:11:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://127.0.0.1:3000/28-wersje-gemow-i-railsow.html</guid>
		<description><![CDATA[Odpowiedzi na dwa proste pytania:
* Jak u&#380;y&#263; w kodzie danej wersji gema?
* Jak wygenerowa&#263; szkielet aplikacji railsowej u&#380;ywaj&#261;c danej wersji rails&#243;w.? * *Problem0: Jak u&#380;y&#263; w kodzie danej wersji gema?*

oki@nil:~$gem li &#124; grep supp
activesupport (2.0.2, 1.4.4)

Jak wida&#263; na za&#322;aczonym obrazku posiadamy activesupport w dw&#243;ch wersjach: 2.0.2 i 1.4.4
Za&#322;&#243;&#380;my, &#380;e chcemy u&#380;yc starszej wersji.

$ irb
>> gem [...]]]></description>
			<content:encoded><![CDATA[<p>Odpowiedzi na dwa proste pytania:<br />
* Jak u&#380;y&#263; w kodzie danej wersji gema?<br />
* Jak wygenerowa&#263; szkielet aplikacji railsowej u&#380;ywaj&#261;c danej wersji rails&#243;w.? * *Problem0: Jak u&#380;y&#263; w kodzie danej wersji gema?*</p>
<pre>
oki@nil:~$gem li | grep supp
activesupport (2.0.2, 1.4.4)
</pre>
<p>Jak wida&#263; na za&#322;aczonym obrazku posiadamy activesupport w dw&#243;ch wersjach: 2.0.2 i 1.4.4<br />
Za&#322;&#243;&#380;my, &#380;e chcemy u&#380;yc starszej wersji.</p>
<pre>
$ irb
>> gem 'activesupport', '= 1.4.4'
=> true
>> require 'active_support'
=> true
</pre>
<p>* *Problem1: Jak wygenerowa&#263; szkielet aplikacji railsowej u&#380;ywajac danej wersji frameworka* </p>
<p>W systeme mamy railsy w wersji 1.2.5 i 2.0.2:</p>
<pre>
$ gem dep | grep rails
Gem rails-1.2.5
Gem rails-2.0.2
</pre>
<p>Tworzymy szkielet aplikacji ze wskazaniem na odpowiedni&#261; wersj&#281;:</p>
<pre>
oki@nil:~/tmp/test$rails _1.2.5_ app_old
oki@nil:~/tmp/test$rails _2.0.2_ app_new
</pre>
<p>A nast&#281;pnie sprawdzamy wersje rails&#243;w:</p>
<pre>
oki@nil:~/tmp/test$./app_old/script/console
Loading development environment.
>> Rails::VERSION::STRING
=> "1.2.5"
>> quit
oki@nil:~/tmp/test$./app_new/script/console
Loading development environment (Rails 2.0.2)
>> Rails::VERSION::STRING
=> "2.0.2"
</pre>
]]></content:encoded>
			<wfw:commentRss>http://md6.org/rne-wersje-gemw-i-railsw/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screencasty &#8211; źródło wiedzy o Ruby i Railsach</title>
		<link>http://md6.org/screencasty-rdo-wiedzy-o-ruby-i-railsach</link>
		<comments>http://md6.org/screencasty-rdo-wiedzy-o-ruby-i-railsach#comments</comments>
		<pubDate>Fri, 01 Feb 2008 13:10:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[screencasty]]></category>

		<guid isPermaLink="false">http://127.0.0.1:3000/26-screencasty-ruby-rails.html</guid>
		<description><![CDATA[Kilka link&#243;w do stron serwuj&#261;cych screencasty o ruby i railsach&#8230; * &#8220;railscasts&#8221;:http://railscasts.com/ &#8211; akutalnie *90* screencast&#243;w,
*co tydzien* pojawiaj&#261; si&#281; nowe, tematyka: active-record, active-support,
administracja, ajax, cachowanie, debugowanie, pluginy, optymalizacja,
bezpiecze&#324;stwo, testowanie. Czas nagrania: 2-18 min.
* &#8220;Ruby Banter&#8221;:http://media.fngtps.com/rubybanter/ &#8211; jak narazie tylko 7 sztuk.
M&#243;wi&#261; g&#322;&#243;wnie o ruby, raczej dla ludzi maj&#261;cych poj&#281;cie o j&#281;zyku.
&#346;redni czas nagrania 5 min.
Ostatni [...]]]></description>
			<content:encoded><![CDATA[<p>Kilka link&#243;w do stron serwuj&#261;cych screencasty o ruby i railsach&#8230; * &#8220;railscasts&#8221;:http://railscasts.com/ &#8211; akutalnie *90* screencast&#243;w,<br />
*co tydzien* pojawiaj&#261; si&#281; nowe, tematyka: active-record, active-support,<br />
administracja, ajax, cachowanie, debugowanie, pluginy, optymalizacja,<br />
bezpiecze&#324;stwo, testowanie. Czas nagrania: 2-18 min.</p>
<p>* &#8220;Ruby Banter&#8221;:http://media.fngtps.com/rubybanter/ &#8211; jak narazie tylko 7 sztuk.<br />
M&#243;wi&#261; g&#322;&#243;wnie o ruby, raczej dla ludzi maj&#261;cych poj&#281;cie o j&#281;zyku.<br />
&#346;redni czas nagrania 5 min.<br />
Ostatni odcinek ukaza&#322; si&#281; 03.12.2007 i od tej pory ch&#322;opaki si&#281; zawiesili <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Czekamy na wi&#281;cej! <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>* &#8220;sd.rb podcast&#8221;:http://feeds.feedburner.com/sdrbpodcast &#8211; troche o ror, *40* odcink&#243;w,<br />
ale aktualnie maja chyba jakie&#347; problemy <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>* &#8220;Ruby Plus&#8221;:http://www.rubyplus.org/ &#8211; 34 screencasty ruby-railsowe, co kilka dni pojawiaj&#261; si&#281; nowe.</p>
<p>* &#8220;peepcode&#8221;:http://peepcode.com/ &#8211;  p&#322;atne, kilkana&#347;cie bardzo dobrze nagranych, warto&#347;ciowych screencast&#243;w,<br />
tematyka g&#322;&#243;wnie Rails (testowanie, benchmarking, javascipt, rjs, capistrano, git, rspec),<br />
&#347;redni czas trwania: 1h.</p>
<p>Na screencastach prezentowane s&#261; r&#243;&#380;ne techniki, przepisy, sposoby pisania kodu,<br />
czasami warto po&#347;wieci&#263; kilka minut na obejrzenie.<br />
W przysz&#322;o&#347;ci oszcz&#281;dzimy sobie czasu na googlowanie <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://md6.org/screencasty-rdo-wiedzy-o-ruby-i-railsach/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RubyGems</title>
		<link>http://md6.org/rubygems</link>
		<comments>http://md6.org/rubygems#comments</comments>
		<pubDate>Thu, 31 Jan 2008 15:04:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://127.0.0.1:3000/25-rubygems.html</guid>
		<description><![CDATA[RubyGems to zarz&#261;dca pakiet&#243;w dla Ruby. Poni&#380;ej polecenia, kt&#243;re mog&#261; si&#281; przyda&#263;
* *gem help commands* &#8211; lista wszystkich polece&#324;
* *gem help polecenie* &#8211; pomoc dla danego polecenia
* *gem search -rd naz* &#8211; wyszukiwanie gem&#243;w wg. nazwy
* *gem environment* &#8211; informacje o &#347;rodowisku gem&#243;w, wersja rubygems, info katalogu repozytorium gem&#243;w i wieeele innych przydatnych rzeczy

  [...]]]></description>
			<content:encoded><![CDATA[<p>RubyGems to zarz&#261;dca pakiet&#243;w dla Ruby. Poni&#380;ej polecenia, kt&#243;re mog&#261; si&#281; przyda&#263;</p>
<p>* *gem help commands* &#8211; lista wszystkich polece&#324;</p>
<p>* *gem help polecenie* &#8211; pomoc dla danego polecenia</p>
<p>* *gem search -rd naz* &#8211; wyszukiwanie gem&#243;w wg. nazwy</p>
<p>* *gem environment* &#8211; informacje o &#347;rodowisku gem&#243;w, wersja rubygems, info katalogu repozytorium gem&#243;w i wieeele innych przydatnych rzeczy</p>
<pre>
  RubyGems Environment:
  - RUBYGEMS VERSION: 1.0.1 (1.0.1)
  - RUBY VERSION: 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.10.2]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-8
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org
  </pre>
<p>* *gem install nazwa_gema* &#8211; u wi&#281;kszo&#347;ci u&#380;ytkownik&#243;w najcz&#281;&#347;ciej u&#380;ywane polecenie, mo&#380;e si&#281; przyda&#263; <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>* *gem server* &#8211; dokumentacja do gem&#243;w zainstalowanych w systemie dost&#281;pna na &#8220;http://localhost:8808/&#8221;:http://localhost:8808/</p>
<p>   !/images/gem-server.jpg!</p>
<p>* *gem dependency* &#8211; pokazuje drzewo zale&#380;no&#347;ci zainstalowanych gem&#243;w</p>
<pre>
  $gem dep
   Gem RedCloth-3.0.4

   Gem ZenTest-3.6.1
     hoe (>= 1.2.2)

   Gem actionmailer-1.3.5
     actionpack (= 1.13.5)

   Gem actionmailer-2.0.2
     actionpack (= 2.0.2)

   Gem actionpack-1.13.5
     activesupport (= 1.4.4)
   ...
  </pre>
<p>* *gem content nazwa_gema* &#8211; lista plik&#243;w wchodz&#261;cych w sk&#322;ad gema</p>
<p>* *gem outdated* &#8211; lista gem&#243;w do aktualizacji</p>
<p>* *gem specification nazwa_gema* &#8211; specyfikacja gema w &#8220;YAMLu&#8221;:http://pl.wikipedia.org/wiki/YAML</p>
<p>U&#380;ywaj&#261;c sk&#243;conych wersji polece&#324; mo&#380;na przyspieszy&#263; swoj&#261; prac&#281;, np:</p>
<p>gem environment = gem e = *gem env*</p>
<p>gem install = *gem i*</p>
<p>gem dependency = *gem d*</p>
<p>itd.</p>
]]></content:encoded>
			<wfw:commentRss>http://md6.org/rubygems/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ruby Shell :)</title>
		<link>http://md6.org/ruby-shell</link>
		<comments>http://md6.org/ruby-shell#comments</comments>
		<pubDate>Fri, 11 Jan 2008 17:10:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://127.0.0.1:3000/22-ruby-shell.html</guid>
		<description><![CDATA[Ruby Shell z dope&#322;nianiem polece&#324; i podpowiedziami&#8230; &#8230;na przyk&#322;adzie &#8220;Readline&#8221;:http://www.eng.dmu.ac.uk/~hgs/ruby/ruby-1.6.7-rdocs/classes/Readline.html,
&#8220;Shellwords&#8221;:http://ruby-doc.org/core/classes/Shellwords.html i
&#8220;Abbrev&#8221;:http://ruby-doc.org/core/classes/Abbrev.html.
U&#380;yj tabulatora!  

$ ruby rbsh.rb
rbsh>
hello  quit
rbsh> h
Hello
rbsh> quit


]]></description>
			<content:encoded><![CDATA[<p>Ruby Shell z dope&#322;nianiem polece&#324; i podpowiedziami&#8230; &#8230;na przyk&#322;adzie &#8220;Readline&#8221;:http://www.eng.dmu.ac.uk/~hgs/ruby/ruby-1.6.7-rdocs/classes/Readline.html,<br />
&#8220;Shellwords&#8221;:http://ruby-doc.org/core/classes/Shellwords.html i<br />
&#8220;Abbrev&#8221;:http://ruby-doc.org/core/classes/Abbrev.html.</p>
<p>U&#380;yj tabulatora! <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>
$ ruby rbsh.rb
rbsh><tab><tab>
hello  quit
rbsh> h<tab>
Hello
rbsh> quit
</pre>
<p><ruby/rbsh></p>
]]></content:encoded>
			<wfw:commentRss>http://md6.org/ruby-shell/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KRUG Spotkanie Noworoczne!</title>
		<link>http://md6.org/krug-spotkanie-noworoczne</link>
		<comments>http://md6.org/krug-spotkanie-noworoczne#comments</comments>
		<pubDate>Fri, 11 Jan 2008 15:56:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kraków]]></category>
		<category><![CDATA[krug]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://127.0.0.1:3000/21-krug-spotkanie-noworoczne.html</guid>
		<description><![CDATA[22 stycznia g. 19.00
Stara Piekarnia, ul. Dwernickiego 5.
Pierwsze spotkanie KRUG w Nowym Roku!
 Forward og&#322;oszenia organizator&#243;w:
bq. W planie 2 prezentacje:
# Maciej Ksi&#261;&#380;ek i Szymon Kurcab opowiedz&#261; o migracji popularnego serwisu kino.krakow.pl z PHP do RoR
# Marcin Raczkowski opowie o programowaniu rozproszonym i wsp&#243;&#322;bie&#380;nym w ruby, zapowiada si&#281; sesja hands-on &#8212; prosimy zabra&#263; ze sob&#261; laptopy! [...]]]></description>
			<content:encoded><![CDATA[<p>22 stycznia g. 19.00</p>
<p>Stara Piekarnia, ul. Dwernickiego 5.</p>
<p>Pierwsze spotkanie KRUG w Nowym Roku!<br />
 Forward og&#322;oszenia organizator&#243;w:</p>
<p>bq. W planie 2 prezentacje:<br />
# Maciej Ksi&#261;&#380;ek i Szymon Kurcab opowiedz&#261; o migracji popularnego serwisu kino.krakow.pl z PHP do RoR<br />
# Marcin Raczkowski opowie o programowaniu rozproszonym i wsp&#243;&#322;bie&#380;nym w ruby, zapowiada si&#281; sesja hands-on &#8212; prosimy zabra&#263; ze sob&#261; laptopy! Je&#347;li b&#281;d&#261; ch&#281;tni, mo&#380;emy kodowa&#263; do p&#243;&#378;na w nocy <img src='http://md6.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8220;Mapka&#8221;:http://www.zumi.pl/namapie.html?qt=&#038;loc=krak%F3w%2CDwernickiego+5&#038;Submit=Szukaj&#038;cId=&#038;sId=&#038;x=28&#038;y=8</p>
]]></content:encoded>
			<wfw:commentRss>http://md6.org/krug-spotkanie-noworoczne/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pozycje keywordów w google z pomocą ruby</title>
		<link>http://md6.org/pozycje-keywordw-w-google-z-pomoc-ruby</link>
		<comments>http://md6.org/pozycje-keywordw-w-google-z-pomoc-ruby#comments</comments>
		<pubDate>Thu, 06 Sep 2007 09:37:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://127.0.0.1:3000/12-pozycje-keywordow-w-google-z-pomoca-ruby.html</guid>
		<description><![CDATA[Przyk&#322;adowy skrypt w ruby, kt&#243;ry sprawdza pozycje w google dla keyword&#243;w odczytwanych z pliku. 



#!/usr/bin/env ruby

require 'net/http'

class GoogleSearch

    def initialize(base_www)
        @base_www   = base_www.gsub(/http:\/\//,'')
        @google     = 'www.google.pl'
       [...]]]></description>
			<content:encoded><![CDATA[<p>Przyk&#322;adowy skrypt w ruby, kt&#243;ry sprawdza pozycje w google dla keyword&#243;w odczytwanych z pliku. <notextile>
<div class="code ruby">
<pre>

<span class="comment">#!/usr/bin/env ruby</span>

<span class="ident">require</span> <span class="punct">'</span><span class="string">net/http</span><span class="punct">'</span>

<span class="keyword">class </span><span class="class">GoogleSearch</span>

    <span class="keyword">def </span><span class="method">initialize</span><span class="punct">(</span><span class="ident">base_www</span><span class="punct">)</span>
        <span class="attribute">@base_www</span>   <span class="punct">=</span> <span class="ident">base_www</span><span class="punct">.</span><span class="ident">gsub</span><span class="punct">(/</span><span class="regex">http:<span class="escape">\/\/</span></span><span class="punct">/,'</span><span class="string"></span><span class="punct">')</span>
        <span class="attribute">@google</span>     <span class="punct">=</span> <span class="punct">'</span><span class="string">www.google.pl</span><span class="punct">'</span>
        <span class="attribute">@n</span>          <span class="punct">=</span> <span class="number">100</span>
        <span class="attribute">@path</span>       <span class="punct">=</span> <span class="punct">&quot;</span><span class="string">/search?num=<span class="expr">#{@n}</span>&amp;hl=pl&amp;q=&amp;btnG=Szukaj&amp;lr=lang_pl</span><span class="punct">&quot;</span>
        <span class="attribute">@useragent</span>  <span class="punct">=</span> <span class="punct">'</span><span class="string">Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.0.2) Gecko/20060111 Firefox/1.5.0.6a</span><span class="punct">'</span>
    <span class="keyword">end</span>

    <span class="keyword">def </span><span class="method">position</span><span class="punct">(</span><span class="ident">keyword</span><span class="punct">)</span>
        <span class="attribute">@http</span> <span class="punct">=</span> <span class="constant">Net</span><span class="punct">::</span><span class="constant">HTTP</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="attribute">@google</span><span class="punct">,</span> <span class="number">80</span><span class="punct">)</span>
        <span class="ident">res</span> <span class="punct">=</span> <span class="attribute">@http</span><span class="punct">.</span><span class="ident">get</span><span class="punct">(</span> <span class="attribute">@path</span><span class="punct">.</span><span class="ident">gsub</span><span class="punct">(/</span><span class="regex">&amp;q=</span><span class="punct">/,&quot;</span><span class="string">&amp;q=<span class="expr">#{keyword.gsub(/\s+/,'+')}</span></span><span class="punct">&quot;),</span> <span class="punct">{'</span><span class="string">User-Agent</span><span class="punct">'</span> <span class="punct">=&gt;</span> <span class="attribute">@useragent</span><span class="punct">})</span>

        <span class="ident">n</span> <span class="punct">=</span> <span class="attribute">@n</span>
        <span class="ident">res</span><span class="punct">.</span><span class="ident">body</span><span class="punct">.</span><span class="ident">scan</span><span class="punct">(/</span><span class="regex">&lt;!--m--&gt;.*?&lt;a href=&quot;(.*?)&quot;</span><span class="punct">/)</span> <span class="punct">{</span> <span class="punct">|</span><span class="ident">url</span><span class="punct">|</span>
            <span class="ident">n</span> <span class="punct">-=</span> <span class="number">1</span>
            <span class="keyword">if</span> <span class="ident">url</span><span class="punct">.</span><span class="ident">to_s</span><span class="punct">.</span><span class="ident">gsub</span><span class="punct">(/</span><span class="regex">http:<span class="escape">\/\/</span></span><span class="punct">/,'</span><span class="string"></span><span class="punct">')</span> <span class="punct">=~</span> <span class="punct">/</span><span class="regex">^<span class="expr">#{@base_www}</span></span><span class="punct">/</span>
                <span class="keyword">return</span> <span class="punct">[</span><span class="attribute">@n</span> <span class="punct">-</span> <span class="ident">n</span><span class="punct">,</span><span class="ident">url</span><span class="punct">]</span>
            <span class="keyword">end</span>
        <span class="punct">}</span>

        <span class="keyword">return</span> <span class="constant">nil</span>
    <span class="keyword">end</span>
<span class="keyword">end</span>

<span class="keyword">if</span> <span class="constant">__FILE__</span> <span class="punct">==</span> <span class="global">$0</span>
    <span class="constant">STDOUT</span><span class="punct">.</span><span class="ident">sync</span> <span class="punct">=</span> <span class="constant">true</span>
    <span class="ident">google</span> <span class="punct">=</span> <span class="constant">GoogleSearch</span><span class="punct">.</span><span class="ident">new</span><span class="punct">('</span><span class="string">linuxlinki.md6.org</span><span class="punct">')</span>

    <span class="ident">arr_kw</span> <span class="punct">=</span> <span class="constant">Array</span><span class="punct">.</span><span class="ident">new</span>
    <span class="ident">kw_file</span> <span class="punct">=</span> <span class="ident">open</span><span class="punct">(&quot;</span><span class="string">keywords-google.txt</span><span class="punct">&quot;)</span>
    <span class="ident">kw_file</span><span class="punct">.</span><span class="ident">each</span> <span class="punct">{</span> <span class="punct">|</span><span class="ident">kw</span><span class="punct">|</span>
        <span class="ident">kw</span><span class="punct">.</span><span class="ident">chomp!</span>
        <span class="ident">arr_kw</span><span class="punct">.</span><span class="ident">push</span><span class="punct">(</span><span class="ident">kw</span><span class="punct">)</span>
    <span class="punct">}</span>

    <span class="ident">arr_kw</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">kw</span><span class="punct">|</span>
        <span class="ident">print</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{kw}</span>: </span><span class="punct">&quot;</span>
        <span class="keyword">if</span> <span class="ident">pos</span> <span class="punct">=</span> <span class="ident">google</span><span class="punct">.</span><span class="ident">position</span><span class="punct">(</span><span class="ident">kw</span><span class="punct">)</span>
            <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{pos[0]}</span> <span class="expr">#{pos[1]}</span></span><span class="punct">&quot;</span>
        <span class="keyword">else</span>
            <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">Not found</span><span class="punct">&quot;</span>
        <span class="keyword">end</span>
    <span class="keyword">end</span>

<span class="keyword">end</span>
</pre>
</div>
<p></notextile></p>
]]></content:encoded>
			<wfw:commentRss>http://md6.org/pozycje-keywordw-w-google-z-pomoc-ruby/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
