Skip to content

Instantly share code, notes, and snippets.

# 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 / 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)
@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_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 / 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 / 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 / 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 / lambda_vs_method.rb
Created August 19, 2015 22:36
Lambda vs Method
def query_leap_year(year)
year % 400 == 0 || year % 100 != 0 && year % 4 == 0
end
def year_in_minutes(year)
60 * 24 * (query_leap_year(year) ? 366 : 365)
end
##########
# VERSUS #
@eternal44
eternal44 / leap_year.rb
Last active August 29, 2015 14:27
Leap year exercise
# doctest: correct century leap year
# >> query_leap_year[400]
# => true
# doctest: false century leap year
# >> query_leap_year[300]
# => false
# doctest: correct normal leap year
# >> query_leap_year[304]
# => true
# doctest: normal year tests false
@eternal44
eternal44 / gist:629b22968c7bd7c0cc76
Created August 19, 2015 20:22
Adapted design pattern
app/models/group.rb
app/group/archive.rb
app/group/membership.rb
...