class Anyway::Settings::Future

Future encapsulates settings that will be introduced in the upcoming version with the default values, which could break compatibility

Attributes

store[R]

Public Class Methods

new() click to toggle source
# File lib/anyway/settings.rb, line 31
def initialize
  @store = {}
end
setting(name, default_value) click to toggle source
# File lib/anyway/settings.rb, line 14
def setting(name, default_value)
  settings[name] = default_value

  define_method(name) do
    store[name]
  end

  define_method(:"#{name}=") do |val|
    store[name] = val
  end
end
settings() click to toggle source
# File lib/anyway/settings.rb, line 26
def settings
  @settings ||= {}
end

Public Instance Methods

use(*names) click to toggle source
# File lib/anyway/settings.rb, line 35
def use(*names)
  store.clear
  names.each { store[_1] = self.class.settings[_1] }
end