###前提・実現したいこと
module Kazをmodule Test2にincludeして
名前を小文字で出力したい。
###発生している問題・エラーメッセージ
現状では、Classにincludeすれば予想通りに小文字(”car”)が出力されるが、
moduleにincludeすると大文字(”Car”)で標示される。
###該当のソースコード
module Kaz listA = ["Car", "Train"] # method generate listA.each do |c| define_method "#{c}" do eval "#{c}.new" end end # class generate listA.each do |vahi| Object.const_set vahi, Class.new(){ attr_accessor :name def initialize @name = self.class.name.downcase end } end end class Test include Kaz end a = Test.new p a.Car.name => "car" module Test2 include Kaz p Car.name=> "Car" end
###補足情報(言語/FW/ツール等のバージョンなど)
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/20 05:23
2017/02/20 12:19