Module: Mailscope

Defined in:
lib/mailscope.rb,
lib/mailscope/query.rb,
lib/mailscope/engine.rb,
lib/mailscope/mailbox.rb,
lib/mailscope/message.rb,
lib/mailscope/storage.rb,
lib/mailscope/version.rb,
lib/mailscope/storage/base.rb,
lib/mailscope/body_renderer.rb,
lib/mailscope/configuration.rb,
lib/mailscope/delivery_method.rb,
lib/mailscope/storage/filesystem.rb,
app/helpers/mailscope/application_helper.rb,
app/controllers/mailscope/assets_controller.rb,
app/controllers/mailscope/messages_controller.rb,
app/controllers/mailscope/application_controller.rb

Defined Under Namespace

Modules: ApplicationHelper, Storage Classes: ApplicationController, AssetsController, BodyRenderer, Configuration, DeliveryMethod, Engine, Error, InvalidLetterId, Mailbox, Message, MessagesController, Query

Constant Summary collapse

VERSION =
'0.1.1'

Class Method Summary collapse

Class Method Details

.configObject



19
20
21
# File 'lib/mailscope.rb', line 19

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



23
24
25
26
27
# File 'lib/mailscope.rb', line 23

def configure
  yield config if block_given?
  @storage = nil
  config
end

.deliveriesObject



39
40
41
# File 'lib/mailscope.rb', line 39

def deliveries
  storage.all
end

.loggerObject



51
52
53
54
55
# File 'lib/mailscope.rb', line 51

def logger
  return Rails.logger if defined?(Rails) && Rails.logger

  @logger ||= Logger.new($stderr)
end

.reset!Object



29
30
31
32
# File 'lib/mailscope.rb', line 29

def reset!
  @config  = nil
  @storage = nil
end

.storageObject

The resolved storage adapter instance.



35
36
37
# File 'lib/mailscope.rb', line 35

def storage
  @storage ||= Storage.build(config.storage, location: config.location)
end

.translate(key, fallback, **options) ⇒ Object

Translates through the host app's I18n when available; the fallback keeps the library usable outside Rails.



45
46
47
48
49
# File 'lib/mailscope.rb', line 45

def translate(key, fallback, **options)
  return fallback unless defined?(::I18n)

  ::I18n.t("mailscope.#{key}", default: fallback, **options)
end