Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 428 Bytes

File metadata and controls

33 lines (25 loc) · 428 Bytes

Ruby Configuration Pattern Notes

Inside the configuration class

class Configuration
  attr_accessor :bar

  def initializer
    @bar = 'baz'
  end
end

Inside the base Foo module

require('configuration')

module Foo
  class << self
    attr_writer :configuration
  end

  def self.configuration
    @_configuration ||= Configuration.new
  end

  def self.configure
    yield(configuration)
  end
end