This exercise is intended to help you assess your progress with the concepts and techniques we've covered during the week.
For these questions, write a short description or snippet of code that meets the requirement. In cases where the question mentions a "given" data value, use the variable given to refer to it (instead of re-writing the information).
You can instantiate instances of classes but not modules.
First, create a module Doughy
which defines a method has_carbs?
that always returns true. Then, given the following Pizza class, update Pizza to use your new Doughy module to gain the defined has_carbs?
behavior.
module Doughy
def has_carbs?
true
end
end
class Pizza
include Doughy
def tasty?
true
end
end
-
Modules allow us to lump related classes together via the namespacing technique. This helps us better organize our code.
-
Modules allow us to "mix-in" methods to a class, which is helpful for DRY and organization.
false nil
true 0 "false"
GET POST DELETE
- HTTP Verb
POST
- Request Path
/students
- Query Parameters
name=horace
POST /students?name=horace HTTP/1.1
Host: 127.0.0.1:9292
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
What is the full request URL?
/students?name=horace
- Switch to an existing branch iteration-1
git checkout iteration-1
- Create a new branch iteration-2
git branch iteration-2
- Push a branch iteration-2 to a remote origin
git push origin iteration-2
- Merge a branch iteration-1 into a branch master (assume you are not on master to begin with)
git checkout master
git merge iteration-1
Given a project with the following directory structure, give 2 ways that we could require file_one from file_two.
. <you are here>
├── lib
│ │── file_one.rb
│ └── file_two.rb
require './lib/file_one'
require_relative 'file_one'
10. Refactoring: given the following snippet of code, show 2 refactorings you might make to improve the design of this code.
class Encryptor
def date_offset
date = Time.now.strftime("%d%m%y").to_i
date_squared = date ** 2
last_four_digits = date_squared.to_s[-4..-1]
[last_four_digits[-4].to_i,
last_four_digits[-3].to_i,
last_four_digits[-2].to_i,
last_four_digits[-1].to_i]
end
end
Encryptor.new.date_offset
Refactor 1
class Encryptor
def date_offset
date = Time.now.strftime("%d%m%y").to_i
date_squared = date ** 2
last_four_digits = date_squared.to_s[-4..-1]
last_four_digits.map!(&:to_i)
end
end
Encryptor.new.date_offset
Refactor 2
class Encryptor
def date_offset
date_squared = square_date
last_four_digits = date_squared.to_s[-4..-1]
last_four_digits.map!(&:to_i)
end
def square_date
date = Time.now.strftime("%d%m%y").to_i
date ** 2
end
end
Encryptor.new.date_offset