Module: RailsAdminSettings

Defined in:
lib/rails_admin_settings.rb,
lib/rails_admin_settings/kinds.rb,
lib/rails_admin_settings/dumper.rb,
lib/rails_admin_settings/engine.rb,
lib/rails_admin_settings/mongoid.rb,
lib/rails_admin_settings/uploads.rb,
lib/rails_admin_settings/version.rb,
lib/rails_admin_settings/fallback.rb,
lib/rails_admin_settings/namespaced.rb,
lib/rails_admin_settings/processing.rb,
lib/rails_admin_settings/validation.rb,
app/models/rails_admin_settings/setting.rb,
app/models/rails_admin_settings/setting.rb,
lib/rails_admin_settings/require_helpers.rb,
lib/rails_admin_settings/rails_admin_config.rb,
lib/rails_admin_settings/hex_color_validator.rb,
lib/rails_admin_settings/storage/carrierwave.rb,
lib/generators/rails_admin_settings/migration_generator.rb

Defined Under Namespace

Modules: Dumper, Mongoid, Processing, RailsAdminConfig, RequireHelpers, Uploads, Validation Classes: Engine, Fallback, HexColorValidator, MigrationGenerator, Namespaced, PersistenceException, Setting

Constant Summary collapse

VERSION =
"1.0.1"

Class Method Summary collapse

Class Method Details

.active_record?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/rails_admin_settings.rb', line 17

def active_record?
  orm == :active_record
end

.kindsObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/rails_admin_settings/kinds.rb', line 2

def self.kinds
  [
    'string',
    'text',
    'integer',
    'html',
    'sanitized',
    'yaml',
    'phone',
    'phones',
    'email',
    'address',
    'file',
    'image',
    'url',
    'domain',
    'color'
  ]
end

.migrate!Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/rails_admin_settings.rb', line 36

def self.migrate!
  if RailsAdminSettings.mongoid?
    RailsAdminSettings::Setting.where(:ns.exists => false).update_all(ns: 'main')
    RailsAdminSettings::Setting.all.each do |s|
      s.kind = s.read_attribute(:type) if !s.read_attribute(:type).blank? && s.kind != s.read_attribute(:type)
      s.save! if s.changed?
      s.unset(:type)
    end
  else
    if Settings.table_exists?
      RailsAdminSettings::Setting.where("ns IS NULL").update_all(ns: 'main')
    end
  end
end

.mongoid?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/rails_admin_settings.rb', line 13

def mongoid?
  orm == :mongoid
end

.ormObject



5
6
7
8
9
10
11
# File 'lib/rails_admin_settings.rb', line 5

def orm
  if defined?(::Mongoid)
    :mongoid
  else
    :active_record
  end
end

.track_history!Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/rails_admin_settings.rb', line 51

def self.track_history!
  return false unless Settings.table_exists?

  if mongoid?
    if ::Mongoid.const_defined?('History')
      RailsAdminSettings::Setting.send(:include, ::Mongoid::History::Trackable)
      RailsAdminSettings::Setting.send(:track_history, {track_create: true, track_destroy: true})
    else
      puts "[rails_admin_settings] WARN unable to track_history: Mongoid::History not loaded!"
    end
    if ::Mongoid.const_defined?('Userstamp')
      RailsAdminSettings::Setting.send(:include, ::Mongoid::Userstamp)
    else
      puts "[rails_admin_settings] WARN unable to track_history: Mongoid::Userstamp not loaded!"
    end
  elsif active_record?
    if defined?(PaperTrail) && PaperTrail::Version.table_exists?
      RailsAdminSettings::Setting.send(:has_paper_trail)
    end
  end
end

.typesObject



22
23
24
# File 'lib/rails_admin_settings/kinds.rb', line 22

def self.types
  self.kinds
end