Sha256: 36c224f32c69927cf64d5a26b0280dc6ded0e6d637f093a1a9839c999ba2e98f

Contents?: true

Size: 1.43 KB

Versions: 2

Compression:

Stored size: 1.43 KB

Contents

module MailSafe
  class InvalidConfigSettingError < StandardError; end

  class Config
    cattr_accessor :internal_address_definition

    def self.is_internal_address?(address)
      case internal_address_definition
        when Regexp then !!(address =~ internal_address_definition)
        when Proc   then internal_address_definition.call(address)
        else
          return address.downcase == developer_email_address.downcase if developer_email_address
          raise InvalidConfigSettingError.new("internal_address_definition must be a Regexp or Proc, but was: #{internal_address_definition.class.to_s}")
      end
    end

    cattr_accessor :replacement_address

    def self.get_replacement_address(original_address)
      case replacement_address
        when String then replacement_address
        when Proc   then replacement_address.call(original_address)
        else
          return developer_email_address if developer_email_address
          raise InvalidConfigSettingError.new("replacement_address must be a String or Proc, but was: #{replacement_address.class.to_s}")
      end
    end

    def self.developer_email_address
      unless defined?(@@developer_email_address)
        @@developer_email_address = begin
          `git config user.email`.strip
        rescue
          nil
        end
        @@developer_email_address = nil  if @@developer_email_address.blank?
      end

      @@developer_email_address
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mail_safe-0.3.3 lib/mail_safe/config.rb
mail_safe-0.3.2 lib/mail_safe/config.rb