Ruby -the wheel Technology

826 views
786 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
826
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ruby -the wheel Technology

  1. 1. RUBY:The Wheel Technology
  2. 2. HISTORY Ruby was conceived on February 24, 1993 by Yukihiro Matsumoto (a.k.a “Matz”)who wished to create a new language that balanced function programming with imperative programming. Matsumoto has stated, "I wanted a scripting language that was more powerful than Perl, and more object- oriented than Python. At a Google Tech Talk in 2008 Matsumoto further stated, "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language."
  3. 3. PRINCIPLE Ruby is said to follow the principle of least astonishment (POLA), meaning that the language should behave in such a way as to minimize confusion for experienced users. Matsumoto has said his primary design goal was to make a language which he himself enjoyed using, by minimizing programmer work and possible confusion.
  4. 4. COMPARISONDynamic vs. Static typingScripting vs. Complied Language-use interpreter -use compilerObject oriented vs. Procedure oriented
  5. 5. WHAT IS RUBY ? Paradigm : Multi-paradigm 1.object-oriented 2. functional, 3.dynamic 4. imperative Typing- : : 1.Dynamic discipline 2.Duck 3.strong Non commercial : Open Source Influenced by : Ada, C++, Perl, Smalltalk, Python , Eiffel
  6. 6. CONT.. Os : cross platform(windows , mac os , linux etc.) Stable release : 1.9.2 (February ,18 2011) Major implementations : RubyMRI , YARV , Jruby , Rubinius, IronRuby , MacRuby , HotRuby License : Ruby license or General public license Usual file extension : .rb , .rbw Automatic memory management(Garbage collection)
  7. 7. WHY RUBY? Easy to learn Open source (very liberal license) Rich libraries Very easy to extend Truly Object-Oriented -Everything is an object. Single inheritance - Mixins give you the power of multiple inheritancewith the problems .
  8. 8. SIMPLE “ HELLO, WORLD ” PROGRAM# simply give hello world Comment in ruby puts “hello , world..”Output: hello , world..
  9. 9. WHERE TO WRITE RUBY CODE? IDE or Editors: 1. Net beans 2. Eclipse(mostly used today) 3. Text Mate (mac os) 4. Ultra editor 5. E 6. Heroku( completely online solution for application )
  10. 10. RUBY SYNTAX Ruby syntax is similar with Perl and Python . 1.Adding comment - All text in ruby using # symbol consider as comment.so that ruby interpreter ignored it. 1.a For large block =begin This is a multi-line block of comments in a Rubysource file. Added: January 1, 2011 =end Puts “This is Ruby code
  11. 11. CONT..2.Using parentheses : - parentheses are optional in ruby Ex. In below ,you could call it like this.. movie.set_title(“Star Wars”) Or you could call it without parentheses movie.set_title “Star Wars”Require, when chaining methods are used, Ex. puts movie.set_title(“Star Wars”)
  12. 12. CONT..3.Using semicolons Semicolons are a common indicator of a line or statement ending. In Ruby, the use of semicolons to end your lines is not required. def add_super_power(power) @powers.add(power) end The only time using semicolons is required is if you want to use more than one statement on a single line def add_super_power(power) @powers.add(power); puts “added new power” end Indicate more than one statement on single line
  13. 13. KEYWORDS & IDENTIFIERS BEGIN END alias and Begin break case def class defined? do else elsif end ensure false for if in module next nil not or redo rescue retry undef self super then true return unless until when while yield
  14. 14. VARIABLES Local variables:begin with lowercase or underscore Ex : alpha , _ident Pseudovariables : self ,nil Global variables: begin with $ (dollar sign) Ex: $beta, $NOT_CONST Instance variables: begin with @ sign Ex:@foobar Class variables: begin with @@sign Ex:@@my_var Constants : begin with capital Ex:Length
  15. 15. OPERATORS :: Scope [] Indexing ** Exponentiation +-!~ Unary */ +-% Binary << >> Logical shifts &(and) |(or) ^(xor) Bitwise < >= < <= Comparision && || Boolean and ,or .. … Range ?: Ternary decision
  16. 16. LOOPING AND BRANCHING“ If ” Form “ Unless ” Form if x<5 then unless x>=5 then state1 state1 end end if x<5 then unless x>=5 then state1 state1 else else state2 state2 end endx = if a>0 then b else c end x = unless a<=0 then b else c end
  17. 17. LOOPING (FOR, WHILE, LOOP ) 1. # loop1 (while) i=0 while i < 10 do print “ # {i} ” output: 0 to 9 i+=1 end 2. # loop2(loop) i=0 output: 0 to 9 loop do print “ # {i} ” i+=1 break if i>10 end
  18. 18. CONT..3.# loop3 (for) for i in 0..9 do output: 0 to 9 print “#{i}” end
  19. 19. STANDARD TYPE- Integer within a certain range . (normally -230 to 230-1 or -262 to 262-1) Interger Bignum Fixnum -Also support Float numbers - Complex numbers
  20. 20. CONT.. 123456 # Fixnum 123_456 # Fixnum (underscore ignored) -543 # Negative Fixnum 123_456_789_123_345_789 # Bignum 0xaabb # Hexadecimal 0377 # Octal 0b101_010 # Binary
  21. 21. CONT.. Some of operation on numbers: a= 64**2 # ans.4096 b=64**0.5 # ans. 8.0 c=64**0 # ans.1 Complex number a=3.im #3i b= 5-2im #5-2i c=Complex(3,2) # 3+2i Base conversion 237.to_s(2) #”11101101” 237.to_s(8) #”355 ” 237.to_s(16) #”0xed ”
  22. 22. OOP IN RUBY In ruby , every thing is an object . like, string, array,regular expression etc.Ex. - “abc”. upcase # “ABC” - 123.class #Fixnum - “abc”.class #String - “abc”.class .class #Class - 1.size # 4 - 2.even? # true - 1.next # 2
  23. 23. STRINGS Ruby strings are simply sequences of 8-bit bytes.They normally hold printable characters, but that isnot a requirement; a string can also hold binary data. Strings are objects of class String.Working with String:1.Searchingstr =“Albert Einstein ”p1= str.index(?E) #7p2= str.index(“bert”) #2p3=str.index(?w) #nil
  24. 24. CONT..1.a Substring is present or not? str =“mathematics” flag1=str.include? ?e # true flag2=str.include? “math” # true2. Converting string to numbers x=“123”.to_i #123 y=“3.142”.to_f #3.14 z=Interger(“0b111”) #binary –return 7
  25. 25. CONT..3. Counting character in string s1=“abracadabra” a=s1.count(“c”) #1 b=s1.count(“ bdr ”) #54. Reversing a String s1=“Star World” s2=s1.reverse # “dlroW ratS” s3=s1.split(“ ” ) # [“Star” ”World”] s4=s3.join(“ ”) # “Star World ”
  26. 26. CONT..5. Removing Duplicate characters s1=“bookkeeper” s2=s1.squeeze # “ bokeper ” s3=“Hello..” # specific character only s4=s3.squeeze(“.”) # “hello.”
  27. 27. ARRAY & HASHESThe array is the most common collection class and is also one of the most often used classes in Ruby. An array stores an ordered list of indexed values with the index starting at 0. Ruby implements arrays using the Array class. Creating and initializing an arrayEx. a=Array[1,2,3,4] or a=[1,2,3,4] or a=Array.new(3) #[nil,nil,nil]
  28. 28. CONT..Finding array sizex=[“a”, “b”, “ c”]a=x.length #3 ora=x.size #3Sorting arraya=[1, 2 , “three ”, “four”,5,6]b=a.sort {|x,y|x.to_d<=>y.to_s }# ans. [1,2,5,6, “four”, “three”]x=[5,6,1,9]y=x.sort{|a,b| a<=>b}#ans.[1,5,6,9]
  29. 29. HASHES Hashes are known as in some circle as associative arrays , dictionaries. Major difference between array & hashes- An Array is an ordered data structure.- Whereas a Hash is disordered data structure.
  30. 30. CONT.. Hashes are used as “key->value” pairs Both key & value are objects. Ex. h=Hash{ “dog”=> “animal” , “parrot”=> „”bird” } puts h.length #2 h[„dog‟] #animal h.has_value? “bird” # true h.key? “ cat” #false a=h.sort #[[“dog”, “animal”],[“parrot”, “bird”]] # It convet into array
  31. 31. REFERENCEBooks : 1. programming ruby language -Yukihiro Matsumoto 2.programming ruby language -David black 3.The Pragmatic Programmers Guide - Yukihiro Matsumoto 4. The Ruby Way -Hal Fulton 5. The ruby -In Nutshell - Yukihiro MatsumotoSites: http://www.ruby-lan.org
  32. 32. THANK YOU
  33. 33. PREVIOUS SESSION History Principle What is Ruby? Keyword & Variable Standard Type Object Looping &Branching Array String Hashes
  34. 34. THIS SESSIONModuleMethod in RubyClass Variable & Class MethodInheritanceMethod OverridingMethod Overloading
  35. 35. CONT.. Ruby On Rails -Web Development What is Rails? Rails Strength Rails & MVC Pattern Rails Directory Structure Creating Simple Web application
  36. 36. METHOD IN RUBY How to define method in class?module pqr class xyz def a end …. endendExample:class Raser def initialize(name,vehicle) # constructor of class @name=name @vehicle=vehicle endend
  37. 37. CONT..racer=Racer.new(“abc”, “ferrari ”) creating object racer of class Racerputs racer.name # give abcputs racer.vehicle # give ferrariputs racer.inspect #give abc & ferrari both
  38. 38. INHERITANCE Inheritance is represented in ruby subclass<superclass (extends keyword in java replace by < in ruby) Example: class Racercomp<Racer def initialize (name,vehicle,rank) super(name,vehicle) @rank=rank end endx=Racercomp.new(“xyz”, “ferrari”, “10”)puts x.inspect
  39. 39. METHOD OVERRIDING class xyz def name puts “hi ,i am in xyz…” end end class abc<xyz def name puts “hi, i am in abc…” end end a=xyz.new b=abc.new puts a.name # hi, i am in xyz puts b.name # hi, i am in abc
  40. 40. METHOD OVERLOADING class xyz def hello(name1) puts “hello ,#{name1}” end def hello(name1,name2) puts “hello ,#{name1} #{name2}” end a=xyz.new puts a.hello(i am) # hello , i am b=xyz.new puts b.hello(i am,fine) # hello , i am fine
  41. 41. ATTR_READER Ruby provide methods using attr_reader class Song attr_reader :name, :artist, :duration end a=Song.new( “p” , “q”, “r”) puts a.inspect
  42. 42. Ruby on Rails - Web Development
  43. 43. WHAT IS RAILS? An Extremely Productive web application framework that is written in Ruby by David Hansson. Fully stack Framework - Includes everything needed to create database drive Web application using MVC pattern. - Being a full stack Framework means that all layer are built to work seamlessly together.
  44. 44. RAILS & MVC PATTERN M - Model(Active Record) V – View(Active View) C – Controller(Active Controller)
  45. 45. CONT..
  46. 46. MODEL- ACTIVE RECORD Provide access to Database table - Record CRUD(Create, Read, Update , Delete) It define also Validation & Association
  47. 47. VIEW – ACTIVE VIEW The user screen or Web page of your application. It should not contain any logic. It should not know about model. View are similar to PHP or ASP page. It contain little presentation logic whenever possible. denoted with .rhtml extension.
  48. 48. CONTROLLER –ACTIVE CONTROLLERThe purpose of controller- Only flow control.- Handle user request.- Retrieve Data from model.- Invoke method on model.- Send to view and respond to users.
  49. 49. RAILS DIRECTORY STRUCTURE
  50. 50. SIMPLE APPLICATION type rails name of application in plural
  51. 51. CONT.. http://localhost: 3000
  52. 52. CONT..
  53. 53. CONT..
  54. 54. REFERENCEBooks : 1. Head first rails - David Griffiths 2. Begging of rails - Steven Holzner 3.The Pragmatic Programmers Guide - Yukihiro Matsumoto 4. The Ruby Way - Hal Fulton 5. Agile web development –Ruby on Rails - David Heine Meier HanssonSites: http://www.ruby-lan.org
  55. 55. THANK YOU

×