class Amigrind::Blueprints::Evaluator::BaseAMIEvaluator

Public Class Methods

new(bp, evaluator, &block) click to toggle source
# File lib/amigrind/blueprints/evaluator.rb, line 95
def initialize(bp, evaluator, &block)
  @bp = bp
  @bp.source = Amigrind::Blueprints::BaseAMISource.new

  @evaluator = evaluator

  instance_eval(&block)
end

Private Instance Methods

family(f) click to toggle source
# File lib/amigrind/blueprints/evaluator.rb, line 110
def family(f)
  raise "'family' must implement #to_sym." unless f.respond_to?(:to_sym)

  @bp.source.family = f.to_sym.to_s.strip.to_sym
end
id(region, image_id) click to toggle source
# File lib/amigrind/blueprints/evaluator.rb, line 122
def id(region, image_id)
  regex = Amigrind::Core::AMI_REGEX

  raise "'region' must be stringable." unless region.respond_to?(:to_s)
  raise "'image_id' must be in AMI format (/#{regex.source}/)" \
    unless regex.match(image_id)

  @bp.source.ids[region.to_s.strip] = image_id
end
ids(ami_ids) click to toggle source
# File lib/amigrind/blueprints/evaluator.rb, line 132
def ids(ami_ids)
  raise "'ami_ids' must be a Hash-alike." unless ami_ids.respond_to?(:each_pair)
  ami_ids.each_pair { |region, image_id| id(region, image_id) }
end
properties() click to toggle source
# File lib/amigrind/blueprints/evaluator.rb, line 106
def properties
  @evaluator.properties
end
version(v) click to toggle source
# File lib/amigrind/blueprints/evaluator.rb, line 116
def version(v)
  raise "'version' must be a String." unless v.is_a?(String)

  @bp.source.version = v.strip
end