Class: ActiveTenant::SQLiteAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/active_tenant/adapters/sqlite_adapter.rb

Instance Method Summary collapse

Constructor Details

#initializeSQLiteAdapter

Returns a new instance of SQLiteAdapter.



5
6
7
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 5

def initialize
  self.global = ActiveTenant.configuration.global if ActiveTenant.configuration.global
end

Instance Method Details

#allObject



9
10
11
12
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 9

def all
  path = database_path
  Dir.glob("#{path}/*.sqlite3").map { |f| File.basename(f, '.sqlite3') } - [global]
end

#connection_settings(name) ⇒ Object



45
46
47
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 45

def connection_settings(name)
  connection_config.merge(database: file_name(name), url: nil)
end

#create(name) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 14

def create(name)
  unless all.include? name
    current_config = connection_config
    establish_connection connection_settings(name)
    connection
    establish_connection current_config
  end
end

#globalObject



53
54
55
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 53

def global
  @global
end

#global?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 57

def global?
  global == name
end

#nameObject



49
50
51
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 49

def name
  File.basename(connection_config[:database], '.sqlite3')
end

#remove(name) ⇒ Object



23
24
25
26
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 23

def remove(name)
  file = file_name name
  FileUtils.rm(file) if File.exist?(file)
end

#with(name) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/active_tenant/adapters/sqlite_adapter.rb', line 28

def with(name)
  return yield if name == self.name

  current_config = connection_config
  ex = nil
  begin
    establish_connection connection_settings(name)
    result = yield
  rescue => e
    ex = e
  ensure
    establish_connection current_config
    raise ex unless ex.nil?
    result
  end
end