class Screengem::DampenConfigurationGenerator

Knows how to generate the sample dampen configuration.

Constants

DEFAULT_SLEEP

Seconds to sleep after executing a question or task.

Public Instance Methods

generate() click to toggle source
# File lib/screengem/dampen_configuration_generator.rb, line 11
def generate
  configuration = empty_configuration

  default_configuration = configuration["default"]

  default_configuration["questions"] = all_questions
  default_configuration["tasks"] = all_tasks

  configuration
end

Private Instance Methods

all_primitives(primitive_root) click to toggle source
# File lib/screengem/dampen_configuration_generator.rb, line 41
def all_primitives(primitive_root)
  sorted_descendents(primitive_root).each_with_object({}) do |primitive_class, memo|
    next unless apply_dampening?(primitive_class)

    memo[primitive_key(primitive_class.name)] = DEFAULT_SLEEP
  end
end
all_questions() click to toggle source
# File lib/screengem/dampen_configuration_generator.rb, line 33
def all_questions
  all_primitives(Screengem::Question)
end
all_tasks() click to toggle source
# File lib/screengem/dampen_configuration_generator.rb, line 37
def all_tasks
  all_primitives(Screengem::Task)
end
apply_dampening?(primitive_class) click to toggle source
# File lib/screengem/dampen_configuration_generator.rb, line 53
def apply_dampening?(primitive_class)
  primitive_class.supports_dampening? && primitive_class.descendants.empty?
end
empty_configuration() click to toggle source
# File lib/screengem/dampen_configuration_generator.rb, line 24
def empty_configuration
  {
    "default" => {
      "questions" => {},
      "tasks" => {}
    }
  }
end
sorted_descendents(primitive_root) click to toggle source
# File lib/screengem/dampen_configuration_generator.rb, line 49
def sorted_descendents(primitive_root)
  primitive_root.descendants.sort_by { |primitive_class| primitive_key(primitive_class.name) }
end