SlideShare une entreprise Scribd logo
1  sur  79
ΕΙΣΑΓΩΓΗ ΣΤΗΝ  RUBY Νίκος Δημητρακόπουλος,   Γιάννης Μπουρλάκος  [email_address]   [email_address]   Πανεπιστήμιο Πελοποννήσου Association for Computing Machinery Φοιτητικό Παράρτημα  ACM  Παν. Πελοποννήσου Τρι 12 Δεκ 2006 Έκδοση  1.0.1
[object Object],[object Object],Κατοχύρωση Πνευμ. Ιδιοκτησίας  2006  Δημητρακόπουλος Νικόλαος, Μπουρλάκος Ιωάννης Παρέχεται η άδεια για αντιγραφή ,  δημοσίευση ή/και   μεταποίηση   αυτού του εγγράφου   υπό τους όρους της Άδειας Χρήσης Ελεύθερης Τεκμηρίωσης  GNU , Έκδοση  1.2  ή μεταγενέστερης έκδοσης   δημοσιευμένης από το  Free Software Foundation ·   δεν περιλαμβάνονται   Αμετάβλητα Αποσπάσματα ,  Κείμενο Εμπροσθοφύλλου   και   Κείμενο Οπισθοφύλλου .  Ένα αντίγραφο της Άδειας Χρήσης περιλαμβάνεται στο κεφάλαιο με τίτλο  “ Άδεια Χρήσης Ελεύθερης Τεκμηρίωσης  GNU".
Γιατί   να   μας   παρακολουθήσετε . .. ,[object Object],[object Object],[object Object],[object Object]
...και να χρησιμοποιήσετε τη  Ruby! ,[object Object],[object Object],[object Object],[object Object],[object Object]
Τι  δεν   είναι η  Ruby  και ποια είναι τα αρνητικά της… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Εξελίξεις... ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βοηθητικά εργαλεία της  Ruby -   Συγγραφή κώδικα ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βοηθητικά εργαλεία της  Ruby -  Περιληπτικά ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βοηθητικά εργαλεία της  Ruby -   Εκτέλεση   (interpreters) ,[object Object],[object Object],[object Object]
Βοηθητικά εργαλεία της  Ruby –  Εκτέλεση  ( 2 ) ,[object Object],[object Object],[object Object],[object Object]
Βοηθητικά εργαλεία της  Ruby -   Τεκμηρίωση ,[object Object],[object Object],[object Object],[object Object],[object Object]
Βοηθητικά εργαλεία της  Ruby -  Τεκμηρίωση  (2) ,[object Object],[object Object],[object Object],[object Object]
Τέλος ,[object Object],[object Object],...με τα βαρετά!
Καλό θα ήταν να θυμάστε... ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hello World! ,[object Object],puts(’Hello World’)
Δήλωση συναρτήσεων ,[object Object],[object Object],[object Object],[object Object],[object Object],def όνομα_συνάρτησης()... end ,[object Object]
Τα ΠΑΝΤΑ είναι αντικείμενα! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Αντικειμενοστρεφές Μοντέλο ,[object Object],[object Object],[object Object],[object Object],[object Object]
Αντικειμενοστρεφές Μοντέλο ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Αντικειμενοστρεφές Μοντέλο ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Αντικειμενοστρεφές Μοντέλο ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Αντικειμενοστρεφές Μοντέλο ,[object Object],Αντικείμενο Κλάση Στιγμιότυπο είναι είναι παράγει περιγράφει
Αντικειμενοστρεφές Μοντέλο ,[object Object],περιγράφει ορίζει παράγει Στιγμιότυπο Κατάσταση Συμπεριφορά Κλάση Κατάσταση Συμπεριφορά Κατάσταση_Στιγμ Συμπεριφορά_Στιγμ
Αντικειμενοστρεφές Μοντέλο ,[object Object],επικαλούνται αποκρύπτουν Αντικείμενο1 Κατάσταση1 Συμπεριφορά1 Αντικείμενο 2 Συμπεριφορά2 Κατάσταση2
Αντικειμενοστρεφές Μοντέλο ,[object Object],κληρονομεί παράγει είναι είδος Κλάση1 (υπερκλάση) Κατάσταση1 Συμπεριφορά1 Κατάσταση_Στιγμ1 Συμπεριφορά_Στιγμ1 Κλάση2 (υποκλάση) Κατάσταση1 Κατάσταση2 Συμπεριφορά1 Συμπεριφορά2 Κατάσταση_Στιγμ1 Κατάσταση_Στιγμ2 Συμπεριφορά_Στιγμ1 Συμπεριφορά_Στιγμ2 Στιγμιότυπο2 Κατάσταση2 Συμπεριφορά2
Τα ΠΑΝΤΑ είναι αντικείμενα! (2) (5.6).round  » 6 (5.6).class  » Float (5.6).round.class  » Fixnum ’ a string’.length  » 8 ’ a string’.class  » String ’ tim tells’.gsub(’t’, ’j’)  » "jim jells" ’ abc’.gsub(’b’, ’xxx’).length  » 5 [’some’, ’things’, ’in’, ’an’, ’array’].length  » 5 [’some’, ’things’, ’in’, ’an’, ’array’].reverse  » ["array", "an", "in", "things", "some“] 1.+(2)  » 3   ( είναι το ίδιο με το  1 + 2 » 3 )
Δήλωση Κλάσεων ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],class Person end ,[object Object],[object Object],[object Object],[object Object],[object Object],Κλάσεις Μέθοδοι κατασκευής  ( constructor)
Δήλωση Κλάσεων –  Πεδία και Μέθοδοι ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],class Person def initialize(name) @name = name end end def greet return "Hello, my name is  " + @name end Πεδία Μέθοδοι
Δήλωση Κλάσεων –  Κληρονομικότητα ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Δήλωση Κλάσεων –  Απόκρυψη Κατάστασης  ,[object Object],[object Object],[object Object],class DoubleOSeven @full_name = “James Bond” @moneypennys_home = … @ girlfriend = “Vesper” attr_reader :full_name attr_writer :girlfriend end daniel = DoubleOSeven.new puts daniel.full_name daniel.girlfriend = “Solange” puts daniel.girlfriend // uh oh… attr_reader :  οδηγία να κατασκευαστεί μέθοδος που επιστρέφει την τιμή του πεδίου attr_writer : οδηγία να κατασκευαστεί μέθοδος που αλλάζει την τιμή του πεδίου attr_accessor :   και τα δύο μαζί ( reader, writer) προσοχή : οι οδηγίες περιλαμβάνουν σύμβολα με το όνομα του πεδίου (  :field )
Δήλωση Κλάσεων –  Απόκρυψη Κατάστασης  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Συντακτικοί κανόνες ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Συντακτικοί κανόνες -  Μέθοδοι ,[object Object],puts (“ Πορτοκαλάδα θέτε ;”)  »   Πορτοκαλάδα θέτε ; puts  “ Πορτοκαλάδα θέτε ;”  »  Πορτοκαλάδα θέτε ; ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],def   my_second_method input puts   input end ,[object Object]
Συντακτικοί κανόνες -  Αριθμοί (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Αυτή η τεχνική χρησιμοποιείται από πολλούς για την αναπαράσταση των «χιλιάδων» σε μεγάλους αριθμούς.  Έτσι μετά από κάθε 3 ψηφία εισάγουνε μία κάτω παύλα ως εξής 13_432_899.55 . Εδώ η  ruby  δεν θα λάβει υπ’ όψιν της τις παύλες και θα το διαβάσει σαν κανονικό αριθμό με τιμή 13432899.55 *
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Συντακτικοί κανόνες -  Αριθμοί (2)
Συντακτικοί κανόνες -  Συμβολοσειρές (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Συντακτικοί κανόνες -  Ονοματολογία ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Συντακτικοί κανόνες –  Ονοματολογία (2) ,[object Object],[object Object],[object Object]
Βασικοί Τύποι (έτσι για αρχή...) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Συλλογές Δεδομένων ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Συλλογές Δεδομένων –  Πίνακες ,[object Object],a = [1,2,3,4] a[2]  >> 3 b = [‘nikos’,’giannis’] b[0]  >> nikos a = Array.new a << ‘some’ << ‘things’ << ‘appended’ a[2]  >> appended a[0] = 3 a  >> [3,”things”,”appended”] a = Array.new(5,2) a  >> [2,2,2,2,2] ΠΡΟΣΟΧΗ! a = Array.new(2,’Me’) a  >> [“Me”,”Me”] a[0] << ‘ n you’ a  >> [“Me n you”, “Me n you”]
Συλλογές Δεδομένων –  Πίνακες (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Συλλογές Δεδομένων –  Πίνακες (3) ,[object Object],[object Object],[object Object],a = [‘nikos’, ‘giannis’, ‘kostas’, ‘xristos’] a[a.length-1]  >> “xristos” a[10]  >> nil . . //  Καμιά ιδέα τι θα συμβεί άμα δώσουμε  a[-1] ; a[-1]  >> “xristos” (!) //  Απλά αρχίζει και μετράει από το τέλος!   // Ουσιαστικά  index = (a.length+index) mod a.length,  για  index < 0 ,[object Object]
Συλλογές Δεδομένων –  Ευρετήρια ,[object Object],[object Object],login_acc mi49 Bourlakos Ioannis nikosd Dimitrakopoulos Nikolaos kk24 Kavouras Konstantinos bai21 Vourliotou Anna tst05062 Piskos Stergios
Συλλογές Δεδομένων –  Ευρετήρια (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ορισμός Χρήση
Συλλογές Δεδομένων –  Ευρετήρια (3) ,[object Object],[object Object],puts &quot;Enter your username:&quot; username = gets name = login_acc[username[0..-2]]  # :-) name = &quot;Unknown&quot; if !name puts &quot;Hello Mr/Mrs #{name}&quot;
Συλλογές Δεδομένων –  Ευρετήρια (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι –  Εύρη  ( Ranges) ,[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι –  Εύρη (2) ,[object Object],[object Object],a = (1..5).to_a //  Το  to_a  σημαίνει απλά « to array » b = (“a”..”z”).to_a c = (“a”…”z”).to_a a  >> [1,2,3,4,5] b  >> [“a”,”b”,”c”,”d”,……,”z”] c  >> [“a”,”b”,…..,”y”] //  Χρησιμοποιώντας τις 3 τελείες (…) λέμε στην  Ruby  να  μην λάβει υπ’όψιν της το τελευταίο στοιχείο
Βασικοί Τύποι –  Εύρη (3) ,[object Object],[object Object],[object Object],(1..10) === 5  >>  true // Είναι σαν να ρωτάμε: «Το 5, είναι ανάμεσα  στο 1 και στο 10?» (1..10) === 15  >>  false (1..10) === 3.14159  >>  true ( ‘a’..’j’)  ===  ‘c’  >> true και ούτω καθ’ εξής…
Βασικοί Τύποι –  Εύρη (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι  -  String ,[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι  -  String ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι  -  String ,[object Object],[object Object],[object Object],[object Object],[object Object]
Έλεγχος ροής -  Αναθέσεις μεταβλητών   (1) ,[object Object],a = 15 b = ‘nikos’ c = “#{b} is the best!” ,[object Object],a,b = 15,”nikos” a  >> 15 b  >> “nikos” a,b = b,a a   >> “nikos” b  >> 15 ΠΡΟΣΟΧΗ! a = ‘test’ b = a b  >> “test” b[3] = ‘o’ a  >> “teso” // Η ανάθεση  γίνεται με  αναφορά και όχι  με τιμή! c = a.dup // έτσι  αντιγράφουμε την  τιμή του  a  και όχι  το  a  ( συγκεκριμένα  εδώ για  Strings)
Έλεγχος ροής -  Αναθέσεις μεταβλητών   (2) ,[object Object],a = b = 4 a +  b  >> 8 ,[object Object],a += 2 a  >> 6 ,[object Object],array = [1,2] a,b = *array a  >> 1 b  >> 2
Έλεγχος Ροής –  Συνθήκες (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Προφανώς:  >>  “Like in school” ,[object Object],[object Object],str = “ βαρετό είναι αυτό… ” str = “ Ωπ! Κάτι ενδιαφέρον! ” if (1 +1 == 2) str  >> “ Ωπ! Κάτι ενδιαφέρον! ” ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Το ακριβώς αντίθετο της  if,  δηλαδή:   >>  “What a surprise!” ,[object Object],[object Object],(1 + 1 == 2) ?  ‘Working’ : ‘Defect’ Αποτέλεσμα >>  ‘Working’ Το αποτέλεσμα για αληθείς τιμές Το αποτέλεσμα για ψευδείς τιμές
Έλεγχος ροής –  Συνθήκες (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],user = gets case user[0..-2].downcase when “monica” then puts “Hello cutie…” when “nikos”,”giannis” then puts “Hello Master” else puts “Hello stanger” end Μετατροπή όλων των χαρακτήρων σε πεζά Αφαίρεση του χαρακτήρα διαφυγής    που διαβάζει η  gets.  Εναλλακτικά θα μπορούσαμε να χρησιμοποιήσουμε:  user.chomp Ανάγνωση από το πληκτρολόγιο Η  case   εδώ χρησιμοποιείται σαν όρισμα στην  puts Η  random(100)   παράγει έναν τυχαίο αριθμό μέχρι το 100
Έλεγχος ροής –  Συνθήκες ( 3 ) ,[object Object],[object Object],[object Object],is_true(false)  » false is_true(nil)  » false is_true(true)  » true is_true(1)  » true is_true(0)  » true is_true([0,1,2])  » true is_true(’a’..’z’)  » true is_true(”)  » true is_true(:a_symbol)  » true ,[object Object]
Έλεγχος ροής –  Βρόχοι (1) i = 1 while (i < 100) i *= 2 end i  » 128 (i » 128) begin i *= 2 end while (i < 100) i  » 256 i = 1 loop do break i if (i >= 4000) i *= 2 end  » 4096 i  » 4096 r = [] for i in 0..7 next if i % 2 == 0 r << i end  » 0..7 r  » [1, 3, 5, 7] Πηγαίνει στην επόμενη επανάληψη του βρόγχου εάν ισχύει η συνθήκη ,[object Object]
Έλεγχος ροής –  Βρόχοι ( 2 ) i  = 1 i *= 2 while (i < 100) i  » 128 ,[object Object],(i  » 128) i *= 2 until (i >= 1000)  i  » 1024 (i » 1024) 4.times do i *= 2 end  »  4 i  » 16384 ,[object Object],3.times {  print  &quot;X &quot; } ,[object Object],1.upto(5) {|i| print i, &quot; &quot; } 99.downto(95) {|i| print i, &quot; &quot; } ,[object Object],[object Object],50.step(80, 5) {|i| print i, &quot; &quot; } X X X X X X 1 2 3 4 5 X X X 1 2 3 4 5 99 98 97 96 95 X X X 1 2 3 4 5 99 98 97 96 95 50 55 60 65 70 75 80 Iterations
Μπλοκ κώδικα (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Παράγει στην έξοδο Hello Hello Hello
Μπλοκ κώδικα ( 2 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Μπλοκ κώδικα &  Iterations  ( 3 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Παράγει στην έξοδο 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 ( Ακολουθία  Fibonacci) ,[object Object],[object Object],[object Object],[object Object]
Μπλοκ κώδικα &  Iterations  (4) ,[object Object],[’i’, ’am’, ’a’, ’banana’].each  do  | entry | print entry, ’ ’  end το  do … end  μπορεί να αντικαταστήσει τα {…} i am a banana fac = 1 » 1 1.upto(5) do | i | fac *= i end » 1   fac  » 120 a = (“a”..”e”).to_a » [“a”,”b”,”c”, “d”, “e”] a.map { | entry | entry + “!” }  » [“a!”,”b!”,”c!”, “d!”, “e!”] a » [“a”,”b”,”c”, “d”, “e”] a » [“a”,”b”,”c”, “d”, “e”] a.inject { | sequence, letter | sequence + letter }  » “abcde” a » [“a”,”b”,”c”, “d”, “e”]
Μπλοκ κώδικα &  Iterations  ( 5 ) ,[object Object],[object Object],[object Object],[object Object],[1,2,3,4,5].each do | e | puts e end [1,2,3,4,5].map { | e | e * e }  » [1, 4, 9, 16, 25]
Βασικοί Τύποι  -  Regexp ,[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι  -  Regexp ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι  -  Regexp ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι  -  Regexp ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βασικοί Τύποι  -  Regexp ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Μέχρι την επόμενη φορά... ,[object Object],[object Object],[object Object]
Θέματα που δεν καλύφθηκαν… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Υπάρχει ενδιαφέρον για επόμενο σεμινάριο???
Ιδέες και σκέψεις για δράσεις… ,[object Object],[object Object],[object Object],[object Object],Συμμετάσχετε και εσείς!
Υλικό και νέα σχετικά με την  Ruby  στο διαδίκτυο… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βιβλιογραφία (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Βιβλιογραφία (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Άδεια Χρήσης Ελεύθερης Τεκμηρίωσης  GNU ,[object Object]
Σας ευχαριστούμε για την παρουσία και την προσοχή σας. Μας τιμάτε. Ν. Δημητρακόπουλος, Γ. Μπουρλάκος

Contenu connexe

Similaire à Introduction to Ruby [Εισαγωγή στην Ruby]

Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...fthplinet
 
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος ΘεοδώρουΕισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρουfthplinet
 
Ellak Document Management Introduction
Ellak Document Management IntroductionEllak Document Management Introduction
Ellak Document Management Introductionmichael_mountrakis
 
ελ λακ
ελ λακελ λακ
ελ λακvagmag12
 
Αρχειακά Μεταδεδομένα: Πρότυπα και Διαχείριση στον Παγκόσμιο Ιστό
Αρχειακά Μεταδεδομένα: Πρότυπα και Διαχείριση στον Παγκόσμιο ΙστόΑρχειακά Μεταδεδομένα: Πρότυπα και Διαχείριση στον Παγκόσμιο Ιστό
Αρχειακά Μεταδεδομένα: Πρότυπα και Διαχείριση στον Παγκόσμιο ΙστόGiannis Tsakonas
 
553193902-2-Intro-to-Java.pdf
553193902-2-Intro-to-Java.pdf553193902-2-Intro-to-Java.pdf
553193902-2-Intro-to-Java.pdfDimitraPapalitsa
 
Εισαγωγή στην Ασφάλεια Ιστοχώρων
Εισαγωγή στην Ασφάλεια ΙστοχώρωνΕισαγωγή στην Ασφάλεια Ιστοχώρων
Εισαγωγή στην Ασφάλεια ΙστοχώρωνAkeebaBackup.com
 
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαΔιαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαNikolaos Konstantinou
 
Filoi Logismikou Anoiktou Kwdika
Filoi Logismikou Anoiktou KwdikaFiloi Logismikou Anoiktou Kwdika
Filoi Logismikou Anoiktou KwdikaM B
 
σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6natasa08
 
σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6mariakarousiou
 
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...WROHellas
 
Eγκατάσταση και περιβάλλον του ΒΥΟΒ (SNAP!)
Eγκατάσταση και περιβάλλον του ΒΥΟΒ (SNAP!)Eγκατάσταση και περιβάλλον του ΒΥΟΒ (SNAP!)
Eγκατάσταση και περιβάλλον του ΒΥΟΒ (SNAP!)Vasilis Drimtzias
 
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupΠαρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupIoannis Konstantinou
 
Η γλώσσα προγραμματισμού Java.
Η γλώσσα προγραμματισμού Java.Η γλώσσα προγραμματισμού Java.
Η γλώσσα προγραμματισμού Java.Stathis Gourzis
 

Similaire à Introduction to Ruby [Εισαγωγή στην Ruby] (20)

Web2 tools
Web2 toolsWeb2 tools
Web2 tools
 
Sojourner Project
Sojourner  ProjectSojourner  Project
Sojourner Project
 
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
Εμπλουτισμένη εισήγηση ημερίδας ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου (χωρίς vi...
 
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος ΘεοδώρουΕισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
Εισήγηση Ημερίδα ΚΕΠΛΗΝΕΤ 13/3/2013 Χρήστος Θεοδώρου
 
Ellak Document Management Introduction
Ellak Document Management IntroductionEllak Document Management Introduction
Ellak Document Management Introduction
 
ελ λακ
ελ λακελ λακ
ελ λακ
 
Αρχειακά Μεταδεδομένα: Πρότυπα και Διαχείριση στον Παγκόσμιο Ιστό
Αρχειακά Μεταδεδομένα: Πρότυπα και Διαχείριση στον Παγκόσμιο ΙστόΑρχειακά Μεταδεδομένα: Πρότυπα και Διαχείριση στον Παγκόσμιο Ιστό
Αρχειακά Μεταδεδομένα: Πρότυπα και Διαχείριση στον Παγκόσμιο Ιστό
 
553193902-2-Intro-to-Java.pdf
553193902-2-Intro-to-Java.pdf553193902-2-Intro-to-Java.pdf
553193902-2-Intro-to-Java.pdf
 
Εισαγωγή στην Ασφάλεια Ιστοχώρων
Εισαγωγή στην Ασφάλεια ΙστοχώρωνΕισαγωγή στην Ασφάλεια Ιστοχώρων
Εισαγωγή στην Ασφάλεια Ιστοχώρων
 
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαΔιαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
 
Filoi Logismikou Anoiktou Kwdika
Filoi Logismikou Anoiktou KwdikaFiloi Logismikou Anoiktou Kwdika
Filoi Logismikou Anoiktou Kwdika
 
σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6
 
σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6σημειώσεις συνάντηση 6
σημειώσεις συνάντηση 6
 
Avouris teaching python
Avouris teaching pythonAvouris teaching python
Avouris teaching python
 
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
Αναπαράσταση Οπτικού Προγραμματισμού με το εργαλείο «ΚωδικΌραμα» | Αναστάσιος...
 
Eγκατάσταση και περιβάλλον του ΒΥΟΒ (SNAP!)
Eγκατάσταση και περιβάλλον του ΒΥΟΒ (SNAP!)Eγκατάσταση και περιβάλλον του ΒΥΟΒ (SNAP!)
Eγκατάσταση και περιβάλλον του ΒΥΟΒ (SNAP!)
 
Κεφ 6.pptx
Κεφ 6.pptxΚεφ 6.pptx
Κεφ 6.pptx
 
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupΠαρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
 
grails framework
grails frameworkgrails framework
grails framework
 
Η γλώσσα προγραμματισμού Java.
Η γλώσσα προγραμματισμού Java.Η γλώσσα προγραμματισμού Java.
Η γλώσσα προγραμματισμού Java.
 

Plus de Nikos Dimitrakopoulos

Lean meetings (Athens Ruby Meetup #25)
Lean meetings (Athens Ruby Meetup #25)Lean meetings (Athens Ruby Meetup #25)
Lean meetings (Athens Ruby Meetup #25)Nikos Dimitrakopoulos
 
Building a globalized, customer facing e-commerce product, powered by micro-s...
Building a globalized, customer facing e-commerce product, powered by micro-s...Building a globalized, customer facing e-commerce product, powered by micro-s...
Building a globalized, customer facing e-commerce product, powered by micro-s...Nikos Dimitrakopoulos
 
Single Sign On in Ruby - Enterprise Ready!
Single Sign On in Ruby - Enterprise Ready!Single Sign On in Ruby - Enterprise Ready!
Single Sign On in Ruby - Enterprise Ready!Nikos Dimitrakopoulos
 

Plus de Nikos Dimitrakopoulos (6)

Lean meetings (Athens Ruby Meetup #25)
Lean meetings (Athens Ruby Meetup #25)Lean meetings (Athens Ruby Meetup #25)
Lean meetings (Athens Ruby Meetup #25)
 
Building a globalized, customer facing e-commerce product, powered by micro-s...
Building a globalized, customer facing e-commerce product, powered by micro-s...Building a globalized, customer facing e-commerce product, powered by micro-s...
Building a globalized, customer facing e-commerce product, powered by micro-s...
 
Single Sign On in Ruby - Enterprise Ready!
Single Sign On in Ruby - Enterprise Ready!Single Sign On in Ruby - Enterprise Ready!
Single Sign On in Ruby - Enterprise Ready!
 
Athens Ruby Meetup #3: IronRuby
Athens Ruby Meetup #3: IronRubyAthens Ruby Meetup #3: IronRuby
Athens Ruby Meetup #3: IronRuby
 
A Blink Into The Rails Magic
A Blink Into The Rails MagicA Blink Into The Rails Magic
A Blink Into The Rails Magic
 
Things Learned From Rails
Things Learned From RailsThings Learned From Rails
Things Learned From Rails
 

Introduction to Ruby [Εισαγωγή στην Ruby]

  • 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ RUBY Νίκος Δημητρακόπουλος, Γιάννης Μπουρλάκος [email_address] [email_address] Πανεπιστήμιο Πελοποννήσου Association for Computing Machinery Φοιτητικό Παράρτημα ACM Παν. Πελοποννήσου Τρι 12 Δεκ 2006 Έκδοση 1.0.1
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Τα ΠΑΝΤΑ είναι αντικείμενα! (2) (5.6).round » 6 (5.6).class » Float (5.6).round.class » Fixnum ’ a string’.length » 8 ’ a string’.class » String ’ tim tells’.gsub(’t’, ’j’) » &quot;jim jells&quot; ’ abc’.gsub(’b’, ’xxx’).length » 5 [’some’, ’things’, ’in’, ’an’, ’array’].length » 5 [’some’, ’things’, ’in’, ’an’, ’array’].reverse » [&quot;array&quot;, &quot;an&quot;, &quot;in&quot;, &quot;things&quot;, &quot;some“] 1.+(2) » 3 ( είναι το ίδιο με το 1 + 2 » 3 )
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79. Σας ευχαριστούμε για την παρουσία και την προσοχή σας. Μας τιμάτε. Ν. Δημητρακόπουλος, Γ. Μπουρλάκος