Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jon week4 #62

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions week3/homework/calculator.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
class Calculator
def sum(values)
values.inject(0) { |result, next_val| result + next_val }
end
def multiply(*values)
values_list = Array.new
if (values.first.kind_of?(Array))
values_list += values.first
else
values_list += values
end
values_list.inject { |result, next_val| result * next_val }
end

def pow(base, exponent)
result = 1
exponent.times{ result *= base }
result
end

def fac(value)
value == 0 ? 1 : (1..value).inject { |result, next_val| result * next_val }
end
end
14 changes: 14 additions & 0 deletions week3/homework/questions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,24 @@ Please Read:

1. What is a symbol?

A: A symbol is Ruby's immutable string-like unique primative, used when creating a variable that stands for something significant, much like enumerables in other languages. An example might be creating a symbol for each direction like :up, :down, :left. :right.

2. What is the difference between a symbol and a string?

A: Strings are mutable, symbols are immutable.

3. What is a block and how do I call a block?

A: Blocks are chunks of code inbetween delimeters, curly braces or keywords 'do' and 'end'. Blocks are called with a method name, code wrapped in the do and end keywords and any parameters passed to the block with pipes '|' on either side.

method_name {|parameter| parameter.work}

4. How do I pass a block to a method? What is the method signature?

A: You can pass a block to a method by immediately including a block following a method name. The method signature does not have to be special, and does not have to take any special parameters. However to emit values to a block, the method definition needs to contain the yield keyword.

method_name {|parameter| parameter.work}

5. Where would you use regular expressions?

A: Regular expressions are used in any situation that calls for string finding/matching. Regex's can be used for user input validation, manipulation/searching of large text files, or even extraction of values from unstructured data.
18 changes: 18 additions & 0 deletions week4/homework/questions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,28 @@ The Rake Gem: http://rake.rubyforge.org/

1. How does Ruby read files?

A: Call File.open on the file in the file system, and then use a block to call something on the file object iterator, typically something like the each_line method. Each line will yield a string value for line of the file.

File.open("aFile.txt") do |file|
file.each_line {|line| puts line }
end

2. How would you output "Hello World!" to a file called my_output.txt?

A: Call File open on my_output.txt, passing a "w" for as the mode param (write), and then call puts "Hello World!" on the resulting file object.

File.open("my_output.txt" "w") do |file|
file.puts "Hello World!"
end

3. What is the Directory class and what is it used for?

A: The directory class is a standard ruby library class that represent directories (folders) within a host machine's local file system. It provides multiple methods to enumerate directories and files within those directories.

4. What is an IO object?

A: An IO object is a bidirectional channel between a Ruby program and external resources like files or sockets. Files and sockets are subclasses of the IO object and support similar interfaces.

5. What is rake and what is it used for? What is a rake task?

A: Rake is a build utility that is used to provide an easy to use domain specific language to define/automate common tasks that a developer may commonly run within a ruby project. A rake task is similar to a function, you can call a particular rake task by name and it will run whatever operations defined for that task. A task example might be setting some environment variable used by a ruby program.
7 changes: 7 additions & 0 deletions week4/homework/worker.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module Worker
def self.work(n = 1)
val = nil
n.times {val = yield}
return val
end
end