私はRails環境で、またRails環境なしで作業したい宝石を書いています。宝石を書くときの設定を設定する
私は宝石の設定を可能にするConfiguration
クラスを持っている:
module NameChecker
class Configuration
attr_accessor :api_key, :log_level
def initialize
self.api_key = nil
self.log_level = 'info'
end
end
class << self
attr_accessor :configuration
end
def self.configure
self.configuration ||= Configuration.new
yield(configuration) if block_given?
end
end
これは今では同じように使用することができます。
NameChecker.configure do |config|
config.api_key = 'dfskljkf'
end
しかし、私がアクセスできるようには思えません私の構成変数は私の宝石の他のクラスとの関係からです。
# spec/spec_helper.rb
require "name_checker"
NameChecker.configure do |config|
config.api_key = 'dfskljkf'
end
と私のコードから設定を参照します:私はそうのように私のspec_helper.rb
に宝石を設定するとき例えば、
# lib/name_checker/net_checker.rb
module NameChecker
class NetChecker
p NameChecker.configuration.api_key
end
end
私は未定義のメソッドのエラーを取得:
`<class:NetChecker>': undefined method `api_key' for nil:NilClass (NoMethodError)
私のコードで何が間違っていますか?
ここで興味がある可能性があり、他人のために宝石を設定に関する記事があります.thoughtbot.com/mygem-configure-block – Rimian