概要
メソッドの役割
詳細
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)