Vi är ett it-konsultföretag som främst sysslar med webbutveckling i Ruby on Rails

Plasthuset i hoting Företagarna Hoting Billiga klistermärken, Dekaler, Banderoller Jobbhuset.se Restaurang Aspentos i Uppsala Mojes Grill i Hoting Corner Food house Pizzeria La Mavie Åre

Haslogic Bloggen

  • Arbeta med filer i Ruby
  • Skapa en ny fil med Ruby

    Nya filer i Ruby skapas med new-metoden i File-klassen.

    New-metoden tar två argument, det första är namnet på filen som ska skapas och det andra är det läge som filen ska öppna.

     

    Här är en lista över olika sätt att öppna en fil på:

    r  Endast läsning

    r+       Läs och skrivrättigheter.

    w       Endast skrivning.

    w+     Läs och skrivning

    a     Endast skrivning  vid slutet av filen.

    a+    Läs-och skrivrättigheter. Skrivning läggs till vid slutet.

    b  Binär fil. Endast för Windows/Dos

    Med denna information i åtanke kan vi därför skapa en ny fil i “write”-läge enligt följande.

     

    >> File.new("test.txt","w")

    => #<File:test.txt>

     

    Öppna filer

    Med hjälp av open-metoden av File-klassen kan man öppna befintliga filer:

     

    >> fil = File.open("test.txt")

    => #<File:test.txt>

    Observera att befintliga filer kan öppnas i olika lägen som anges i tabellen ovan. Till exempel kan vi öppna en fil i skrivskyddat läge:

     

    >> fil = File.open("test.txt","r")

    => #<File:test.txt>

    Det är också möjligt att fastställa om en fil redan är öppen med closed? metoden:

     

    >> fil.closed?

    => false


    Slutligen kan vi stänga en fil med close-metoden:

     

    >> fil = File.open("test.txt","r")

    => #<File:test.txt>

    >> fil.close

    => nil

    >> fil.closed?

    => true


    Läsa och skriva filer

    När vi har öppnat en befintlig fil eller skapat en ny fil måste vi kunna läsa från och skriva till den filen. Vi kan läsa rader från en fil med antingen readline eller each metoder:

     

    >> fil = File.open("test.txt")

    => #<File:test.txt>

    >> fil.readline

    => "Haslogic blogg om Ruby on Rails och Webbutveckling"

    >>

    Med each-metoden kan vi läsa hela filen:

     

    >> fil = File.open("test.txt")

    => #<File:test.txt>

    >> fil.each { |x| print x }

    Haslogic blogg om Ruby on Rails och Webbutveckling

    Ruby kurs för nybörjare

    Ruby on Rails för nybörjare kommer snart

    => #<File:test.txt>

    >>

    Med metoden puts kan vi skriva en rad i taget till en fil.

     

    >> fil = File.new("test.txt","w+")

    => #<File:test.txt>

    >> fil.puts("Detta fungerar ju")

    => nil

    >> fil.puts("Rad tva")

    => nil

    >> fil.puts("Rad tre")

    => nil

    >> fil.puts("Och rad fyra")

    => nil

     

    >> fil = File.open("test.txt")

    => #<File:test.txt>

    >> fil.each { |x| print x}

    Detta fungerar ju

    Rad tva

    Rad tre

    Och rad fyra

    => #<File:test.txt>

    >>

    Läs mer


  • Introduktion till Ruby klasser
  • Ruby klasser

    I Ruby börjar en klass med nyckelordet class och slutar med en matchande end.

     

    Detta är en simpel klass

     

    class MinKlass

    end

     

    Så här skulle jag skapa ett användbart objekt från det:

     

    objekt = MinKlass.new

    För att göra MinKlass mer användbart måste jag ge det en metod eller två.

    I detta exempel har jag lagt till en metod som kallas sag_hej:

     

    class MinKlass

    def sag_hej

    puts "Hej"

    end

    end

    Nu när jag skapar en MinKlass objekt kan jag kalla denna metod för att få det att säga “Hej”:

     

    objekt = MinKlass.new

    objekt.sag_hej

    När vi kör programmet blir utskriften:

     

    $> ruby minklass.rb

    Hej

    $>

     

    Instans Variabler

    Instans variabler skapas för varje klass instans och är bara tillgängliga i den instansen eller genom de metoder som föreskrivs i denna instans. Instans variabler nås med hjälp av @-operatorn.

     

    class MinKlass

      @ett = 1

      def gor_nagot

        @one = 2

      end

     

      def utskrift

        puts @one

      end

    end

     

    instans = MinKlass.new

    instans.utskrift

    instans.gor_nagot

    instans.utskrift

    När vi kör programmet blir utskriften:

     

    $> ruby instans_var.rb

    nil

    2

    $>


    Klass variabler

    En klassvariabel anges med @@-operatorn.Dessa variabler är förknippade med klassen snarare än ett objekt instans av klassen och är samma för alla objekt instanser.

     

    class MinKlass

      @@klass_variabel = 1

      def lagg_till_ett

        @@klass_variabel = @@klass_variabel + 1

      end

     

      def resultat

        @@klass_variabel

      end

    end

    instansEtt = MinKlass.new

    instansTva = MinKlass.new

    puts instansEtt.resultat

    instansEtt.lagg_till_ett

    puts instansEtt.resultat

    puts instansTva.resultat

    Utskrifen:

     

    $> ruby klass_variabel.rb

    1

    2

    2

    $>

     

    Klassmetoder

    Klassmetoder definieras genom att ange klassnamnet och en punkt före metodnamnet.

     

    class MinKlass

       def MinKlass.min_metod

    end

    end

    Ett annat sätt att skapa en klassmetod är att använda nyckelordet self.

     

    class MinKlass

    def self.min_metod

    end

    end

    Nu kan du kalla min_metod via klassen antingen MinKlass.min_metod eller MinKlass::min_metod.

     

    class MinKlass

      def MinKlass.min_metod

        puts 'Hej Hej'

      end

    end

     

    MinKlass.min_metod

    Utskriften blir:

     

    $> ruby klassmetod.rb

    Hej Hej

    $>

    Läs mer


  • Introduktion till Ruby metoder
  • Ruby metoder liknar funktioner i andra programmeringsspråk. Metod namn bör inledas med en liten bokstav. Om du börjar en metod namn med en versal kanske Ruby tolkar den som en konstant. Syntaxen för en Ruby metod är följande:


    def metodnamn(arg1, arg2,..)

      Ruby kod

    end

     

    Exempel 

    # Enkel metod

    >> def hej

    >> puts 'Hej'

    >> end

    => nil

    >> hej        # anropar metoden

    Hej

    => nil

     

    # Metod med ett argument

    >> def hej1(namn)

    >>   puts 'Hej ' + namn

    >> end

    >> puts hej1('Haslogic')

    Utskriften blir

    Hej Haslogic

    nil

    => nil

     

    Ruby tillåter oss att skriva metoder som accepterar varierande antal parametrar.


    >> def antalparam(*args)

    >>   args.each{ |x| puts x }

    >> end

    => nil

    >> antalparam("Ruby")

    Ruby

    => ["Ruby"]

    >> antalparam(1,"Ruby","Haslogic")

    1

    Ruby

    Haslogic

    => [1, "Ruby", "Haslogic"]


    I Ruby kan man skapa alias för metoder, vilket skapar en kopia av en metod med ett annat namn:

     

    >> def tal(n1,n2)

    >>    summan = n1 + n2

    >>    return summan

    >> end

    => nil

    >> alias nummer tal

    => nil

    >> nummer(10, 20)

    => 30

    >> tal(10,20)

    => 30

    Läs mer


  • Introduktion till Ruby's hashtabeller
  • Hashtabeller

    En hashtabell liknar en array men man använder index-nycklar istället för numeriska index som i arrayer.

    Som arrayer finns det många olika sätt att skapa en hashtabell på.

    Du kan skapa en hashtabell med klass metoden new

     

    >> namn = Hash.new # skapar en tom hashtabell

    => {}

    För att lägga värde i hashtabellen används nyckeln som index istället för en siffra

     

    >> namn["blogg"] = 'Haslogic'

    => "Haslogic"

    >> namn

    =>  {"blogg"=>"Haslogic"}

    Du kan också skapa en hashtabell med {}:

     

    >> namn = {}

    => {}

    För att lägga värde i hashtabellen används nyckel/värde separerade med =>:

     

    >> namn = {"Pspråk" => "Ruby","Blogg" => "Haslogic"}

    => {"Pspråk"=>"Ruby","Blogg"=>"Haslogic"}

    För att hämta data ur en hashtabell används hakparenteser med nyckel som argument:

     

    >> ht = {"Stad"=>"Helsingborg","Psprak"=>"Ruby"}

    => {"Psprak"="Ruby","Stad"=>"Helsingborg"}

    >> ht["Stad"]

    => "Helsingborg"

    >> ht["Psprak"]

    => "Ruby"

    Ändra ett element

     

    >> ht = {"Blogg"=>"Vet ej","Psprak"=>"Ingen"}

    => {"Psprak"=>"Ingen", "Blogg"=>"Vet ej"}

    >> ht.replace({"Blogg"=>"Haslogic","Pspråk"=>"Ruby"})

    => {"Pspråk"=>"Ruby","Blogg"=>"Haslogic"}

    >> ht

    => {"Pspråk"=>"Ruby","Blogg"=>"Haslogic"}

    replace ersätter innehållet av ht helt och hållet.

     

    Metoden delete används för att ta bort ett värde ur en hashtabell.

     

    >> ht = {"Blogg"=>"Haslogic","Psprak"=>"Ruby"}

    => {"Psprak"=>"Ruby", "Blogg"=>"Haslogic"}

    >> ht.delete("Blogg")

    => "Haslogic"

    >> ht

    => {"Psprak"=>"Ruby"}

    >>

    Symboler används ofta i hashtabeller

     

    >> ht = {:blogg => "Haslogic",:psprak => "Ruby",:alder => 26}

    => {:blogg=>"Haslogic", :psprak=>"Ruby", :alder=>26}

    >> ht[:blogg]   # Hämta data ur hashtabellen

    => "Haslogic"

    >> ht.delete(:alder) # ta bort värde ur hashtabellen

    => 26

    >> ht

    => {:blogg=>"Haslogic",:psprak=>"Ruby"}

    has_key? metoden returnerar true om den givna nyckeln finns i hashtabellen annars false:

     

    >> ht = {:blogg => "Haslogic", :psprak => "Ruby"}

    => {:blogg=>"Haslogic", :psprak=>"Ruby"}

    >> ht.has_key?(:blogg)

    => true

    >> ht.has_key?(:alder)

    => false

    has_value? metoden returnerar true om värdet finns i hashtabellen annars false:

     

    >> ht = {:blogg => "Haslogic", :alder => 26}

    => {:blogg=>"Haslogic",:alder=>26}

    >> ht.has_value?(26)

    => true

    >> ht.has_value?("Ruby")

    => false

    >> ht.has_value?("Haslogic")

    => true

    En fullständig lista över Rubys Hash metoder hittar du här:

    http://ruby-doc.org/core/classes/Hash.html

    Läs mer


  • Introduktion till Ruby Symboler
  • Symboler är namn på t.ex. variabler, namn på metoder, namn på klasser.
    Du behöver inte deklarera en symbol i förväg och en symbol är alltid unik.
    Symboler är effektivare än strängar. Två strängar med samma innehåll är två olika objekt men för ett visst namn finns det bara en symbol objekt och detta kan spara både tid och minne.
    En symbol inleds med ett kolon följt av symbolens namn:

    >> symbol = :text

    Detta skapar symbol-objektet med namnet text och tilldelas variabeln symbol.
    Öppna din favorit texteditor och skriv in följande:

    puts "Ruby".object_id
    puts "Ruby".object_id
    puts :ruby.object_id
    puts :ruby.object_id

    Spara filen som sym.rb och det är viktigt att texteditorn sparar texten som ren text och inte lägger till någon annan ändelse.

    Öppna terminalen och skriv:

    $> ruby sym.rb

    Tryck retur och resultatet skrivs ut:

    84410
    84390
    # båda strängarna har olika object_id och är separata objekt
    102018
    102018
    # symbolerna har samma object_id och pekar på samma objekt

    Ett annat exempel:

    namn = :ruby
    if namn == :ruby
    puts 'Hej Ruby'
    else
    puts 'Du heter inte Ruby'
    end

    Spara filen som sym2.rb, öppna terminalen och skriv:

    $> ruby sym2.rb
    Utskriften blir
    Hej Ruby

    Läs mer


  • Ny hemsida åt Plasthuset AB i Hoting
  • Nu har vi lanserat Plasthusets nya hemsida.

    Besök gärna deras hemsida http://www.plasthuset.se

    Läs mer


  • Introduktion till Ruby Arrayer
  • Arrayer

    En array är en variabel som kan innehålla flera olika objekt.

    Det finns många sätt att skapa eller initiera en array på.

    Ett sätt är med klass metoden new:


    >> namn = Array.new  # en tom array

    => []

    >> namn = Array.new(4)

    => [nil, nil, nil, nil]


    Arrayen namn har nu en storlek eller längd av 4 element.

    Samtliga element är satta till objektet nil som representerar ingenting.

    Du kan också skapa en array med hakparenteser:


    >> namn = ['Haslogic','Ruby','Rails','Merb']

    => ["Haslogic","Ruby","Rails","Merb"]

     

    Arrayen namn lagrar fyra strängar i nummerordning från 0 till 3.

    En array kan även skapas med %w eller %W

     

    >> namn = %w{Haslogic Ruby Rails Merb}

    => ["Haslogic","Ruby","Rails","Merb"]

    >> namn[2]

    => "Rails"


    För att hämta element ur arrayen namn används hakparenteser med index, där index 0 är första elementet.

     

    >> namn[3]  # Fjärde elementet

    => "Merb"

    >> namn[2]  # Tredje elementet

    => "Rails"

    >> namn[-2] # näst sista elementet

    => "Rails"

    >> namn[2,2] # två element från index 2

    => ["Rails","Merb"]

    >> namn[1,3] # tre element från index 1

    => ["Ruby","Rails","Merb"]


    Du kan skapa en array av siffror eller blandad med siffror och strängar:

     

    >> siffror = [1,2,3,4,5]

    => [1,2,3,4,5]

    >> blandad = [1,2,"Ruby",3,"Haslogic"]

    => [1,2,"Ruby",3,"Haslogic"]


    Ändra ett element

     

    >> namn = ["Haslogic","Ruby","Hej","Merb"]

    => ["Haslogic","Ruby","Hej","Merb"]

    >> namn[2] = "Rails" # ändrar element 2 (Hej) till Rails

    => "Rails"

    >> namn

    => ["Haslogic","Ruby","Rails","Merb"]


    Det går att lägga ihop två arrayer genom att använda addition

     

    >> siffror = [1,2,3]

    => [1,2,3]

    >> siffror2 = [4,5,6,7]

    => [4,5,6,7]

    => tal = siffror + siffror2

    => [1,2,3,4,5,6,7]


    Metoden delete raderar ett element ur arrayen

     

    >> siffror = [1,2,3,4,5,6,7]

    => [1,2,3,4,5,6,7]

    >> siffror.delete(7)

    => 7

    >> siffror

    => [1,2,3,4,5,6]

    >> namn = ["Haslogic","Ruby","Rails","Merb","Hej"]

    => ["Haslogic","Ruby","Rails","Merb","Hej"]

    >> namn.delete("Hej")

    => "Hej"

    >> namn

    => ["Haslogic","Ruby","Rails","Merb"]


    Metoden sort används för att sortera arrayen.

     

    >> namn = ["Haslogic","Ruby","Rails","Merb"]

    => ["Haslogic","Ruby","Rails","Merb"]

    >> namn.sort

    => ["Haslogic","Merb","Rails","Ruby"]

    >> namn # Gamla namn arrayen

    >> ["Haslogic","Ruby","Rails","Merb"]

    >> namn.sort!  # skriver över namn

    >> ["Haslogic","Merb","Rails","Ruby"]

    >> namn

    >> ["Haslogic","Merb","Rails","Ruby"]

     

    Skapa flerdimensionella arrayer

    En flerdimensionella array är en samling av arrayer.

     

    >> multi_array = [[1,2,3,4],["a","b","c"]]

    => [[1,2,3,4], ["a","b","c"]]


    multi_array är en multidimensionell array vars yttersta array har två delar. Den första delen multi_array[0] är en samling av fyra heltal och den andra delen multi_array[1] är en samling av tre strängar.

    För att komma åt ett objekt i multidimensionella arrayer används två eller flera uppsättningar av hakparenteser.

     

    >> multi_array[0][2]

    => 3

    # hämtar element 3 från första delen av arrayen

    >> multi_array[1][1]

    => "b"

    # hämtar element 2 från andra delen av arrayen

     

    Array metoder

    array.at(index) Returner elementet vid index

    array.clear Tar bort alla element från arrayen

    array.collect Utför blocket för varje element

    array.compact Returnerar en kopia med alla nil borttagna

    array.compact! Tar bort nil element från arrayen. skriver över arrayen.

    array.concat(array2) Lägger till array + array2

    array.delete(obj) Tar bort obj ur array

    array.delete_at(index) Tar bort elementet vid index.

    array.delete_if{|item| block} Tar bort alla element med blockvillkor.

    array.each Returnerar ett element i taget

    array.each_index Samma som Array#each, returnerar ett index i taget till bifogat index

    array.empty? Returnerar sant om array är tom

    array.eql?(array2) Returnerar sant om array och array2 innehåller samma element

    array.fetch Hämtar element ur array

    array.fill Lägger element i array

    array.first(n) Returnerar det första elementet eller den första element n.

    array.flatten Returnerar en ny array som är en endimensionell med samma element som i array

    array.flatten! Som flatten men skriver över array

    array.frozen? Returnerar sant om array är fryst

    array.hash Beräknar ett hash-kod för array.

    array.include?(obj) Returnerar sant om obj finns i array, falskt annars

    array.index(obj) Returnerar först index i array

    array.replace Ersätter element i array

    array.insert(index, obj…) Sätter in obj i array vid index i

    array.inspect skapar en utskrivbar version av array

    array.join sätter ihop element i array som en sträng

    array.last(n) Returnerar det sista element(n) på array

    array.length Returnerar antalet element i array

    array.map Se collect

    array.nitems Returnerar antalet element som inte är nil

    array.pack Omvandlar array i en binär sekvens.

    array.pop Tar bort det sista elementet ur array och returnerar det

    array.push(obj,…) Lägger till obj sist i array

    array.reverse Returnerar en ny array med arrays element i omvänd ordning

    array.reverse! som reverse men skriver över array

    array.reverse_each Samma som Array#each men itererar i omvänd ordning

    array.rindex Samma som index men returnerar sista objektet i array

    array.select Väljer ut element

    array.shift Returnerar den första elementet,tar bort det och flyttar alla andra element ett steg nedåt.

    array.size Samma som length, Returnerar längden på array

    array.slice(start, slut) Returnerar element mellan start och slut

    array.slice!(start, slut) Tar bort element mellan start och slut

    array.sort Sorterar array

    array.sort! Samma som sort men skriver över array

    array.to_a Returnerar array

    array.to_ary Returnerar array

    array.to_s Returnerar array.join

    array.transpose Förutsätter att self är en array och införlivar rader och kolumner

    array.uniq! Tar bort dubbla element i array

    array.unshift(obj,…) Sätter in obj i array och skjuter alla andra element ett steg upp

    Läs mer


  • Introduktion till loopar och iterationer
  • Loopar

    Loopar i Ruby används för att utföra samma kodblock ett visst antal gånger.

     

    While-satsen

    While-satsen kommer att fortsätta upprepa koden så länge ett villkor är sant.

     

    >> x = 1

    => 1

    >> while x < 10

    >>    print x

    >>    x += 1

    >> end

    123456789=> nil

    Så länge villkoret x < 10 är sant kommer satserna mellan while och end att utföras. Satsen x += 1 lägger till ett till variabeln.

     

    Until-satsen

    Until är nästan identisk med while förutom att until repeterar koden så länge villkoret är falskt.

     

    >> x = 1

    => 1

    >> until x > 10

    >>    print x

    >>    x += 1

    >> end

    12345678910=>nil

     

    For-loopen

    En for-loop används då antalet repetitioner är förbestämt.

     

    >> for x in 1..10 do

    ?>    print x

    >> end

    12345678910=> 1..10

    do är frivilligt att använda om inte koden är placerad på en enda rad.

     

    >> for x in 1..10 do print x end

    12345678910=> 1..10

    Det går också att bryta ut sig ur en for-loop genom att använda break.

     

    >> for x in 1..10

    >>    print x

    >>    break if x == 4

    >> end

    1234=>nil

     

    Iteratorer

    En iterator är en speciell metod som utför kod ett visst antal gånger.

     

    Each

    Det enklaste och mest använda iteratorn är each.

     

    >> namn = ["Haslogic","Ruby","Rails","Merb"]

    => ["Haslogic","Ruby","Rails","Merb"]

    >> namn.each do |x|

    ?>    puts "Hej #{x}"

    >> end

    Hej Haslogic

    Hej Ruby

    Hej Rails

    Hej Merb

    => ["Haslogic","Ruby","Rails","Merb"]

     

    Times,downto, upto

    Times metoden är ett alternativ till for-loopen och används för att repetera kod ett visst antal gånger.

     

    >> 3.times do

    ?>    print "Hej "

    >> end

    Hej Hej Hej => 3

     

    Upto metoden fungerar ungefär som en for-loop.

     

    >> 0.upto(10) do |x|

    ?>    print x

    >> end

    012345678910=> 0

    Downto metoden liknar upto metoden undantaget är att det börjar vid ett värde och räknar ner snarare än upp.

     

    >> 10.downto(5) {|x| print x, " "}

    10 9 8 7 6 5 => 10

    Läs mer


  • Villkorssatser
  • Villkorssatser använder man så fort man måste hantera fler än ett alternativ.

     

    If-satsen

    If-satsen utför olika saker beroende på om ett villkor är sant eller falskt.

     

    Exempel 

    >> name = "Ruby"

    => "Ruby"

    >> if name == "Ruby"

    >>    puts "Älskar Ruby"

    >> end

    Älskar Ruby

    => nil

    Detta program skriver ut meddelandet eftersom variabeln name innehåller strängen Ruby.

     

    >> name = "Rails"

    => "Rails"

    >> if name == "Ruby"

    >>    puts "Detta kommer inte att skrivas ut"

    >> end

    => nil

    Detta program skriver inte ut meddelandet eftersom name innehåller inte strängen Ruby.

     

    If-else

    Oftast vill man göra någonting om villkoret inte är sant.

    Då använder man sig av en else-sats.

     

    >> name = "Rails"

    => "Rails"

    >> if name == "Ruby"

    >>    puts "Ruby"

    >> else

    ?>     puts "Ruby on Rails"

    >> end

    Ruby on Rails

    => nil

    Om villkoret i if-satsen är falskt kommer alla satser mellan else och end att utföras.

    elsif används för att lägga till fler än ett villkor.

     

    Exempel 

    >> name = "Haslogic"

    => "Haslogic"

    >> if name == "Ruby"

    >>    puts "Ruby"

    >> elsif name == "Rails"

    >>    puts "Rails"

    >> elsif name == "Merb"

    >>    puts "Merb"

    >> else

    ?> puts "Du har valt ett annat namn"

    >> end

    Du har valt ett annat namn

    => nil

    Ett villkor i taget kommer att kontrolleras och när ett villkor är sant kommer det övriga inte att kontrolleras.

    Om inget av villkoren är sant kommer satsen i else att utföras.

     

    Villkorssatser

    =       tilldelnings operatör

    ==      lika meda == b

    !=      inte lika med a != b

    >       större äna > b

    <       mindre äna < b

    >=      större än eller lika meda >= b

    >> 1 == 1

    => true

    >> "a" != "b"

    =>  true

    >> "a" == "A"

    => false

    >> 10 > 2

    => true

    >> 2 < 10

    => true

    >> 10 >= 10

    => true

    >> 10  true

    >> 10  true


    Case

    Vi använder en case-sats för att testa en sekvens av villkor.

     

    >> name = "Haslogic"

    => "Haslogic"

    >> case name

    >> when "Ruby"

    >>    puts "Hej Ruby"

    >> when "Rails"

    >>    puts "Hej Rails"

    >> when "Merb"

    >>    puts "Hej Merb"

    >> else

    ?>     puts "Jag känner inte dig"

    >> end

    Jag känner inte dig

    => nil

    case-satsen jämför värdet på en variabel eller resultatet av ett utryck mot flera alternativ. case-satsen kan ha så många when jämförelser som du vill.

    Intervallen (Ranges) är kanske det mest vanliga användningsområdet för case-satsen. Intervall (Range) är en datatyp som representerar ett helt intervall med start och slut punkt.

    Om två punkter används ingår både start-och slutvärde.

    Om tre punkter används ingår startvärdet men inte slutvärdet.

     

    >> 1..10  # skapar ett intervall från 1 till 10

    >> 1...10  # skapar ett intervall från 1 till 9

    >> betyg = 80

    => 80

    >> resultat = case betyg

    >> when 0..40: "Ej godkänt"

    >> when 41..60: "Godkänt"

    >> when 61..70: "Väl godkänt"

    >> when 71..100: "Mycket väl godkänt"

    >> else "Okänt"

    >> end

    => "Mycket väl godkänt"

    >> puts resultat

    Mycket väl godkänt

    >> nil

    >>


    Unless

    Unless är motsatsen till if och koden utförs så länge satserna mellan unless och end är false eller nil.

     

    >> tal1 = 10

    => 10

    >> tal2 = 20

    => 20

    >> unless tal1 == tal2

    >>    puts "innehåller inte samma tal"

    >> end

    innehåller inte samma tal

    => nil

    >> tal1 = 10

    => 10

    >> tal2 = 10

    => 10

    >> unless tal1 == tal2

    >>    puts "innehåller inte samma tal"

    >> end

    => nil

    Meddelandet i detta exempel skrivs inte ut eftersom unless är true båda talen innehålle samma tal.

     

    Ternär operatorn

    Ternär operatorn tillhandahåller en genväg för att fatta beslut beroende på om ett villkor är sant eller falskt. Syntaxen för ternära operatorn är följande:

     

    [villkor] ? [true uttryck] : [false uttryck]

     

    >> namn = "Ruby"

    => "Ruby"

    >> namn == "Ruby" ? "Hej Ruby" : "Känner inte dig"

    => "Hej Ruby"

    >> namn = "Haslogic"

    => "Haslogic"

    >> namn == "Ruby" ? "Hej Ruby" : "Känne inte dig"

    >> "Känner inte dig"

    Läs mer


  • Enkla utskrifter med puts och print
  • puts skriver till skärmen med radbrytning i slutet.

    print gör samma sak fast utan radbrytning.


    >> puts "Hej från Ruby"
    Hej från Ruby
    => nil
    >> print "Hej från Ruby"
    => Hej från Ruby=> nil
    >> puts "Hej\nfrån\nRuby"
    Hej
    Från
    Ruby
    => nil

    nil är ett objekt precis som allt annat i Ruby och representerar ingenting.

     

    >> x = 10              # variabeln x innehåller talet 10
    => 10
    >> y = 2               # variabeln y innehåller talet 2
    => y
    >> puts x + y # skriv ut resultatet av x + y
    12
    => nil
    >> puts "variabeln x innehåller talet #{x}"
    x innehåller talet 10
    => nil

     

    "gets"

    Vi använder metoden gets för att få indata från användaren.


    >> puts "Vad heter du?"
    Vad heter du?
    => nil
    >> namn = gets
    Ruby
    => "Ruby\n"
    >> puts "Hej " + namn
    Hej Ruby
    => nil 

     

    Fler exempel


    >> namn = gets
    Ruby
    => "Ruby\n"
    >> namn = gets.chomp  # chomp metoden ger dig tillbaka strängen fast utan radbrytningen \n
    Ruby
    => "Ruby"
    >> tal = gets
    20
    => "20\n"
    >> tal = gets.to_i  # konvertera resultatet från gets till heltal
    20
    => 20
    >> tal = gets.to_f # konvertera resultatet från gets till flyttal
    20
    => 20.0

    Läs mer