class EcsDeployCli::DSL::Parser
Public Class Methods
load(file)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 68 def self.load(file) result = new result.instance_eval(File.read(file)) result.ensure_required_params! result end
Public Instance Methods
aws_profile_id(value)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 6 def aws_profile_id(value) config[:aws_profile_id] = value end
aws_region(value)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 10 def aws_region(value) config[:aws_region] = value end
cluster(name, &block)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 43 def cluster(name, &block) config[:cluster] = name @cluster ||= {}.with_indifferent_access @cluster = Cluster.new(name, config) @cluster.instance_exec(&block) if block end
config()
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 50 def config @config ||= {} end
container(container, extends: nil, &block)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 18 def container(container, extends: nil, &block) @containers ||= {} @containers[container] = Container.new(container, config) @containers[container].merge(@containers[extends]) if extends @containers[container].instance_exec(&block) end
cron(name, &block)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 37 def cron(name, &block) @crons ||= {}.with_indifferent_access @crons[name] = Cron.new(name, config) @crons[name].instance_exec(&block) end
ensure_required_params!()
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 54 def ensure_required_params! [ :aws_profile_id, :aws_region, :cluster ].each { |key| raise "Missing required parameter #{key}" unless config[key] } end
resolve()
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 60 def resolve resolved_containers = (@containers || {}).transform_values(&:as_definition) resolved_tasks = (@tasks || {}).transform_values { |t| t.as_definition(resolved_containers) } resolved_crons = (@crons || {}).transform_values { |t| t.as_definition(resolved_tasks) } resolved_cluster = @cluster.as_definition [@services, resolved_tasks, resolved_crons, resolved_cluster] end
service(name, &block)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 31 def service(name, &block) @services ||= {}.with_indifferent_access @services[name.to_s] = Service.new(name, config) @services[name.to_s].instance_exec(&block) end
stage(stage)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 14 def stage(stage) config[:stage] = stage end
task(task, &block)
click to toggle source
# File lib/ecs_deploy_cli/dsl/parser.rb, line 25 def task(task, &block) @tasks ||= {}.with_indifferent_access @tasks[task] = Task.new(task, config) @tasks[task].instance_exec(&block) end