RubyGold試験の勉強の時に作成した自習問題
・過去に作成したものなのでコードの説明はありません(出来ない…)。
・実行結果をコメントとして記述しています(コード #=> 結果)。
・右往左往しているのでコードにもコメント化している箇所があります。

→ 「他の問題


#! ruby -Ks

#------------------------------------------------------------
# Goldメトレ56.rb
# ■何を確認したいのか忘れました2
#------------------------------------------------------------
#

#--------------------------------------------------
# Define
#------------------------------
class Log

  [:debug, :info, :notice].each do |level|
    define_method(level) do
      @state = level
    end
  end

  attr_reader :state

end

class Log
  [:debug].each do |level|
    define_method(level) do      # :25: warning: method redefined; discarding old debug
                                 # :14: warning: previous definition of debug was here
      @state = level
    end
  end

end


=begin
class Log

  [:debug, :info, :notice].each do |level|
    define_method(level) {  # do  → {
      @state = level
    }                       # end → }
  end

  attr_reader :state

end
=end


#--------------------------------------------------
# Execute
#------------------------------
log = Log.new
log.debug
p log.state     #=> :debug
puts log.state  #=> debug

log.info
p log.state  #=> :info

log.notice
p log.state  #=> :notice

#------------------------------------------------------------
# END
#------------------------------------------------------------