module SettingsOnRails::Base::ClassMethods

Public Instance Methods

has_settings(*keys) { |settings| ... } click to toggle source
# File lib/settings_on_rails/base.rb, line 26
def has_settings(*keys)
  settings = HasSettings.new(keys, self, Configuration::DEFAULTS_COLUMN)
  yield settings if block_given?

  settings
end
has_settings_on(column, options = {}, &block) click to toggle source
# File lib/settings_on_rails/base.rb, line 6
def has_settings_on(column, options = {}, &block)
  Configuration.init(self, column)

  method_name = options[:method] || :settings
  define_method method_name do |*keys|
    column = Configuration.check!(self)

    settings = Settings.new(keys, self, column, method_name)
    node = settings._current_node

    if node.nil? || node.is_a?(Hash)
      settings
    else
      node
    end
  end

  has_settings(&block)
end