Sha256: 44dddbef0a7944ed2f834a89cac0a0b474e8be925f7e2e808b956ddc9d17b82a
Contents?: true
Size: 1.55 KB
Versions: 4
Compression:
Stored size: 1.55 KB
Contents
module Capcoauth class MissingConfiguration < StandardError def initialize super 'Capcoauth configuration is missing. Please ensure you have an initializer in config/initializers/capcoauth.rb' end end def self.configure(&block) @config = Config::Builder.new(&block).build end def self.configuration @config || (fail MissingConfiguration.new) end class Config attr_reader :client_id attr_reader :client_secret class Builder def initialize(&block) @config = Config.new instance_eval(&block) end def build @config end def client_id(client_id) @config.instance_variable_set('@client_id', client_id) end def client_secret(client_secret) @config.instance_variable_set('@client_secret', client_secret) end end module Option def option(name, options = {}) attribute = options[:as] || name Builder.instance_eval do define_method name do |*args, &block| value = block ? block : args.first @config.instance_variable_set(:"@#{attribute}", value) end end define_method attribute do |*args| if instance_variable_defined?(:"@#{attribute}") instance_variable_get(:"@#{attribute}") else options[:default] end end public attribute end def extended(base) base.send(:private, :option) end end extend Option option :token_verify_ttl, default: 10 end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
capcoauth-0.1.4 | lib/capcoauth/config.rb |
capcoauth-0.1.3 | lib/capcoauth/config.rb |
capcoauth-0.1.2 | lib/capcoauth/config.rb |
capcoauth-0.1.1 | lib/capcoauth/config.rb |