Module: SlowDown

Defined in:
lib/slow_down.rb,
lib/slow_down/group.rb,
lib/slow_down/configuration.rb,
lib/slow_down/strategy/base.rb,
lib/slow_down/strategy/linear.rb,
lib/slow_down/strategy/fibonacci.rb,
lib/slow_down/strategy/inverse_exponential.rb

Defined Under Namespace

Modules: Strategy Classes: Configuration, Group

Constant Summary collapse

Timeout =
Class.new(StandardError)
ConfigError =
Class.new(StandardError)

Class Method Summary collapse

Class Method Details

.config(group_name = :default) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/slow_down.rb', line 11

def config(group_name = :default)
  group = Group.find_or_create(group_name)

  group.config.tap do |c|
    yield(c) if block_given?
  end
end

.find_or_create_group(*args) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/slow_down.rb', line 36

def find_or_create_group(*args)
  if args[0].is_a?(Hash)
    group_name = :default
    options    = args[0]
  else
    group_name = args[0] || :default
    options    = args[1] || {}
  end

  Group.find_or_create(group_name, options)
end

.free?(*args) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/slow_down.rb', line 27

def free?(*args)
  find_or_create_group(*args).free?
end

.groupsObject



19
20
21
# File 'lib/slow_down.rb', line 19

def groups
  Group.all
end

.reset(group_name = :default) ⇒ Object



31
32
33
34
# File 'lib/slow_down.rb', line 31

def reset(group_name = :default)
  group = Group.find(group_name) || return
  group.reset
end

.run(*args, &block) ⇒ Object



23
24
25
# File 'lib/slow_down.rb', line 23

def run(*args, &block)
  find_or_create_group(*args).run(&block)
end