module Settingify::DSL

Public Instance Methods

group(name, &block) click to toggle source
# File lib/settingify/dsl.rb, line 9
def group(name, &block)
  Builders::Group.call(name, &block)
end
setting(name, type: String, default: '') click to toggle source
# File lib/settingify/dsl.rb, line 3
def setting(name, type: String, default: '')
  setting_item = build_setting_item(name, type, default)
  register_setting setting_item
  define_setting setting_item
end

Private Instance Methods

build_setting_item(name, type, default) click to toggle source
# File lib/settingify/dsl.rb, line 15
def build_setting_item(name, type, default)
  RepoItem.new(name, type, default)
end
define_setting(setting_item) click to toggle source
# File lib/settingify/dsl.rb, line 19
def define_setting(setting_item)
  Settingify.singleton_class.instance_eval do
    define_method setting_item.name do
      Reader.new(setting_item).call
    end
  end
end
register_setting(setting_item) click to toggle source
# File lib/settingify/dsl.rb, line 27
def register_setting(setting_item)
  Settingify::Repos::Settings.instance.add setting_item
end