Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Introduction | メソッドの役割

概要

メソッドの役割

詳細

Confident Rubyではメソッド役割を以下のように定義しています。
・Collecting Inputs(引数チェック、変換など)
・Performing Work(主処理)
・Delivering Results(戻り値に関わる処理)
・Handling Failure(例外処理)

サンプル仕様

FizzBuzzプログラム

サンプルコード

def fizz_buzz(number, output_type = :Array)
  # Collecting Inputs
  return unless number.is_a? Fixnum

  # Performing Work Start
  result = []
  (1..number).each do |i|
    if i % 3 == 0 && i % 5 == 0
      result << "fizzbuzz"
    elsif i % 3 == 0
      result << "fizz"
    elsif i % 5 == 0
      result << "buzz"
    else
      result << i
    end
  end
  # Performing Work End

  # Delivering Results Start
  case output_type
  when :Array
    result
  when :String
    result.join(' ')
  else
    # Handling Failure
    fail "invalid output_type #{output_type}"
  end
  # Delivering Results End
end

print fizz_buzz(30)
puts
print fizz_buzz(30, :String)

# raise error `fizz_buzz': invalid output_type Integer (RuntimeError)
# print fizz_buzz(30, :Integer)