Module: Aws::Cfn::Stacker::ConvertToClassName

Extended by:
ConvertToClassName
Included in:
ConvertToClassName, StackerBase
Defined in:
lib/aws/cfn/stacker/mixins/convert_to_class_name.rb

Instance Method Summary collapse

Instance Method Details

#convert_to_class_name(str) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/aws/cfn/stacker/mixins/convert_to_class_name.rb', line 5

def convert_to_class_name(str)
  str = str.dup
  str.gsub!(/[^A-Za-z0-9_]/,'_')
  rname = nil
  regexp = %r{^(.+?)(_(.+))?$}

  mn = str.match(regexp)
  if mn
    rname = mn[1].capitalize

    while mn && mn[3]
      mn = mn[3].match(regexp)
      rname << mn[1].capitalize if mn
    end
  end

  rname
end

#convert_to_snake_case(str, namespace = nil) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/aws/cfn/stacker/mixins/convert_to_class_name.rb', line 24

def convert_to_snake_case(str, namespace=nil)
  str = str.dup
  str.sub!(/^#{namespace}(\:\:)?/, '') if namespace
  str.gsub!(/[A-Z]/) {|s| "_" + s}
  str.downcase!
  str.sub!(/^\_/, "")
  str
end

#filename_to_qualified_string(base, filename) ⇒ Object



38
39
40
41
# File 'lib/aws/cfn/stacker/mixins/convert_to_class_name.rb', line 38

def filename_to_qualified_string(base, filename)
  file_base = File.basename(filename, ".rb")
  base.to_s + (file_base == 'default' ? '' : "_#{file_base}")
end

#snake_case_basename(str) ⇒ Object



33
34
35
36
# File 'lib/aws/cfn/stacker/mixins/convert_to_class_name.rb', line 33

def snake_case_basename(str)
  with_namespace = convert_to_snake_case(str)
  with_namespace.split("::").last.sub(/^_/, '')
end