notes:
- Présentation et commandes de bases
- LiveCode
- Jeux
Un langage open-source dynamique qui met l'accent sur la simplicité et la productivité.
Sa syntaxe élégante en facilite la lecture et l'écriture.
## 👌
notes: Yukihiro « Matz » Matsumoto est le créateur de Ruby. Frustré par son expérience en développement Smalltalk et Lisp, il débute la conception d'un nouveau langage en 1993 sous Emacs, puis publie une première version en 1995.
vvv
Framework pour applications web
...
notes:
- GitHub
- AirBnB
- SoundCloud
- Product Hunt
- Twitch
- ZenDesk
puts "Bonjour Rails Girls !"
`"Double arc-en-ciel"` | _**String**_ |
`42` | _**Integer**_ |
`3.14159` | _**Float**_ |
`["Licorne", "Chaton", "Insecte"]` | _**Array**_ |
`true` | _**TrueClass**_ |
`false` | _**FalseClass**_ |
Et quelques autres...
vvv
student = {
"first_name" => "Nicolas",
"age" => 27,
}
Un hash est une collection de paire **clé/valeur**
{
"key" => "value",
"other_key" => "other value"
}
vvv
student = {
"first_name" => "Nicolas",
"age" => 27,
}
puts student["first_name"]
# => Nicolas
year = 2019
puts year
👉
2019
year = year + 1
puts year
👉
2020
notes:
vvv
weather = "Il pleut"
if weather == "Il pleut"
puts "Prenez votre parapluie 🌂"
end
weather = "Il fait beau"
if weather == "Il pleut"
puts "Prenez votre parapluie 🌂"
else
puts "Pensez à vos lunettes de soleil 😎"
end
notes: ⚠ Tout est vrai sauf false ou nil
vvv
result = a && b
a | b | **result** |
false | false | _**false**_ |
true | false | _**false**_ |
false | true | _**false**_ |
true | true | _**true**_ |
notes: rain = true wind = true
if rain && wind puts "Restez à la maison !" end
vvv
result = a || b
a | b | **result** |
false | false | _**false**_ |
true | false | _**true**_ |
false | true | _**true**_ |
true | true | _**true**_ |
notes: day = "Saturday"
if day == "Saturday" || day == "Sunday" puts "C'est le week end !" end
vvv
result = !a
a | **result** |
false | _**true**_ |
true | _**false**_ |
notes: sunny = true
if !sunny puts "Bon finalement, on va pas à la mer" end
vvv
for number in 1..10
puts number
end
vvv
counter = 1
while counter < 20
puts counter
counter = counter + 1
end
counter = 23
until counter % 10 == 0
counter = counter + 1
end
puts counter
⚠ Attention aux boucles infinies ! ⚠
notes: Faire tourner les boucles au tableau exercice multiplication
counter = 1
while counter < 11
puts counter * 7
counter = counter + 1
end
vvv
students = ["sarah", "guillaume", "maël", "marine", "pierre", "camille"]
students.each do |student|
puts student.capitalize
end
Arranger la logique par boite noire
def hello_world
puts "Bonjour tout le monde !"
end
hello_world
def greetings(name)
puts "Bonjour " + name
end
greetings("Pierre")
"Tout est objet."
notes: Language orienté objets. Il existe des languages impératifs, des langages fonctionnels...
vvv
Caractéristiques | Comportements |
---|---|
Marque : `Simca` | `Démarrer` |
Couleur : `rouge` | `Tourner à droite` |
... | ... |
notes: Un objet est une entité qui contient des informations et des mécanismes concernant un sujet, manipulés dans un programme
notes:
# TODO
# - Le programme choisi un nombre entre 1 et 50
# et demande à l'utilisateur de renseigner un nombre entre 1 et 50
#
# - Si l'utilisateur trouve le bon 'prix', il gagne
# Sinon le programme l'aide en lui disant '+' ou '-'
vvv
# Expected result:
sum(2, 5)
# => 7
sum(36, 6)
# => 42
# Indice et Pseudocode
def sum(a, b)
# sum a and b
# return result
end
vvv
# Solution
def sum(a, b)
c = a + b
return c
end
sum(2, 5)
sum(36, 6)
vvv
# Expected result:
grant_access("123456")
# => "Accès refusé"
grant_access("LeWagon")
# => "Bienvenue, vous allez changer de vie"
# Indice et Pseudocode
def grant_access(given_password)
real_password = "LeWagon"
# Si le mot de passe donné est même que le bon mot de passe :
puts "...?" # j'affiche le message de bienvenue
# sinon
puts "...?" # j'affiche le message d'accès refusé
# fin
end
vvv
# Solution
def grant_access(given_password)
real_password = "LeWagon"
if given_password == real_password
puts "Bienvenue, vous allez changer de vie"
else
puts "Accès refusé"
end
end
grant_access("123456")
grant_access("LeWagon")
vvv
`author` | `content` | `date` |
vvv
Le hash 📔 !
tweet = {
"author" => "nantes.rb",
"content" => "RailsGirls c'est trop cool ! 🤩",
"date" => "20 septembre"
}
Résultat attendu 🖥
nantes.rb - 20 20 septembre
> RailsGirls c'est trop cool ! 🤩
---
Code ⌨
puts tweet["author"] + ' - ' + tweet["date"]
puts '> ' + tweet["content"]
puts '---'
vvv
vvv
Comment ? 🤔
Un `array`
de hashes
tweets = [
{
"author" => "nantes.rb",
"content" => "RailsGirls c'est trop cool ! 🤩",
"date" => "20 septembre"
},
{
"author" => "Le Wagon Nantes & Rennes",
"content" => "Prochaine session le 14 octobre à Nantes 😍",
"date" => "20 septembre"
},
{
"author" => "Clever Cloud",
"content" => "Clever Cloud est fier de participer au Rails Gilrs de Nantes 🚀",
"date" => "20 septembre"
}
]
vvv
Résultat attendu 🖥
nantes.rb - 20 septembre
> RailsGirls c'est trop cool ! 🤩
---
e Wagon Nantes & Rennes - 20 septembre
> Aujourd'hui, on lance officiellement Le Wagon Executive 😍
---
Clever Cloud - 20 septembre
> Clever Cloud est fier de participer au Rails Gilrs de Nantes 🚀
---
Code ⌨
for tweet in tweets # OU tweets.each do |tweet|
puts tweet["author"] + ' - ' + tweet["date"]
puts '> ' + tweet["content"]
puts '---'
end
vvv