Module: Fare

Defined in:
lib/fare.rb,
lib/fare/event.rb,
lib/fare/rspec.rb,
lib/fare/topic.rb,
lib/fare/version.rb,
lib/fare/publisher.rb,
lib/fare/test_mode.rb,
lib/fare/subscriber.rb,
lib/fare/update_cli.rb,
lib/fare/configuration.rb,
lib/fare/queue_adapter.rb,
lib/fare/topic_adapter.rb,
lib/fare/subscriber_cli.rb,
lib/fare/middleware/raven.rb,
lib/fare/subscriber_stack.rb,
lib/fare/configuration_dsl.rb,
lib/fare/generate_lock_file.rb,
lib/fare/middleware/logging.rb,
lib/fare/middleware/newrelic.rb,
lib/fare/load_configuration_file.rb,
lib/fare/configuration_when_locked.rb

Defined Under Namespace

Modules: FareMatcher, Middleware, TestMode Classes: Configuration, ConfigurationDSL, ConfigurationWhenLocked, Event, GenerateLockFile, LoadConfigurationFile, Publisher, QueueAdapter, Subscriber, SubscriberCLI, SubscriberStack, Topic, TopicAdapter, UpdateCLI

Constant Summary collapse

ConfigurationNotFoundError =
Class.new(RuntimeError)
LockFileNotFoundError =
Class.new(RuntimeError)
ChecksumNotMatchingError =
Class.new(RuntimeError)
NoEnvironmentFoundError =
Class.new(RuntimeError)
VERSION =
"0.1.7"
UnknownTopicError =
Class.new(RuntimeError)

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.queue_adapterObject

Returns the value of attribute queue_adapter.



38
39
40
# File 'lib/fare.rb', line 38

def queue_adapter
  @queue_adapter
end

.topic_adapterObject

Returns the value of attribute topic_adapter.



38
39
40
# File 'lib/fare.rb', line 38

def topic_adapter
  @topic_adapter
end

Class Method Details

.config(options) ⇒ Object



100
101
102
# File 'lib/fare.rb', line 100

def self.config(options)
  @configuration = ConfigurationWhenLocked.new(options)
end

.configurationObject



96
97
98
# File 'lib/fare.rb', line 96

def self.configuration
  @configuration ||= config({})
end

.default_config_fileObject



68
69
70
# File 'lib/fare.rb', line 68

def self.default_config_file
  File.expand_path("config/fare.rb", Dir.pwd)
end

.default_environmentObject



80
81
82
83
84
85
86
# File 'lib/fare.rb', line 80

def self.default_environment
  env = ENV["RACK_ENV"] || ENV["RAILS_ENV"]
  if env.nil? && defined?(::Rails)
    env = Rails.env.to_s
  end
  env
end

.environmentObject



76
77
78
# File 'lib/fare.rb', line 76

def self.environment
  @environment || default_environment
end

.environment=(value) ⇒ Object



72
73
74
# File 'lib/fare.rb', line 72

def self.environment=(value)
  @environment = value.to_s
end

.given_event(*args) ⇒ Object



60
61
62
# File 'lib/fare.rb', line 60

def self.given_event(*args)
  stubbed_messages.given_event(*args)
end

.publish(options) ⇒ Object



92
93
94
# File 'lib/fare.rb', line 92

def self.publish(options)
  Publisher.new(configuration, options).call
end

.run(*args) ⇒ Object



64
65
66
# File 'lib/fare.rb', line 64

def self.run(*args)
  stubbed_messages.run(*args)
end

.stubbed_messagesObject



52
53
54
55
56
57
58
# File 'lib/fare.rb', line 52

def self.stubbed_messages
  if @message_list
    @message_list
  else
    fail "Not in test mode. Enable it with: Fare.test_mode!"
  end
end

.test_mode!Object



43
44
45
46
47
48
49
50
# File 'lib/fare.rb', line 43

def self.test_mode!
  require "fare/test_mode"
  @message_list = TestMode::MessageList.new
  self.queue_adapter = @message_list.queue_adapter
  self.topic_adapter = @message_list.topic_adapter
  update(force: true)
  @configuration = nil
end

.update(options = {}) ⇒ Object



88
89
90
# File 'lib/fare.rb', line 88

def self.update(options = {})
  GenerateLockFile.new(options).call
end