Class: Simpleadmin::Config

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/simpleadmin/config.rb

Overview

Configuration storage to customize allowed tables, to choose a database adapter and name

Examples:


Simpleadmin::Config.setup do |config|
   config.database_credentials = {
     adapter: :postgres,
     database: 'squiz_development'
   }

  config.allowed_tables = ['users']          # Allowed tables
  # config.allowed_tables = [:all]           # Allow all tables

  config.on_create = lambda do |model_class, resource_params|
    model_class.create(resource_params)
  end

  config.on_update = lambda do |model_class, resource_id, resource_params|
    model_class.find(resource_id).update(resource_params)
  end

  config.on_destroy = lambda do |model_class, resource_id|
    model_class.find(resource_id).destroy
  end
end

Since:

  • 1.0.0

Constant Summary collapse

DEFAULT_TABLE_SCHEMAS =

Since:

  • 1.0.0

['public'].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#allowed_tablesObject

Since:

  • 1.0.0



38
39
40
# File 'lib/simpleadmin/config.rb', line 38

def allowed_tables
  @allowed_tables
end

#clientObject

Since:

  • 1.0.0



38
39
40
# File 'lib/simpleadmin/config.rb', line 38

def client
  @client
end

#database_credentialsObject

Since:

  • 1.0.0



38
39
40
# File 'lib/simpleadmin/config.rb', line 38

def database_credentials
  @database_credentials
end

#on_createObject

Since:

  • 1.0.0



39
40
41
# File 'lib/simpleadmin/config.rb', line 39

def on_create
  @on_create
end

#on_destroyObject

Since:

  • 1.0.0



39
40
41
# File 'lib/simpleadmin/config.rb', line 39

def on_destroy
  @on_destroy
end

#on_updateObject

Since:

  • 1.0.0



39
40
41
# File 'lib/simpleadmin/config.rb', line 39

def on_update
  @on_update
end

#table_schemasObject

Since:

  • 1.0.0



38
39
40
# File 'lib/simpleadmin/config.rb', line 38

def table_schemas
  @table_schemas
end

Class Method Details

.allowed_table?(table_name) ⇒ Boolean

Returns:

  • (Boolean)

Since:

  • 1.0.0



46
47
48
49
50
# File 'lib/simpleadmin/config.rb', line 46

def allowed_table?(table_name)
  return true if instance.allowed_tables.include?(:all)

  instance.allowed_tables.include?(table_name)
end

.allowed_tablesObject

Since:

  • 1.0.0



52
53
54
# File 'lib/simpleadmin/config.rb', line 52

def allowed_tables
  instance.allowed_tables || []
end

.database_credentialsObject

Since:

  • 1.0.0



56
57
58
# File 'lib/simpleadmin/config.rb', line 56

def database_credentials
  instance.database_credentials
end

.on_createObject

Raises:

  • (NotImplementedError)

Since:

  • 1.0.0



60
61
62
63
64
# File 'lib/simpleadmin/config.rb', line 60

def on_create
  raise NotImplementedError, 'Please define #on_create in an initializer to use gem' if instance.on_create.nil?

  instance.on_create
end

.on_destroyObject

Raises:

  • (NotImplementedError)

Since:

  • 1.0.0



72
73
74
75
76
# File 'lib/simpleadmin/config.rb', line 72

def on_destroy
  raise NotImplementedError, 'Please define #on_destroy in an initializer to use gem' if instance.on_destroy.nil?

  instance.on_destroy
end

.on_updateObject

Raises:

  • (NotImplementedError)

Since:

  • 1.0.0



66
67
68
69
70
# File 'lib/simpleadmin/config.rb', line 66

def on_update
  raise NotImplementedError, 'Please define #on_update in an initializer to use gem' if instance.on_update.nil?

  instance.on_update
end

.setup {|instance| ... } ⇒ Object

Yields:

  • (instance)

Since:

  • 1.0.0



42
43
44
# File 'lib/simpleadmin/config.rb', line 42

def setup
  yield(instance)
end

.table_schemasObject

Since:

  • 1.0.0



78
79
80
# File 'lib/simpleadmin/config.rb', line 78

def table_schemas
  instance.table_schemas || DEFAULT_TABLE_SCHEMAS
end