Ruby モジュールを使用して、一連の構成の既定値を保存したいと考えています。
値の使用に問題があり、誰かが助けてくれることを願っています。
これはこれを行うための最良の方法ではないかもしれませんが、これが私がこれまでに思いついたことです。
個人の Resume => resume.rb の値を保持するモジュールを次に示します。
module Resume
require 'ostruct'
attr_reader :personal, :education
@personal = OpenStruct.new
@education = Array.new
def self.included(base)
set_personal
set_education
end
def self.set_personal
@personal.name = "Joe Blogs"
@personal.email_address = 'joe.blogs@gmail.com'
@personal.phone_number = '5555 55 55 555'
end
def self.set_education
@education << %w{ School\ 1 Description\ 1 }
@education << %w{ School\ 2 Description\ 2 }
end
end
irb からは正常に動作します:
% irb -I .
1.9.3-p194 :001 > require 'resume'
=> true
1.9.3-p194 :002 > include Resume
=> Object
1.9.3-p194 :003 > puts Resume.personal.name
Joe Blogs
=> nil
ただし、これをクラスに含めると、エラーがスローされ、エラー => build.rb
require 'resume'
class Build
include Resume
def build
puts Resume.personal.name
end
end
irb より:
% irb -I .
1.9.3-p194 :001 > require 'build'
=> true
1.9.3-p194 :002 > b = Build.new
=> #<Build:0x00000001d0ebb0>
1.9.3-p194 :003 > b.build
NoMethodError: undefined method `personal' for Resume:Module
from /home/oolyme/projects/lh_resume_builder_ruby/build.rb:7:in `build'
from (irb):3
from /home/oolyme/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
Build クラス インスタンスにインクルード モジュール変数を出力するためにいくつかのバリエーションを試しましたが、すべてエラーになります。