class Contentful::Moderator::Config

Constants

DEFAULT_ENDPOINT
DEFAULT_PORT

Attributes

config[R]

Public Class Methods

load(path) click to toggle source
# File lib/contentful/moderator/config.rb, line 12
def self.load(path)
  new(Hashie::Mash.load(path))
end
new(config = {}) click to toggle source
# File lib/contentful/moderator/config.rb, line 16
def initialize(config = {})
  @config = Hashie::Mash.new(config)

  @config.port = (ENV.key?('PORT') ? ENV['PORT'].to_i : DEFAULT_PORT) unless @config.port?
  @config.endpoint = DEFAULT_ENDPOINT unless @config.endpoint?

  fail ':content_types not set' unless @config.content_types? && !@config.content_types.empty?
  fail ':authors not set' unless @config.authors? && !@config.authors.empty?
  fail ':editors not set' unless @config.editors? && !@config.editors.empty?
  fail ':mail_origin not set' unless @config.mail_origin?
  fail ':mailer_settings not properly configured' unless mailer_configured?

  configure_mailer
end

Public Instance Methods

authors() click to toggle source
# File lib/contentful/moderator/config.rb, line 39
def authors
  @config.authors
end
configure_mailer() click to toggle source
# File lib/contentful/moderator/config.rb, line 89
def configure_mailer
  this = self
  Mail.defaults do
    delivery_method this.config.mailer_settings.connection_type.to_sym, {
      address: this.config.mailer_settings.address,
      port: this.config.mailer_settings.port,
      domain: this.config.mailer_settings.domain,
      user_name: this.mailer_username,
      password: this.mailer_password,
      authentication: this.config.mailer_settings.authentication,
      enable_starttls_auto: this.config.mailer_settings.enable_starttls_auto,
      openssl_verify_mode: this.config.mailer_settings.openssl_verify_mode,
      ssl: this.config.mailer_settings.ssl,
      tls: this.config.mailer_settings.tls
    }
  end
end
content_types() click to toggle source
# File lib/contentful/moderator/config.rb, line 47
def content_types
  @config.content_types
end
editors() click to toggle source
# File lib/contentful/moderator/config.rb, line 43
def editors
  @config.editors
end
endpoint() click to toggle source
# File lib/contentful/moderator/config.rb, line 35
def endpoint
  @config.endpoint
end
mail_origin() click to toggle source
# File lib/contentful/moderator/config.rb, line 51
def mail_origin
  @config.mail_origin
end
mailer_configured?() click to toggle source
# File lib/contentful/moderator/config.rb, line 69
def mailer_configured?
  return false unless @config.mailer_settings?
  return false unless @config.mailer_settings.connection_type
  return false unless @config.mailer_settings.address
  return false unless @config.mailer_settings.port
  return false unless @config.mailer_settings.domain

  # Optionals - Explicitly left here as reminder
  #
  # return false unless @config.mailer_settings.user_name
  # return false unless @config.mailer_settings.password
  # return false unless @config.mailer_settings.authentication
  # return false unless @config.mailer_settings.enable_starttls_auto
  # return false unless @config.mailer_settings.openssl_verify_mode
  # return false unless @config.mailer_settings.ssl
  # return false unless @config.mailer_settings.tls

  true
end
mailer_password() click to toggle source
# File lib/contentful/moderator/config.rb, line 64
def mailer_password
  return ENV['ENV_MAILER_PASSWORD'] if config.mailer_settings.password == "'env_mailer_password'"
  config.mailer_settings.password
end
mailer_settings() click to toggle source
# File lib/contentful/moderator/config.rb, line 55
def mailer_settings
  @config.mailer_settings
end
mailer_username() click to toggle source
# File lib/contentful/moderator/config.rb, line 59
def mailer_username
  return ENV['ENV_MAILER_USERNAME'] if config.mailer_settings.user_name == "'env_mailer_username'"
  config.mailer_settings.user_name
end
port() click to toggle source
# File lib/contentful/moderator/config.rb, line 31
def port
  @config.port
end