kigster/sym-crypt

View on GitHub
lib/sym/configurable.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'singleton'
module Sym
  module Configurable
    def self.included(base)
      base.instance_eval do
        include Singleton

        class << self
          def config
            instance
          end

          def configure
            yield config if block_given?
            config
          end

          def property(prop_name, prop_value = nil)
            config.send("#{prop_name}=", prop_value) if prop_name && prop_value
            config.send(prop_name)
          end

          alias_method :[], :property
        end
      end
    end
  end
end