Sha256: f961f774a8006f1c51657703a70a7224215ebdb97c988aa2669003f3c438f52c

Contents?: true

Size: 756 Bytes

Versions: 11

Compression:

Stored size: 756 Bytes

Contents

# frozen_string_literal: true

module DeepCover
  module ConfigSetter
    def config_queue
      @config_queue ||= []
    end

    def config(notify = self)
      raise ArgumentError, 'config does not accept an argument. Did you mean `configure`?' if block_given?
      @config ||= Config.new(notify)
      config_queue.each { |block| configure(&block) }
      config_queue.clear
      @config
    end

    def configure(&block)
      raise 'Must provide a block' unless block
      @config ||= nil # avoid warning
      if @config == nil
        config_queue << block
      else
        case block.arity
        when 0
          @config.instance_eval(&block)
        when 1
          block.call(@config)
        end
      end
      self
    end
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
deep-cover-core-0.6.4 lib/deep_cover/config_setter.rb
deep-cover-core-0.6.3 lib/deep_cover/config_setter.rb
deep-cover-core-0.6.3.pre lib/deep_cover/config_setter.rb
deep-cover-0.6.2 lib/deep_cover/config_setter.rb
deep-cover-0.6.1 lib/deep_cover/config_setter.rb
deep-cover-0.6.0 lib/deep_cover/config_setter.rb
deep-cover-0.5.7 lib/deep_cover/config_setter.rb
deep-cover-0.5.6 lib/deep_cover/config_setter.rb
deep-cover-0.5.5 lib/deep_cover/config_setter.rb
deep-cover-0.5.4 lib/deep_cover/config_setter.rb
deep-cover-0.5.3 lib/deep_cover/config_setter.rb