Posted by superuser
Fri, 26 Feb 2010 08:41:00 GMT
Luis Lavena and the rubyinstaller group have made 2 very reliable versions of Ruby programming language for Windows platforms.
Unlike the old ruby installer, the 1.8.7 and 1.9.1 versions have been compiled with the MinGW compiler(v. 3.4.5) toolset. Easy installing for Windows is essential for the future of Ruby in the programming jungle, and RubyInstaller works perfectly good.
This article should be intended as a minimal guide to install both Ruby 1.8.7 and Ruby 1.9.1 on win32 platforms.
- Uninstall any previous installed Ruby version and remove the relative folders (for ex. C:\Ruby and/or C:\Ruby19 )
- Install Ruby 1.8.7-p249
- Accept the license (if you agree, of course)
- Select the destination path of your installation. (i use the default C:\Ruby). Below, in the same window
- Check the box Ruby executables to your PATH (IMPORTANT!) and “Associate .rb and .rbw files with this Ruby installation”
- Finish the installation

Ruby 1.8 is succesfully installed!
Now it’s time to install Ruby 1.9 .
- Install Ruby 1.9.1-p378
- Accept the license
- Select the destination path of your installation. (i use the default C:\Ruby19). Below, in the same window
- DO NOT select anything . Leave both check boxs unchecked.
- Finish the installation

Ruby 1.9 is succesfully installed!
To run Ruby 1.9 binaries you have to use absolute paths. C:\Ruby19\bin\whatever. That’s not so pretty!
To resolve this, i use an easy and smart method found on some discussions at the rubyinstaller google group.
The idea is to put some .bat (windows) scripts in the bin directory of the Ruby 1.8 installation to call internally the Ruby 1.9 binaries. In this way you do not have to add the Ruby 1.9 directory in your PATH env. variable. For my needs this work perfectly good.
In detail:
- Download Ruby-Bat.rar . Unrar it. Move the five included .bat files (gem19.bat, irb19.bat, rake19.bat, ri19.bat, ruby19.bat) in your ruby-1.8 (not 1.9) installation directory (in my case this is C:\Ruby\bin).
That’s all.
Open your command prompt and execute :
C:>irb19
C:>gem19 install rack
C:>ri19 array
C:>rake19 -h
It works!
If you want to know more, open with your favorite editor for example rake19.bat to see what’s inside:
@echo off
setlocal
set PATH=C:\Ruby19\bin;%WINDIR%\system32;%WINDIR%
ruby.exe -S rake %*
endlocal
If you need to make a custom ruby(v-1.9) binary just change the filename, substitute `rake` and save it in your ruby-1.8 (not 1.9) installation directory ( C:\Ruby\bin ). Not a perfect solution, but it just works as it should.
Posted in Ruby, Win32 | Tags install, Ruby, rubyinstaller, Windows | no comments
Posted by superuser
Thu, 31 Dec 2009 12:25:00 GMT
This is a collection of my working environment preferences including nearly everything: OS, Window Manager, Software, Editors, Mailserver, …
The idea for the creation of this list has been adopted from a Pistos’ gist
Environment
Software, Desktop
Software, Server
Programming
Posted in Unix, FreeBSD, Ruby | Tags preferences | no comments
Posted by superuser
Sat, 05 Dec 2009 17:12:00 GMT
Η ομάδα Rubyst.es με χαρά ανακοινώνει την τρίτη συνάντηση των φίλων της Ruby την Πέμπτη 10 Δεκεμβρίου στις 6 το απόγευμα. Αυτή τη φορά έχουμε την τιμή να φιλοξενούμαστε στο Microsoft Innovation Center σε ένα εξαιρετικό χώρο με πολλή άνετη πρόσβαση για όλους. Θα προσπαθήσουμε να καλύψουμε θέματα για προχωρημένους και αρχάριους ενώ σε αυτή τη συνάντηση θα έχουμε μια ξεχωριστή σύνθεση ομιλητών από βετεράνους της Ruby και του Rails. Αναλυτικά:
Πέρα από τις κυρίως ομιλίες μας θα υπάρχει και μια σειρά μικρών, ολιγόλεπτων παρουσιάσεων και σας προσκαλούμε να παρουσιάσετε και εσείς αν το επιθυμείτε. Η λίστα ως προς το παρόν έχει ως εξής:
Σας περιμένουμε όλους την Πέμπτη 10/12 στις 6 το απόγευμα στο Microsoft Innovation Center (Βασ.Σοφίας 103, στάση Μετρό Μέγαρο Μουσικής)
Περισσότερα Rubyst.es , στην αντίστοιχη mailing list και στο Facebook group

Posted in News, Ruby | Tags Παρουσίαση, microsoft_innovation_center, Ruby, rubystes | no comments
Posted by superuser
Thu, 15 Oct 2009 04:22:00 GMT
Την Πέμπτη 15 Οκτωβρίου 2009, και ώρα 16:00 – 18:00, στη Τεχνόπολη, Γκάζι στα πλαίσια των εκδηλώσεων του Athens Digital Week θα γίνουν οι ακόλουθες παρουσιάσεις από τα μέλη της ομάδας μας:
- A blink into the Rails magic [Nick]
- Ruby on Rails and Web on Python [john]
- Creating administrator pages in a breeze [Panos]
- From PHP to Ruby On Rails [jim]
Περισσότερες λεπτομέρειες στη λίστα ηλεκτρονικού ταχυδρομείου
Φυσικά μην ξεχάσετε τη δεύτερη εκδήλωση αύριο 16/10 στο ΤΕΙ ΠΕΙΡΑΙΑ
-
Posted in RubyOnRails, News, Ruby | Tags Παρουσίαση, ΤΕΙ_Πειραιά, Rails, Ruby, RubyOnRails | no comments
Posted by superuser
Wed, 07 Oct 2009 18:32:00 GMT
Η ελληνική κοινότητα της Ruby (http://rubyst.es) διοργανώνει το
δεύτερο Athens Ruby Meetup στο ΤΕΙ Πειραιά την Παρασκευή 16 Οκτώβρη 19:30 στην Αίθουσα
λειτουργικών συστημάτων. Αν και η κοινότητα είναι σχετικά νεαρή και
ακόμα μικρή θα παρουσιασθούν θέματα που αφορούν αρχάριους και
προχωρημένους χρήστες της Ruby. Αναλυτικότερα θα γίνουν οι εξής
παρουσιάσεις:
- Deploying Rails applications στο appengine με JRuby [ PanosJee) ]
- Εναλλακτικά ruby web frameworks (Ramaze/Sinatra/…) [ vtypal ]
- Μetaprogramming σε Ruby [Jon Romero ]
- How-to make a Rails plugin [ Jim Myhreberg ]
- Open Discussion & QA
Στα πλαίσια της ανοιχτής συζήτησης τα μέλη θα συζητήσουν για θέματα
γύρω από τη Ruby αλλά και θα απαντήσουν σε απορίες κάθε ενδιαφερόμενου
είτε αρχάριου είτε προχωρημένου. Αν γράφετε ήδη σε Ruby ελάτε να
γνωριστούμε, αν όχι, ελάτε και θα μαγευτείτε από την καταπληκτική αυτή
γλώσσα, το οικοσύστημα της αλλά και την κοινότητα της!
2o Athens Ruby Meetup
Χάρτες του ΤΕΙ Πειραιά : map1 – map2 – map3
Google Maps και οδηγίες λεωφορείων
Διεύθυνση :
Δήμος Αιγάλεω, επί των οδών Π. Ράλλη & Θηβών 250.
Κτίριο Ε – Αίθουσα Ε02
Κτίριο Α – Αίθουσα Α116
Σχετικά με τη Ruby
Η Ruby είναι μια δυναμική γλώσσα προγραμματισμού που επιτρέπει στον
προγραμματιστή να γράφει ευκολοανάγνωστο κώδικα σε λίγες γραμμές. Τα
τελευταία χρόνια έχει μια ιδιαίτερη δυναμική χάρη στο web framework,
Ruby on Rails
Σχετικά με την ελληνική κοινότητα Ruby
Είμαστε μια νεοσύστατη κοινότητα προγραμματιστών που αγαπάμε να
γράφουμε προγραμμάτα σε Ruby. Θα μας βρείτε στο http://rubyst.es αλλά
και στη λίστα ηλεκτρονικού ταχυδρομείου http://groups.google.com/group/ruby-hellug
. Εχουμε κάνει μια συνάντηση εως τώρα αλλά έχουμε πολλές ιδέες για το
μέλλον και αναμένουμε και τη δική σου συμμετοχή για μια ενεργή
ελληνική κοινότητα γύρω από την αγαπημένη μας γλώσσα
Posted in News, Ruby | Tags Παρουσίαση, ΤΕΙ_Πειραιά, Ruby | no comments
Posted by superuser
Sun, 06 Sep 2009 11:29:00 GMT
Τον τελευταίο καιρό υπάρχει και πάλι κινητικότητα στην ελληνική ομάδα προγραμματιστών Ruby (on Rails) ruby hellug . Συζητείται να γίνει ένα δεύτερο meeting μετά το πρώτο επιτυχημένο Ruby On Rails meeting in Athens .
Ακόμη δεν είναι τίποτε οριστικό, και θα εξαρτηθεί κι από τη συμμετοχή και τη συμβολή του κόσμου. Οπότε αν ασχολήστε ενεργά, ενδιαφέρεστε και θέλετε να συμμετεχέτε, δώστε το παρόν στη σχετική συζήτηση
Τον Αύγουστο ολοκληρώθηκε και η μετάφραση στα ελληνικά της εφαρμογής Redmine βάση της οποίας στήθηκε η τοποθεσία Rubyst.es στην οποία φιλοξενούνται τα αποθετήρια (repositories) ελλήνων προγραμματιστών που έχουν να κάνουν με τη Ruby και τα συναφή frameworks (Rails, Merb, Ramaze, Sinatra, …).


Posted in RubyOnRails, Ruby | no comments
Posted by superuser
Sat, 31 Jan 2009 07:38:00 GMT
Η πολυαναμενόμενη stable έκδοση 1.9 της Ruby είναι γεγονός. Μετά από εργασίες development πολλών χρόνων, μόλις χθές έγινε η ανακοίνωση έκδοσης της πρώτης σταθερής Ruby 1.9 δια στόματος του Yuki Sonoda.
Η έκδοση 1.9 είναι μια καταλυτική προσπάθεια της κοινότητας Ruby να εδραιώσει τη γλώσσα στην ελίτ του Object Oriented κόσμου. Ήδη η ruby μπορεί να τρέξει σε Java Virtual Machine (JVM) με τις ευλογίες της Sun, σε Windows χάρις στην ανάπυξη του IronRuby (συνεργάζεται άψογα με .NET) με την υποστήριξη της Microsoft, ενώ πλέον τρέχει και σε "έξυπνα" κινητά τηλέφωνα ((Ruby 1.9) Symbian, iPhone, Windows Mobile και RIM BlackBerry χάρις στο Rhomobile).
Οι κύριες αλλαγές στο 1.9 είναι η αλλαγή του αργού interpreter MRI με τον εξαιρετικά γρήγορο YARV (κατά μέσο όρο είναι 70% γρηγορότερος από τον 1.8.5 MRI!), και πλέον ο YARV υποστηρίζει πλήρως κωδικοποίηαη χαρακτήρων UTF-8, κάτι που λύνει τα προβλήματα που είχαμε με την επεξεργασία ελληνικών χαρακτήρων. Ελπίζω η νέα έκδοση της ruby να ωθήσει νέους και παλαιότερους έλληνες προγραμματιστές να ασχοληθούν με αυτή γιατί πραγματικά νομίζω το αξίζει.
-----
Κατεβάστε την νέα έκδοση μέσω ftp:
ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.bz2
ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.gz
ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.zip
Posted in Ruby | Tags Ruby, Stable, YARV | no comments
Posted by superuser
Mon, 29 Dec 2008 10:22:00 GMT
Χρόνια Πολλά και Ευτυχισμένο το 2009
Το κάτωθι χριστουγεννιάτικο δέντρο κατασκευάστηκε ορίζοντας την συνάρτηση παραγοντικού, υπολογίζοντας τις πρώτες 32 τιμές του και τυπώνοντας στο κέντρο. Ο κώδικας Ruby:
def factorial(n)
if n <1
raise "The argument must be > 0"
elsif n ==1
return 1
else
return n * factorial(n-1)
end
end
print "\n"
print "ΧΡΟΝΙΑ ΠΟΛΛΑ\n".center(72)
1.upto(32) do |m|
print "#{factorial(m)}\n".center(42)
end
ΧΡΟΝΙΑ ΠΟΛΛΑ
1
2
6
24
120
720
5040
40320
362880
3628800
39916800
479001600
6227020800
87178291200
1307674368000
20922789888000
355687428096000
6402373705728000
121645100408832000
2432902008176640000
51090942171709440000
1124000727777607680000
25852016738884976640000
620448401733239439360000
15511210043330985984000000
403291461126605635584000000
10888869450418352160768000000
304888344611713860501504000000
8841761993739701954543616000000
265252859812191058636308480000000
8222838654177922817725562880000000
263130836933693530167218012160000000
Posted in Ruby | Tags Χριστουγενιάτικο_δέντρο, παραγοντική_συνάρτηση, Ruby | no comments
Posted by superuser
Tue, 09 Dec 2008 20:27:00 GMT
Το Ramaze είναι μια απλή αλλά ολοκληρωμένη πλατφόρμα ανάπτυξης εφαρμογών web βασισμένο στη γλώσσα προγραμματισμού ruby. Είναι βαθιά επηρεασμένο από το Nitro του Γιώργου Μοσχοβίτη - ίσως τη δεύτερη διασημότερη πλατφόρμα μετά το rails. Μοιάζει πιο πολύ με ένα καθαρό πρόγραμμα γραμμένο σε ruby. Αν θέλετε να φτιάξετε σε ένα λεπτό την πρώτη σας σελίδα web τότε ακολουθήστε τα παρακάτω βήματα
Εγκατάσταση Ramaze (μέσω gems). Εξαρτάται μόνο από το rack (και από το win32-console στα windows)
gem install ramaze
ή
gem install manveru-ramaze --source=http://gems.github.com/
Δημιουργήστε ένα αρχείο κειμένου με τον ακόλουθο κώδικα και σώστε το πρόγραμμα με όποιο όνομα θέλετε (πιθανώς με επέκταση .rb) και εκτελέστε το.
require 'rubygems'
require 'ramaze'
class MainController < Ramaze::Controller
def index
"Γειά σου κόσμε. Αυτή είναι η πρώτη μου σελίδα!"
end
end
Ramaze.start
Μόλις δημιουργήσατε την πρώτη σελίδα σας στο Web! Ανοίξτε τον browser σας στην http://127.0.0.1:7000 για να δείτε το αποτέλεσμα.
Το ramaze υποστηρίζει πλήρως το μοντέλο ανάπτυξης MVC (Model - View - Controller). Ωστόσο η ιδέα παρουσίασης μιας ολόκληρης εφαρμογής σαν ένα μονοκόμματο πρόγραμμα ruby είναι πολύ χρήσιμη για να γίνει αντιληπτό πως τα συστατικά που αποτελούν το MVC fraamework δεν είναι τίποτε άλλο από κομμάτια ενός πάζλ που συνθέτουν ένα πρόγραμμα ruby.
Posted in Ruby | Tags μινιμαλιστικό, framework, Ramaze, Web | no comments
Posted by superuser
Tue, 18 Nov 2008 19:41:00 GMT
Μετά από την παρουσίαση του hpricot και τους τρόπους
ξεψαχνίσματος των σελίδων (x)html θα περάσουμε στο επόμενο στάδιο,
δλδ θα αρχίσουμε να ελέγχουμε και να μηχανοποιούμε τις εργασίες
πλοήγησης χρησιμοποιώντας το Mechanize (έχει καταγωγή από Python)
και εκεί θα δούμε πολύ ενδιαφέροντα πράγματα.
Αν πρέπει να ορίσω το Mechanize θα έλεγα πως είναι ένας αυτόματος υπολογιστικός
πλοηγητής κειμένου για τη γλώσσα προγραμματισμού ruby. Με το mechanize θα καταφέρουμε
να αυτοματοποιήσουμε τις εργασίες πλοήγησης, αφού θα μπορούμε να καλούμε ιστοσελίδες, να βρίσκουμε
και να επιλέγουμε συνδέσμους, να εισάγουμε στοιχεία σε φόρμες και να τις αποστέλλουμε. Αν
και το mechanize προβάλλει μόνο τα δυναμικά στοιχεία της σελίδας (links,
forms, buttons, ...) τα καλά νέα είναι πως συνεργάζεται - για την ακρίβεια
εξαρτάται από το hpricot, οπότε για τις στατικές πληροφορίες (κείμενο,
εικόνες, ...) θα καλούμε το hpricot. Πολλά έγραψα ας περάσω στα πειράματα
μου:
Εγκατάσταση
Ως συνήθως μέσω gems:
$ gem install mechanize --include-dependencies
Εξαρτήσεις και μέσο
Για κάθε παράδειγμα που ακολουθεί θα πρέπει να δηλώνονται:
require 'rubugems' # πιθανώς για windows Λ.Σ. να μην χρειάζεται
require 'mechanize'
agent = WWW::Mechanize.new
# agent.set_proxy("proxy.server.my", "8080") # MONON αν τρέχετε πίσω από proxy
Ο agent είναι στην ουσία το μέσο πλοήγησης. Αν πρέπει να κλικάρω σε ένα σύνδεσμο
ή να πατήσω ένα κουμπί θα καλέσω τον agent. Είναι αντικείμενο κλάσης WWW::Mechanize.
Πρώτο Τεστ
page = agent.get("http://www.google.gr/")
Η page (WWW::Mechanize::Page) αποτελείται από μια σειρά συστατικών που πιθανώς
να θέλουμε να εξετάσουμε {url}{meta}{title}{iframes}{frames}{links}{forms}.
Από αυτά τα πιο σημαντικά είναι οι σύνδεσμοι (links) που μας επιτρέπουν την πλοήγηση
και οι φόρμες που μας επιτρέπουν να εισάγουμε στοιχεία.
Για να έχετε μια γενική εικόνα μελετήστε τα περιεχόμενα της σελίδας με
pp page
ΣΥΝΔΕΣΜΟΙ (LINKS)
Το σύνολο των links που περιέχονται στη σελίδα είναι κλάσης WWW::Mechanize::List,
ενώ κάθε σύνδεσμος είναι τύπου WWW::Mechanize::Page::Link.
Εύρεση Όλων των Συνδέσμων
puts page.links # WWW::Mechanize::Page::List
Δεν είναι πολύ χρήσιμη αυτή η μορφή.
Αν θέλουμε όλο το κείμενο των links ή όλες τις διευθ.url των links, πολύ απλά θα
θα πρέπει να εφαρμόσουμε τη μέθοδο each στη λίστα.
# ___'Ολα τα ονόματα συνδέσμων__
page.links.each { |link|
puts link.text
}
# _____Όλες οι διευθύνσεις _________
page.links.each { |link|
puts link.href
}
Συνδυάζοντας τις δύο παραπάνω μπορούμε να αναπαράγουμε τα links σε κώδικα html
Για την ορθότητα του αποτελέσματος θα υποθέσουμε πως όλοι οι σύνδεσμοι είναι σε
απόλυτη διαδρομή δλδ ξεκινούν με http://www.google.gr/
page.links.each do |link|
puts "<a href=\"" + link.href + "\">" + link.text + "</a>"
end
Αν υπάρχει συνδυασμός σχετικών και απόλυτων διαδρομών συνδέσμων - όπως στην
περίπτωση της σελίδας google.gr, μπορείτε να λύσετε εύκολα το πρόβλημα.
Για παράδειγμα, στη συνέχεια κάνω ένα έλεγχο αν το link ξεκινάει από http (οπότε είναι
απόλυτη η διαδρομή), αν όχι προσθέτω το υπολλειπόμενο συστατικό δλδ το http://www.google.gr.
BASE = "http://www.google.gr"
page.links.each do |link|
if link.href =~ /^http/ then
puts "<a href=\"" + link.href + "\">" + link.text + "</a>"
else
puts "<a href=\"" + BASH + link.href + "\">" + link.text + "</a>"
end
end
Καθόλου άσχημα! Κατάφερα να συμμαζέψω όλα τα links και τα έχω έτοιμα προς χρήση.
Τι γίνεται αν θέλω κάποιο συγκεκριμένο link;
Εύρεση Συνδέσμων
Βρείτε κάποιο σύνδεσμο δίνοντας pp page.links. Για παράδειγμα:
#<WWW::Mechanize::Page::Link
#"Gmail"
#"http://mail.google.com/mail/?hl=el&tab=wm">
Παρατηρήστε πως μπορώ να διακρίνω ένα σύνδεσμο από το κείμενο του ("Gmail")
ή από το url του ("http://mail.google.com/mail/?hl=el&tab=wm").
Αν αναζητώ ένα link γνωρίζοντας ακριβώς το κείμενο του συνδέσμου ή το url
page.links.text('Gmail')
page.links.href('http://mail.google.com/mail/?hl=el&tab=wm')
Φυσικά τις περισσότερες φορές θα χρησιμοποιήσουμε μόνο κάποιο συστατικό του κειμένου
ή του url για να βρούμε το σύνδεσμο που ψάχνουμε. Σε αυτή την περίπτωση
χρησιμοποιούμε RegExp = regular expressions. Η ιδέα δεν αλλάζει, αλλά μπορεί να έχω
παραπάνω από ένα σύνδεσμο ως αποτέλεσμα αναζήτησης.
page.links.text(/mail/) # βρίσκει τα links που περιέχουν τη λέξη mail
page.links.href(/mail/) # βρίσκει links με url που περιέχει mail
Και τώρα ήρθε η ώρα να κλικάρουμε ένα link. Θυμάστε τον agent;
Λοιπόν η μορφή είναι agent.click [link] όπου [link] χρησιμοποιήστε τους άνωθεν τρόπους αναζήτησης
page_gmail = agent.click page.links.text("Gmail")
Διαπιστώστε πως μεταφερθήκατε στη σελίδα του Gmail με
pp page_gmail
Από κει και πέρα μπορείτε να πλοηγηθείτε ατελείωτα και να αυτοματοποιήσετε τις
αναζητήσεις σας. Να ψάξετε για νέα links και να συμπληρώσετε φόρμες. Αυτό θα παρουσιάσω στο δεύτερο μέρος του Mechanize.
Εύρεση, Συμπλήρωση και Αποστολή Μιας Φόρμας
Ας υποθέσουμε πως θέλουμε να βρούμε από το youtube.com βίντεο με θέμα "athens olympic games". Η κοινή πρακτική είναι να πάμε με τον browser στο youtube.com και στην πρώτη φόρμα που θα βρούμε να δηλώσουμε στο πεδίο αναζήτησης "athens olympic games". Ακριβώς την ίδια διαδικασία θα ακολουθήσω και με το mechanize.
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get("http://www.youtube.com/")
Μέχρι εδώ όλα μας είναι γνωστά από την προηγούμενη παρουσίαση. Δώστε pp page και εστιάστε στη φόρμα:
#<WWW::Mechanize::Form
{name "searchForm"}
{method "GET"}
{action "/results"}
{fields
#<WWW::Mechanize::Form::Field:0x348ea88 @name="search_query", @value="">
#<WWW::Mechanize::Form::Field:0x348de58 @name="search_type", @value="">}
{radiobuttons}
{checkboxes}
{file_uploads}
{buttons}>
Αυτή είναι η πρώτη φόρμα αναζήτησης στην αρχική σελίδα του youtube.com . Για να την επιλέξω (παρατηρήστε πως υπάρχουν και άλλες) θα πρέπει να δηλώσω ή το όνομα της - δλδ. searchForm - ή τον controller(action) που θα επεξεργαστεί τη φόρμα μετά την αποστολή - δλδ /results. Πολλές φορές θα βρείτε φόρμες όπου δεν εμφανίζεται το όνομα τους, οπότε και θα πρέπει να δηλώνετε αναγκαστικά τον controller.
vres_form = page.form_with( :action => '/results' )
Στη φόρμα υπάρχουν δύο πεδία, to ένα με όνομα/@name "search query" και το άλλο με "search_type". Και τα δύο πεδία είναι κενά (@value = ""). Ας θέσουμε λοιπόν στο πεδίο search_query την τιμή "athens olympic games"
vres_form.search_query = "athens olympic games"
Δείτε πως ανανεώθηκε η τιμή της μεταβλητής @value του πεδίου search_query:
pp vres_form
#<WWW::Mechanize::Form
{name "searchForm"}
{method "GET"}
{action "/results"}
{fields
#<WWW::Mechanize::Form::Field:0x343e498
@name="search_query",
@value="athens olympic games">
#<WWW::Mechanize::Form::Field:0x343dca0 @name="search_type", @value="">}
{radiobuttons}
{checkboxes}
{file_uploads}
{buttons}>
Το μόνο που μας απομένει είναι να "πατήσουμε" το κουμπί αποστολής/submit. Πολύ απλά
myvideo_links = vres_form.click_button
Η νέα σελίδα (myvideo_links) περιέχει τα links των βίντεο σχετικά με τους ολυμπιακούς αγώνες της Αθήνας. Όπως και στο πρώτο μέρος μπορούμε να αποσπάσουμε τις ονομασίες των links και των url διευθύνσεων ή ότι άλλο επιθυμείτε να βρείτε. Για παράδειγμα :
myvideo_links.links.href(/watch\?v=/).each do |lnk|
puts lnk.text
end
Opening Ceremony Olympic Games 2004 Athens
2004 Olympic 800m Final
Fani Halkia wins 400mH in Athens Olympic Games 2004
Taekwondo Athens Olympic games 2004 -58 Men Chinese Tiapei vs Mexico Round 1
The Emblem of the 2004 Athens Olympic Games
2004 Olympic Judo Highlights 1/2
Olympic games in Athens - Syrtaki dancing - Lifetime moment
........
Posted in Ruby | Tags πλοήγηση, σύνδεσμοι, φόρμες, href, Mechanize, Ruby | no comments