Configuración de los ajustes de configuración al escribir una gema

Estoy escribiendo una gema con la que me gustaría trabajar y sin el entorno de Rails.

tengo unConfiguration Clase para permitir la configuración de la gema:

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

Esto ahora puede ser usado como tal:

NameChecker.configure do |config|
  config.api_key = 'dfskljkf'
end

Sin embargo, parece que no puedo acceder a mis variables de configuración a partir de las otras clases en mi gema. Por ejemplo, cuando configuro la gema en mispec_helper.rb al igual que:

# spec/spec_helper.rb
require "name_checker"

NameChecker.configure do |config|
  config.api_key = 'dfskljkf'
end

y referencia la configuración de mi código:

# lib/name_checker/net_checker.rb
module NameChecker
  class NetChecker
    p NameChecker.configuration.api_key
  end
end

Me sale un error de método indefinido:

`<class:NetChecker>': undefined method `api_key' for nil:NilClass (NoMethodError)

¿Qué está mal con mi código?

Respuestas a la pregunta(2)

Su respuesta a la pregunta