Class: CfHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/cf_factory/base/cf_helper.rb

Class Method Summary collapse

Class Method Details

.availability_zones(string = "") ⇒ Object



52
53
54
# File 'lib/cf_factory/base/cf_helper.rb', line 52

def self.availability_zones(string = "")
  "{ \"Fn::GetAZs\" : \"#{string}\" }"
end

.az_array_in_region(az_ids = ["b","c"], region = "") ⇒ Object



64
65
66
67
68
69
70
71
# File 'lib/cf_factory/base/cf_helper.rb', line 64

def self.az_array_in_region(az_ids = ["b","c"], region = "")
  result = "["
  az_ids.each() {|az_id|
    result += CfHelper.az_in_region(az_id)+", "
  }
  result = result.chomp(" ").chomp(",")
  result += "]"
end

.az_in_region(az_id = "a", region = "") ⇒ Object



60
61
62
# File 'lib/cf_factory/base/cf_helper.rb', line 60

def self.az_in_region(az_id = "a", region = "")
  clean(join([ref_current_region(), az_id]))
end

.base64(string) ⇒ Object



39
40
41
42
# File 'lib/cf_factory/base/cf_helper.rb', line 39

def self.base64(string)
  base = "{ \"Fn::Base64\": \"#{string}\" }"
  return clean(base)
end

.clean(string) ⇒ Object



48
49
50
# File 'lib/cf_factory/base/cf_helper.rb', line 48

def self.clean(string)
  string.gsub(/\"{/,"{").gsub(/\"}/,"}").gsub(/}\"/,"}").gsub(/\"\[/,"[").gsub(/\"\]/,"]")#.gsub(/\\/,"") #TODO: the last gsub invalidated line-breaks
end

.generate_att(resource_name, attribute_name) ⇒ Object



6
7
8
# File 'lib/cf_factory/base/cf_helper.rb', line 6

def self.generate_att(resource_name, attribute_name)
  "{ \"Fn::GetAtt\" : [ \"#{resource_name}\", \"#{attribute_name}\" ] }"
end

.generate_inner_array(cf_array) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/cf_factory/base/cf_helper.rb', line 20

def self.generate_inner_array(cf_array)
  result = "["
  cf_array.each() {|cf|
    result += "#{cf.generate()},"
  }
  result = result.chomp(",")
  result += "]"
  result
end

.generate_inner_list(cf_array) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/cf_factory/base/cf_helper.rb', line 30

def self.generate_inner_list(cf_array)
  result = ""
  cf_array.each() {|cf|
    result += "#{cf.generate},\n"
  }
  result = result.chomp("\n").chomp(",") 
  result
end

.generate_ref(cf_object_ref) ⇒ Object



2
3
4
# File 'lib/cf_factory/base/cf_helper.rb', line 2

def self.generate_ref(cf_object_ref)
  "{ \"Ref\" : \"#{cf_object_ref}\" }"
end

.generate_ref_array(cf_array) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/cf_factory/base/cf_helper.rb', line 10

def self.generate_ref_array(cf_array)
  result = "["
  cf_array.each() {|cf|
    result += "#{cf.generate_ref},"
  }
  result = result.chomp(",")
  result += "]"
  result    
end

.join(array) ⇒ Object



44
45
46
# File 'lib/cf_factory/base/cf_helper.rb', line 44

def self.join(array)
  "{ \"Fn::Join\" : [ \"\", #{print_array(array)} ]}"
end


73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/cf_factory/base/cf_helper.rb', line 73

def self.print_array(array)
  inner = ""
  array.each() {|element|
    if element == "\n"
      inner += "\"\\n\" ,"
    else
      inner += "\"#{element}\" ,"
    end
  }
  inner.chomp!(",")
  result = "[ #{inner} ]"
  #result = array.inspect
  #puts "rsult before CLEAN = #{result}"    
  res = clean(result)
  #puts "rsult after CLEAN = #{res}"
  res
end

.ref_current_regionObject



56
57
58
# File 'lib/cf_factory/base/cf_helper.rb', line 56

def self.ref_current_region()
  '{ "Ref" : "AWS::Region" }'
end