Class: CfFactory::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



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

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

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



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

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



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

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

.base64(string) ⇒ Object



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

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

.clean(string) ⇒ Object



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

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



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

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

.generate_inner_array(cf_array) ⇒ Object



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

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



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

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



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

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

.generate_ref_array(cf_array) ⇒ Object



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

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



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

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


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

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



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

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