Small methods make a project easier to scan, test, and reuse.

Method Extraction

method_extraction.rb
def invoice_total(subtotal, tax_rate)
  tax = (subtotal * tax_rate).round
  subtotal + tax
end

subtotal = 
tax_rate = 0.1
total = invoice_total(subtotal, tax_rate)
label = total >= 100 ? "large" : "standard"

puts "subtotal=#{subtotal}"
puts "tax_rate=#{tax_rate}"
puts "total=#{total}"
puts "label=#{label}"
def invoice_total(subtotal, tax_rate)
  tax = (subtotal * tax_rate).round
  subtotal + tax
end

subtotal = 
tax_rate = 0.1
total = invoice_total(subtotal, tax_rate)
label = total >= 100 ? "large" : "standard"

puts "subtotal=#{subtotal}"
puts "tax_rate=#{tax_rate}"
puts "total=#{total}"
puts "label=#{label}"
def invoice_total(subtotal, tax_rate)
  tax = (subtotal * tax_rate).round
  subtotal + tax
end

subtotal = 
tax_rate = 0.1
total = invoice_total(subtotal, tax_rate)
label = total >= 100 ? "large" : "standard"

puts "subtotal=#{subtotal}"
puts "tax_rate=#{tax_rate}"
puts "total=#{total}"
puts "label=#{label}"
extraction Move repeated calculations into a named method so the calling code reads like a sequence of decisions.