Sha256: 962863eefd872bc06625b715aaa29f97d7e63120915a472fd657713e11864568
Contents?: true
Size: 1.79 KB
Versions: 2
Compression:
Stored size: 1.79 KB
Contents
module ActiveadminSettings module SettingMethods def self.included(base) base.mount_uploader :file, ActiveadminSettings::SettingsFileUploader # Validators base.validates_presence_of :name base.validates_uniqueness_of :name base.validates_length_of :name, minimum: 1 base.extend ClassMethods end # Class module ClassMethods def initiate_setting(name) s = self.new(name: name) if s.type == "text" or s.type == "html" s.string = s.default_value end s.save s end end # Instance def type (ActiveadminSettings.all_settings[name]["type"] ||= "string").to_s end def description (ActiveadminSettings.all_settings[name]["description"] ||= "").to_s end def default_value val = (ActiveadminSettings.all_settings[name]["default_value"] ||= "").to_s if type == "file" and not val.include? '//' val = ActionController::Base.helpers.asset_path(val) end val end def value val = respond_to?(type) ? send(type).to_s : send(:string).to_s val = default_value if val.empty? val.html_safe end end if defined?(Mongoid) class Setting include Mongoid::Document include Mongoid::Timestamps include Mongoid::Globalize # Fields field :name translates do field :string, :default => "" fallbacks_for_empty_translations! end include SettingMethods def self.[](name) find_or_create_by(:name => name).value end end else class Setting < ActiveRecord::Base include SettingMethods attr_accessible :name, :string, :file def self.[](name) find_or_create_by_name(name).value end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activeadmin-settings-0.4.1 | app/models/activeadmin_settings/setting.rb |
activeadmin-settings-0.4.0 | app/models/activeadmin_settings/setting.rb |