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).
Classes have to be instantantiated to be used, Modules cannot be instantiated.
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 can be used to hold methods that will be used in multiple classes. A module's methods can be used across classes. This is a powerful tool to reduce repetition.
Modules can also be used for namespacing but I'm still not exactly sure what the benefits of that are.
nil, false
true, strings, integers
get, post, ??? delete?
- HTTP Verb
- Request Path
- Query Parameters
POST
/students?
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?
\n127.0.0.1:9292/students?name=horace
- Switch to an existing branch iteration-1
- Create a new branch iteration-2
- Push a branch iteration-2 to a remote origin
- Merge a branch iteration-1 into a branch master (assume you are not on master to begin with)
git checkout iteration-1
git branch iteration-2
git push origin iteration-2
git merge master
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
def date_offset_refactor
date = Time.now.strftime("%d%m%y").to_i
(date ** 2).to_s[-4..-1].chars.map { |number| number.to_i}
end
end
Encryptor.new.date_offset_refactor