Class: Sequent::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/sequent/configuration.rb

Constant Summary collapse

DEFAULT_VERSIONS_TABLE_NAME =
'sequent_versions'
DEFAULT_MIGRATION_SQL_FILES_DIRECTORY =
'db/tables'
DEFAULT_DATABASE_CONFIG_DIRECTORY =
'db'
DEFAULT_DATABASE_SCHEMA_DIRECTORY =
'db'
DEFAULT_VIEW_SCHEMA_NAME =
'view_schema'
DEFAULT_EVENT_STORE_SCHEMA_NAME =
'sequent_schema'
MIGRATIONS_CLASS_NAME =
'Sequent::Migrations::Projectors'
DEFAULT_NUMBER_OF_REPLAY_PROCESSES =
4
DEFAULT_REPLAY_GROUP_TARGET_SIZE =
250_000
DEFAULT_OFFLINE_REPLAY_PERSISTOR_CLASS =
Sequent::Core::Persistors::ActiveRecordPersistor
DEFAULT_ONLINE_REPLAY_PERSISTOR_CLASS =
Sequent::Core::Persistors::ActiveRecordPersistor
DEFAULT_EVENT_RECORD_HOOKS_CLASS =
Sequent::Core::EventRecordHooks
DEFAULT_STRICT_CHECK_ATTRIBUTES_ON_APPLY_EVENTS =
false
DEFAULT_ERROR_LOCALE_RESOLVER =
-> { I18n.locale || :en }
DEFAULT_TIME_PRECISION =
ActiveSupport::JSON::Encoding.time_precision

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/sequent/configuration.rb', line 88

def initialize
  self.command_handlers = []
  self.command_filters = []
  self.event_handlers = []
  self.command_middleware = Sequent::Core::Middleware::Chain.new

  self.aggregate_repository = Sequent::Core::AggregateRepository.new
  self.event_store = Sequent::Core::EventStore.new
  self.command_service = Sequent::Core::CommandService.new
  self.event_record_class = Sequent::Core::EventRecord
  self.snapshot_record_class = Sequent::Core::SnapshotRecord
  self.stream_record_class = Sequent::Core::StreamRecord
  self.transaction_provider = Sequent::Core::Transactions::ActiveRecordTransactionProvider.new
  self.uuid_generator = Sequent::Core::RandomUuidGenerator
  self.event_publisher = Sequent::Core::EventPublisher.new
  self.disable_event_handlers = false
  self.versions_table_name = DEFAULT_VERSIONS_TABLE_NAME
  self.migration_sql_files_directory = DEFAULT_MIGRATION_SQL_FILES_DIRECTORY
  self.view_schema_name = DEFAULT_VIEW_SCHEMA_NAME
  self.event_store_schema_name = DEFAULT_EVENT_STORE_SCHEMA_NAME
  self.migrations_class_name = MIGRATIONS_CLASS_NAME
  self.number_of_replay_processes = DEFAULT_NUMBER_OF_REPLAY_PROCESSES
  self.replay_group_target_size = DEFAULT_REPLAY_GROUP_TARGET_SIZE

  self.event_record_hooks_class = DEFAULT_EVENT_RECORD_HOOKS_CLASS

  self.offline_replay_persistor_class = DEFAULT_OFFLINE_REPLAY_PERSISTOR_CLASS
  self.online_replay_persistor_class = DEFAULT_ONLINE_REPLAY_PERSISTOR_CLASS
  self.database_config_directory = DEFAULT_DATABASE_CONFIG_DIRECTORY
  self.database_schema_directory = DEFAULT_DATABASE_SCHEMA_DIRECTORY
  self.strict_check_attributes_on_apply_events = DEFAULT_STRICT_CHECK_ATTRIBUTES_ON_APPLY_EVENTS

  self.logger = Logger.new(STDOUT).tap { |l| l.level = Logger::INFO }
  self.error_locale_resolver = DEFAULT_ERROR_LOCALE_RESOLVER

  self.enable_multiple_database_support = false
  self.primary_database_role = :writing
  self.primary_database_key = :primary

  self.time_precision = DEFAULT_TIME_PRECISION

  self.enable_autoregistration = false
end

Instance Attribute Details

#aggregate_repositoryObject

Returns the value of attribute aggregate_repository.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def aggregate_repository
  @aggregate_repository
end

#command_filtersObject

Returns the value of attribute command_filters.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def command_filters
  @command_filters
end

#command_handlersObject

Returns the value of attribute command_handlers.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def command_handlers
  @command_handlers
end

#command_middlewareObject

Returns the value of attribute command_middleware.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def command_middleware
  @command_middleware
end

#command_serviceObject

Returns the value of attribute command_service.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def command_service
  @command_service
end

#database_config_directoryObject

Returns the value of attribute database_config_directory.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def database_config_directory
  @database_config_directory
end

#database_schema_directoryObject

Returns the value of attribute database_schema_directory.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def database_schema_directory
  @database_schema_directory
end

#disable_event_handlersObject

Returns the value of attribute disable_event_handlers.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def disable_event_handlers
  @disable_event_handlers
end

#enable_autoregistrationObject

Returns the value of attribute enable_autoregistration.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def enable_autoregistration
  @enable_autoregistration
end

#enable_multiple_database_supportObject

Returns the value of attribute enable_multiple_database_support.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def enable_multiple_database_support
  @enable_multiple_database_support
end

#error_locale_resolverObject

Returns the value of attribute error_locale_resolver.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def error_locale_resolver
  @error_locale_resolver
end

#event_handlersObject

Returns the value of attribute event_handlers.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def event_handlers
  @event_handlers
end

#event_publisherObject

Returns the value of attribute event_publisher.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def event_publisher
  @event_publisher
end

#event_record_classObject

Returns the value of attribute event_record_class.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def event_record_class
  @event_record_class
end

#event_record_hooks_classObject

Returns the value of attribute event_record_hooks_class.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def event_record_hooks_class
  @event_record_hooks_class
end

#event_storeObject

Returns the value of attribute event_store.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def event_store
  @event_store
end

#event_store_schema_nameObject

Returns the value of attribute event_store_schema_name.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def event_store_schema_name
  @event_store_schema_name
end

#loggerObject

Returns the value of attribute logger.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def logger
  @logger
end

#migration_sql_files_directoryObject

Returns the value of attribute migration_sql_files_directory.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def migration_sql_files_directory
  @migration_sql_files_directory
end

#migrations_class_nameObject

Returns the value of attribute migrations_class_name.



70
71
72
# File 'lib/sequent/configuration.rb', line 70

def migrations_class_name
  @migrations_class_name
end

#number_of_replay_processesObject

Returns the value of attribute number_of_replay_processes.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def number_of_replay_processes
  @number_of_replay_processes
end

#offline_replay_persistor_classObject

Returns the value of attribute offline_replay_persistor_class.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def offline_replay_persistor_class
  @offline_replay_persistor_class
end

#online_replay_persistor_classObject

Returns the value of attribute online_replay_persistor_class.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def online_replay_persistor_class
  @online_replay_persistor_class
end

#primary_database_keyObject

Returns the value of attribute primary_database_key.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def primary_database_key
  @primary_database_key
end

#primary_database_roleObject

Returns the value of attribute primary_database_role.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def primary_database_role
  @primary_database_role
end

#replay_group_target_sizeObject

Returns the value of attribute replay_group_target_size.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def replay_group_target_size
  @replay_group_target_size
end

#snapshot_record_classObject

Returns the value of attribute snapshot_record_class.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def snapshot_record_class
  @snapshot_record_class
end

#stream_record_classObject

Returns the value of attribute stream_record_class.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def stream_record_class
  @stream_record_class
end

#strict_check_attributes_on_apply_eventsObject

Returns the value of attribute strict_check_attributes_on_apply_events.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def strict_check_attributes_on_apply_events
  @strict_check_attributes_on_apply_events
end

#time_precisionObject

Returns the value of attribute time_precision.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def time_precision
  @time_precision
end

#transaction_providerObject

Returns the value of attribute transaction_provider.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def transaction_provider
  @transaction_provider
end

#uuid_generatorObject

Returns the value of attribute uuid_generator.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def uuid_generator
  @uuid_generator
end

#versions_table_nameObject

Returns the value of attribute versions_table_name.



70
71
72
# File 'lib/sequent/configuration.rb', line 70

def versions_table_name
  @versions_table_name
end

#view_schema_nameObject

Returns the value of attribute view_schema_name.



37
38
39
# File 'lib/sequent/configuration.rb', line 37

def view_schema_name
  @view_schema_name
end

Class Method Details

.instanceObject



73
74
75
# File 'lib/sequent/configuration.rb', line 73

def self.instance
  @instance ||= new
end

.resetObject

Create a new instance of Configuration



78
79
80
# File 'lib/sequent/configuration.rb', line 78

def self.reset
  @instance = new
end

.restore(configuration) ⇒ Object

Restore the given Configuration

Parameters:



84
85
86
# File 'lib/sequent/configuration.rb', line 84

def self.restore(configuration)
  @instance = configuration
end

Instance Method Details

#can_use_multiple_databases?Boolean

Returns:



132
133
134
# File 'lib/sequent/configuration.rb', line 132

def can_use_multiple_databases?
  enable_multiple_database_support
end