Created
April 25, 2018 09:49
-
-
Save rikas/d29f999d3989fde58d141925a2f07d47 to your computer and use it in GitHub Desktop.
Classes & instances
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# car.rb | |
# filename - lower_snake_case | |
# class name - UpperCamelCase | |
class Car | |
attr_reader :brand | |
# attr_reader :brand | |
# attr_writer :color | |
# same as attr_writer + attr_reader | |
attr_accessor :color | |
# contructor or initializer | |
def initialize(color, brand) | |
# puts "VROOOOOM" | |
# DATA (instance variables) | |
@engine_started = false # boolean | |
@color = color # String | |
@brand = brand # String | |
end | |
# BEHAVIOUR (instance methods) | |
def engine_started? | |
@engine_started | |
end | |
def start_engine | |
spark_sparkplugs | |
inject_fuel | |
make_vroom_sound | |
@engine_started = true | |
puts "BOOOOOM" | |
end | |
# from this point on every method is private | |
private | |
def inject_fuel | |
puts "PSSSSSSSSS" | |
end | |
def spark_sparkplugs | |
puts "TSSKKKKKK" | |
end | |
def make_vroom_sound | |
puts "VROOOOOOOOM" | |
end | |
# explicit getter / reader | |
# exactly the same as attr_reader :color | |
# def color | |
# @color | |
# end | |
# def brand | |
# @brand | |
# end | |
# explicit setter / writer | |
# exactly the same as attr_writer :color | |
# def color=(color) | |
# @color = color | |
# end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# car_test.rb | |
require_relative 'car' | |
# create a new Car instance | |
my_car = Car.new('blue', 'peugeout') | |
#your_car = Car.new('red') | |
puts "Car is running? -> #{my_car.engine_started?}" | |
puts "My car is #{my_car.color} #{my_car.brand}" | |
# paint my car | |
# my_car.color=("green") | |
my_car.color = "green" | |
# my_car.brand = 'fiat' | |
#p my_car | |
#puts "My car is #{your_car.color}" | |
#my_car.start_engine | |
#my_car.inject_fuel | |
#my_car.spark_sparkplugs | |
#my_car.make_vroom_sound | |
# puts "Car is running? -> #{my_car.engine_started?}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'pry-byebug' | |
# 1. gem install pry-byebug | |
# 2. require 'pry-byebug' | |
# 3. binding.pry | |
# | |
# commands: | |
# * help - list commands | |
# * next - stops at next line of code | |
# * continue - stops at the end or at another binding.pry | |
def full_name(first, last) | |
first_name = first.capitalize | |
# p first_name | |
# binding.pry or byebug | |
last_name = last.capitalize | |
"#{first_name} #{last_name}" | |
end | |
puts full_name('ricardo', 'otero') | |
binding.pry | |
puts "FINISH!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment