lib/fernet/configuration.rb
require 'singleton'
module Fernet
# Public: singleton class used to globally set various
# configuration defaults
class Configuration
include Singleton
# Public: Returns whether to enforce a message TTL (true or false)
attr_accessor :enforce_ttl
# Public: Returns how many seconds messages are considered valid for
attr_accessor :ttl
# Public: used to configure fernet, typically invoked in an initialization
# routine
#
# Sets the following values:
#
# * enforce_ttl: true
# * ttl: 60
#
# Yields the singleton configuration object, where above defaults can be
# overridden
#
# Examples
#
# Fernet::Configuration.run do |config|
# config.enforce_ttl = false
# end
def self.run
self.instance.enforce_ttl = true
self.instance.ttl = 60
yield self.instance if block_given?
end
class << self
def method_missing(method)
if self.instance.respond_to?(method)
self.instance.send(method)
else
super
end
end
def respond_to?(method)
self.instance.respond_to?(method) || super
end
end
end
end