Module: Flu
- Defined in:
- lib/flu-rails.rb,
lib/flu-rails/util.rb,
lib/flu-rails/event.rb,
lib/flu-rails/railtie.rb,
lib/flu-rails/version.rb,
lib/flu-rails/core_ext.rb,
lib/flu-rails/configuration.rb,
lib/flu-rails/event_factory.rb,
lib/flu-rails/event_publisher.rb,
lib/flu-rails/queue_repository.rb,
lib/flu-rails/active_record_extender.rb,
lib/flu-rails/action_controller_extender.rb,
lib/flu-rails/dummy/in_memory_event_publisher.rb
Defined Under Namespace
Modules: Dummy, Util
Classes: ActionControllerExtender, ActiveRecordExtender, Configuration, CoreExt, Event, EventFactory, EventPublisher, QueueRepository, Railtie
Constant Summary
collapse
- VERSION =
"8.0.1"
Class Method Summary
collapse
Class Method Details
.config ⇒ Object
20
21
22
|
# File 'lib/flu-rails.rb', line 20
def self.config
@configuration
end
|
16
17
18
|
# File 'lib/flu-rails.rb', line 16
def self.configure
yield @configuration ||= Flu::Configuration.new
end
|
.create_event_publisher(configuration) ⇒ Object
54
55
56
57
58
59
60
61
62
|
# File 'lib/flu-rails.rb', line 54
def self.create_event_publisher(configuration)
if is_testing_environment?
logger.info("Loading Flu with a dummy event publisher (this will not connect any exchange)")
require_relative "flu-rails/dummy/in_memory_event_publisher"
Flu::Dummy::InMemoryEventPublisher.new(@configuration)
else
Flu::EventPublisher.new(@configuration)
end
end
|
.default_application_name ⇒ Object
45
46
47
48
49
50
51
52
|
# File 'lib/flu-rails.rb', line 45
def self.default_application_name
if defined?(Rails) && Rails.respond_to?(:application)
application = Rails.application
application.nil? ? nil : application.class.module_parent_name
else
nil
end
end
|
.event_factory ⇒ Object
28
29
30
|
# File 'lib/flu-rails.rb', line 28
def self.event_factory
@event_factory
end
|
.event_publisher ⇒ Object
32
33
34
|
# File 'lib/flu-rails.rb', line 32
def self.event_publisher
@event_publisher
end
|
.extend_models_and_controllers ⇒ Object
.init ⇒ Object
36
37
38
39
40
41
42
43
|
# File 'lib/flu-rails.rb', line 36
def self.init
@configuration.application_name ||= default_application_name
raise "configuration.application_name must not be nil" if @configuration.application_name.nil?
@logger = @configuration.logger
@event_factory = Flu::EventFactory.new(@configuration)
@event_publisher = create_event_publisher(@configuration)
extend_models_and_controllers
end
|
.is_testing_environment? ⇒ Boolean
64
65
66
67
68
69
|
# File 'lib/flu-rails.rb', line 64
def self.is_testing_environment?
return false unless defined?(Rails) && Rails.respond_to?(:env)
config.development_environments.include?(Rails.env)
end
|
.load_configuration ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/flu-rails.rb', line 80
def self.load_configuration
configure do |config|
config.development_environments = []
config.rejected_user_agents = []
config.logger = ::Logger.new(STDOUT)
config.rabbitmq_host = "localhost"
config.rabbitmq_port = 5672
config.rabbitmq_management_scheme = "http"
config.rabbitmq_management_port = 15672
config.rabbitmq_user = ""
config.rabbitmq_password = ""
config.rabbitmq_exchange_name = "events"
config.rabbitmq_exchange_durable = true
config.auto_connect_to_exchange = true
config.default_ignored_model_changes = [:password, :password_confirmation, :created_at, :updated_at]
config.default_ignored_request_params = [:password, :password_confirmation, :controller, :action]
config.application_name = nil
config.bunny_options = {}
end
end
|
.logger ⇒ Object
24
25
26
|
# File 'lib/flu-rails.rb', line 24
def self.logger
@logger
end
|
.start ⇒ Object
76
77
78
|
# File 'lib/flu-rails.rb', line 76
def self.start
@event_publisher.connect if config.auto_connect_to_exchange
end
|