Sha256: 38c63144237bf5afd98a1c97b412afde36de15e5b68efbba8d3fb85a5d9c9600
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module Lono class Names extend Memoist attr_reader :blueprint def initialize(options={}) @options = options @blueprint = options[:blueprint] end def stack expansion(Lono.config.names.stack) # IE: :APP-:BLUEPRINT-:ENV end memoize :stack def expansion(string) return string unless string.is_a?(String) # in case of nil string = string.dup vars = string.scan(/:\w+/) # => [":APP", ":BLUEPRINT", :ENV"] vars.each do |var| string.gsub!(var, var_value(var)) end strip(string) end def var_value(unexpanded) name = unexpanded.sub(':','').downcase if respond_to?(name) value = send(name).to_s else unexpanded end end def strip(string) string.sub(/^-+/,'').sub(/-+$/,'') # remove leading and trailing - .gsub(%r{-+},'-') # remove double dashes are more. IE: -- => - .gsub('_','-') # underscores are not allowed in CloudFormation stack names end def app Lono.app end def env Lono.env end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lono-8.0.0.pre.rc3 | lib/lono/names.rb |