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).
Modules do not keep track of state/status, classes do (via instance variables).
First, create a module Doughy
which defines a method
has_carbs?
that always returns true
.
module Doughy
def has_carbs?
true
end
end
Then, given the following Pizza
class:
class Pizza
def tasty?
true
end
end
Update Pizza
to use your new Doughy
module to gain
the defined has_carbs?
behavior.
class Pizza
include Doughy
def tasty?
true
end
end
pizza = Pizza.new
pizza.has_carbs?
Given the following class and Module:
module Nonprofit
def tax_exempt?
true
end
end
class Turing
end
Write code that enables the Turing
class to use the Nonprofit
module
to allow the following behavior:
Turing.tax_exempt?
=> true
module Nonprofit
def tax_exempt?
true
end
end
class Turing
include Nonprofit
end
GET, POST, and HEAD
Given the following HTTP Request:
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
Identify the:
- HTTP Verb
- Request Path
- Query Parameters
- POST
- /students
- ?name=horace
Additionally, give the full request URL:
127.0.0.1:9292/students?name=horace
Give a git command to accomplish each of the following:
- Switch to an existing branch
iteration-1
- Create a new branch
iteration-2
- Push a branch
iteration-2
to a remoteorigin
- Merge a branch
iteration-1
into a branchmaster
(assume you are not onmaster
to begin with)
git checkout iteration-1
git branch iteration-2
- (from iteration-2)
git push origin master
git checkout master
thengit merge iteration-1
Given a project with the following directory structure:
. <you are here>
├── lib
│ │── file_one.rb
│ └── file_two.rb
Give 2 ways that we could require file_one
from file_two
.
require './lib/file_two'
require_relative '../lib/file_two'
Given the following snippet of 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
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.chars.map(&:to_i)
end
end
Encryptor.new.date_offset
class Encryptor
def date_offset
date = (Time.now.strftime("%d%m%y").to_i) ** 2
date.to_s[-4..-1].chars.map(&:to_i)
end
end
Encryptor.new.date_offset