lib/wcc/contentful/app.rb in wcc-contentful-app-0.4.0.pre.rc vs lib/wcc/contentful/app.rb in wcc-contentful-app-1.0.0.pre.rc1
- old
+ new
@@ -1,19 +1,62 @@
# frozen_string_literal: true
require 'wcc/contentful/rails'
+require_relative './app/rails'
require_relative './app/exceptions'
-require_relative './app/model_validators'
-require_relative './ext/model'
+require_relative './app/configuration'
module WCC::Contentful::App
+ class << self
+ attr_reader :initialized
+
+ # Gets the current configuration, after calling WCC::Contentful::App.configure
+ attr_reader :configuration
+ end
+
+ def self.configure
+ if initialized || WCC::Contentful.initialized
+ raise WCC::Contentful::InitializationError, 'Cannot configure after initialization'
+ end
+
+ WCC::Contentful.configure do |wcc_contentful_config|
+ if @configuration&.wcc_contentful_config != wcc_contentful_config
+ @configuration = Configuration.new(wcc_contentful_config)
+ end
+ yield(configuration)
+ end
+
+ configuration.validate!
+
+ configuration
+ end
+
def self.init!
- raise ArgumentError, 'Please first call WCC::Contentful.init!' unless WCC::Contentful.types
+ raise ArgumentError, 'Please first call WCC::Contentful::App.configure' if configuration.nil?
+ WCC::Contentful.init!
+
# Extend all model types w/ validation & extra fields
WCC::Contentful.types.each_value do |t|
file = File.dirname(__FILE__) + "/model/#{t.name.underscore}.rb"
require file if File.exist?(file)
end
+
+ @db_connected =
+ begin
+ ::ActiveRecord::Base.connection_pool.with_connection(&:active?)
+ rescue StandardError
+ false
+ end
+
+ @configuration = WCC::Contentful::App::Configuration::FrozenConfiguration.new(
+ configuration,
+ WCC::Contentful.configuration
+ )
+ @initialized = true
+ end
+
+ def self.db_connected?
+ @db_connected
end
end