class Racket::Settings::Application

Class for storing application settings.

Public Class Methods

directory_setting(symbol, directory) click to toggle source

Creates a directory setting with a default value.

@param [Symbol] symbol @param [String] directory @return [nil]

# File lib/racket/settings/application.rb, line 52
def self.directory_setting(symbol, directory)
  define_directory_method(symbol, "@#{symbol}".to_sym, directory)
  attr_writer(symbol) && nil
end
new(utils, defaults = {}) click to toggle source
Calls superclass method
# File lib/racket/settings/application.rb, line 42
def initialize(utils, defaults = {})
  @utils = utils
  super(defaults)
end
service(options = {}) click to toggle source

Returns a service proc that can be used by the registry.

@param [Hash] options @return [Proc]

# File lib/racket/settings/application.rb, line 38
def self.service(options = {})
  ->(reg) { new(reg.utils, options) }
end

Private Class Methods

define_directory_method(symbol, ivar, directory) click to toggle source
# File lib/racket/settings/application.rb, line 57
def self.define_directory_method(symbol, ivar, directory)
  define_method symbol do
    instance_variable_set(ivar, directory) unless instance_variables.include?(ivar)
    return nil unless (value = instance_variable_get(ivar))
    @utils.build_path(value)
  end
end