Module: EacRailsUtils::Availability

Defined in:
lib/eac_rails_utils/availability.rb

Class Method Summary collapse

Class Method Details

.database? ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
# File 'lib/eac_rails_utils/availability.rb', line 7

def database?
  ::ActiveRecord::Base.connection.table_exists?('any_table_name')
rescue ActiveRecord::NoDatabaseError, PG::ConnectionBad
  false
else
  true
end

.database_schema? ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/eac_rails_utils/availability.rb', line 16

def database_schema?
  database? && ::RedminePluginsHelper::Migration.from_code.all?(&:applied?)
end

.model?(*model_classes) ⇒ Boolean

Parameters:

  • model_classes (Enumerable<>)

Returns:

  • (Boolean)


22
23
24
# File 'lib/eac_rails_utils/availability.rb', line 22

def model?(*model_classes)
  table?(*model_classes.map(&:table_name))
end

.table?(*table_names) ⇒ Boolean

Parameters:

  • table_names (Enumerable<String>)

Returns:

  • (Boolean)


28
29
30
31
# File 'lib/eac_rails_utils/availability.rb', line 28

def table?(*table_names)
  database? && table_names
                 .all? { |table_name| ::ActiveRecord::Base.connection.table_exists?(table_name) }
end