class RakeCloudspin::TaskLib

Public Class Methods

check_required_for(instance) click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 27
def check_required_for(instance)
  dissatisfied = parameter_definitions.values.reject do |definition|
    definition.satisfied_by?(instance)
  end
  unless dissatisfied.empty?
    names = dissatisfied.map(&:name)
    raise RequiredParameterUnset,
          "Required parameter#{names.length > 1 ? 's' : ''} #{names.join(',')} unset."
  end
end
new(*args, &block) click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 39
def initialize(*args, &block)
  setup_defaults
  process_arguments(args)
  process_block(block)
  check_required
  define
end
parameter(name, options = {}) click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 11
def parameter(name, options = {})
  parameter_definition = ParameterDefinition.new(
      name, options[:default], options[:required])
  name = parameter_definition.name

  attr_accessor(name)

  parameter_definitions[name] = parameter_definition
end
parameter_definitions() click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 7
def parameter_definitions
  @parameter_definitions ||= {}
end
setup_defaults_for(instance) click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 21
def setup_defaults_for(instance)
  parameter_definitions.values.each do |parameter_definition|
    parameter_definition.apply_default_to(instance)
  end
end

Public Instance Methods

check_required() click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 58
def check_required
  self.class.check_required_for(self)
end
define() click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 62
def define
end
process_arguments(_) click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 51
def process_arguments(_)
end
process_block(block) click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 54
def process_block(block)
  block.call(self) if block
end
setup_defaults() click to toggle source
# File lib/rake_cloudspin/tasklib.rb, line 47
def setup_defaults
  self.class.setup_defaults_for(self)
end