lib/activeadmin_settings_cached/dsl.rb
def active_admin_settings_page(options = {}, &block)
      options.assert_valid_keys(*ActiveadminSettingsCached::Options::VALID_OPTIONS)

      options = ActiveadminSettingsCached::Options.options_for(options)
      coercion =
        ActiveadminSettingsCached::Coercions.new(options[:template_object].defaults, options[:template_object].display)

      content title: options[:title] do
        render partial: options[:template], locals: { settings_model: options[:template_object] }
      end

      page_action :update, method: :post do
        settings_params = params.require(:settings).permit!

        coercion.cast_params(settings_params) do |name, value|
          options[:template_object].save(name, value)
        end

        flash[:success] = t('activeadmin_settings_cached.settings.update.success'.freeze)
        Rails.version.to_i >= 5 ? redirect_back(fallback_location: admin_root_path) : redirect_to(:back)
        options[:after_save].call if options[:after_save].respond_to?(:call)
      end

      instance_eval(&block) if block_given?
    end
def active_admin_settings_page(options = {}, &block)
      options.assert_valid_keys(*ActiveadminSettingsCached::Options::VALID_OPTIONS)

      options = ActiveadminSettingsCached::Options.options_for(options)
      coercion =
        ActiveadminSettingsCached::Coercions.new(options[:template_object].defaults, options[:template_object].display)

      content title: options[:title] do
        render partial: options[:template], locals: { settings_model: options[:template_object] }
      end

      page_action :update, method: :post do
        settings_params = params.require(:settings).permit!

        coercion.cast_params(settings_params) do |name, value|
          options[:template_object].save(name, value)
        end

        flash[:success] = t('activeadmin_settings_cached.settings.update.success'.freeze)
        Rails.version.to_i >= 5 ? redirect_back(fallback_location: admin_root_path) : redirect_to(:back)
        options[:after_save].call if options[:after_save].respond_to?(:call)
      end

      instance_eval(&block) if block_given?
    end
def active_admin_settings_page ( options = { } , & block ) options . assert_valid_keys ( ActiveadminSettingsCached :: Options :: VALID_OPTIONS ) options = ActiveadminSettingsCached :: Options . options_for ( options ) coercion = ActiveadminSettingsCached :: Coercions . new ( options [ :template_object ] . defaults , options [ :template_object ] . display ) content title : options [ :title ] do render partial : options [ :template ] , locals : { settings_model : options [ :template_object ] } end page_action :update , method : :post do settings_params = params . require ( :settings ) . permit! coercion . cast_params ( settings_params ) do | name , value | options [ :template_object ] . save ( name , value ) end flash [ :success ] = t ( 'activeadmin_settings_cached.settings.update.success' . freeze ) Rails . version . to_i >= 5 ? redirect_back ( fallback_location : admin_root_path ) : redirect_to ( :back ) options [ :after_save ] . call if options [ :after_save ] . respond_to? ( :call ) end instance_eval ( block ) if block_given? end
Declares settings function.

 @api public

 @param [Hash] options
 @option options [String] :model_name, settings model name override (default: uses name from global config.)
 @option options [String] :starting_with, each key must starting with, (default: nil)
 @option options [String] :key, root key can be replacement for starting_with, (default: nil)
 @option options [String] :template custom, template rendering (default: 'admin/settings/index')
 @option options [String] :template_object, object to use in templates (default: ActiveadminSettingsCached::Model instance)
 @option options [String] :display, display settings override (default: nil)
 @option options [String] :title, title value override (default: I18n.t('settings.menu.label'))
 @option options [Proc] :after_save, callback for action after page update, (default: nil)
Declares settings function .