Skip to content

Instantly share code, notes, and snippets.

@eternal44
eternal44 / 1_week_3c_text_formatting.rb
Last active August 29, 2015 14:27
Multiplication table generator - after
# This method generates a multiplication table.
class Table
def generate_table(
table_size,
title = '',
decoration = ''
)
result = ''
heading = "Times table to #{table_size}\n"
@eternal44
eternal44 / 1_week_3c_text_formatting.rb
Created August 20, 2015 20:43
Multiplication table generator - after
# This method generates a multiplication table.
class Table
def generate_table(x, y='y', z='y')
# set up parameters for table
arr2 = arr1 = (1..x).to_a
col_size = (arr2[-1] * arr2[-1]).to_s.size
table = ""
border = 0
length = ""
@eternal44
eternal44 / temperature_conversions.rb
Created August 21, 2015 02:24
Design pattern example for temperature conversions
def kelvin_to_rankine(value)
value * 1.8
end
def rankine_to_kelvin(value)
value / 1.8
end
def rankine_to_celcius(value)
value_holder = rankine_to_kelvin(value)
@eternal44
eternal44 / 2_week_1e_split_a_string.rb
Created August 21, 2015 23:44
Refactored exercise
# doctest: correct output
# >> split_message("Welcome to the forum.\nHere you can learn Ruby.\n"\
# "Along with other members.\n")
# => ["Line 1: Welcome to the forum.", "Line 2: Here you can learn Ruby.", "Line 3: Along with other members."]
def split_message(message)
message.split("\n").collect.with_index { |i, j| "Line #{j + 1}: " + i }
end
split_message("Welcome to the forum.\nHere you can learn Ruby.\n"\
@eternal44
eternal44 / puts_vs_return.rb
Created August 22, 2015 01:29
A quick demo of the difference between puts & return for calling methods
def addstring(x,y)
z = x + y
return z
end
def putstring(x,y)
z = x + y
puts z
end
@eternal44
eternal44 / 2_week_2c_logic_challenge.rb
Created August 22, 2015 04:51
Ternary substitute
# doctest: get ternary equivalent when true
# >> ternary(3 > 1,"hello",3)
# => "hello"
# doctest: get ternary equivalent when false
# >> ternary(3 < 1,"hello",3)
# => 3
def ternary(statement, true_result, false_result)
(true_result if statement == true) ||
(false_result if statement == false)
# prints line numbers before each line & aligns the ":"
class ListGenerator
def column_alignment(lines)
lines.map.with_index(1) do |output, line_number|
"Line #{number_spacing(lines, line_number)}#{line_number}:"\ # rewrite method calls
"#{line_spacing(output, lines)}#{output}" # rewrite method calls
end
end
@eternal44
eternal44 / 3c_column-string_alignment.rb
Created August 23, 2015 20:41
Comparing "each_line" with "collect"
def split_message(message)
output_line = ""
message.each_line.with_index(1) do |line, index|
output_line << "Line #{index}: #{line}"
end
output_line
end
@eternal44
eternal44 / 2c_formal_logic_challenge.rb
Last active August 29, 2015 14:28
Alternative ternary statement - without "if" statement
# no "if" statement
def ternary(statement, true_result, false_result)
(true && statement) && true_result || false_result
end
@eternal44
eternal44 / 3c_column-string_alignment.rb
Created August 23, 2015 23:12
Refactor challenge to use correct input & output layout
# prints line numbers before each line & aligns the ":"
class ListGenerator
def column_alignment(lines)
lines = lines.split("\n")
lines.map.with_index(1) do |output, line_number|
"Line #{number_spacing(lines, line_number)}#{line_number}: "\
"#{output}"
end