class Stubby::Api

Attributes

enabled_stubs[RW]
environment[RW]
environments[RW]
master[RW]
registry[RW]

Public Class Methods

activate(source, mode) click to toggle source
# File lib/stubby/master.rb, line 44
def activate(source, mode)
  registry_item = RegistryItem.new(source)
  self.enabled_stubs[source] = registry_item.stub(mode)
end
activate_transient(options, key="_") click to toggle source
# File lib/stubby/master.rb, line 49
def activate_transient(options, key="_")
  puts "Transient activation #{options.inspect}, #{key}"
  self.enabled_stubs[key] = TransientStub.new(options)
end
env_settings() click to toggle source
# File lib/stubby/master.rb, line 27
def env_settings
  (@environments[environment] || {}).dup
end
environment=(name) click to toggle source
# File lib/stubby/master.rb, line 31
def environment=(name)
  reset do
    @environment = name

    (env_settings["dependencies"] || []).each do |depname, mode|
      activate(depname, mode)
    end

    env_settings.delete("dependencies")
    activate_transient(env_settings)
  end
end
expand_rules(options) click to toggle source
# File lib/stubby/master.rb, line 54
def expand_rules(options)
  options.inject({}) do |new_opts, (trigger, instruction)|
    if instruction.is_a? Hash # dependency modes
      new_opts[trigger] = instruction
    else 
      instruction = instruction.gsub("@", STUBBY_MASTER)

      protocol, url = trigger.split("://")
      url, protocol = protocol, :default if url.nil?

      extension = master.extensions[protocol.to_sym]

      if extension
        new_opts.delete(trigger)
        new_opts.merge!(extension.expand_rule(trigger, instruction))
      else
        raise "No `#{extension}` extension found for trigger: #{trigger}"
      end
    end

    new_opts
  end
end
reset() { || ... } click to toggle source
# File lib/stubby/master.rb, line 19
def reset
  @enabled_stubs = nil
  @environment = nil
  @registry = nil

  yield if block_given?
end