module Convection::DSL::Helpers

Helper methods for creating templates

Public Class Methods

included(mod) click to toggle source
# File lib/convection/dsl/helpers.rb, line 37
def included(mod)
  DSL::IntrinsicFunctions.mixers << mod

  mod.extend(DSL::ClassHelpers)
end
method_name(cf_type) click to toggle source
# File lib/convection/dsl/helpers.rb, line 43
def method_name(cf_type)
  nodes = cf_type.split('::')
  nodes.shift # Remove AWS::

  ## Cammel-case to snake-case
  nodes.map! do |n|
    n.split(/([A-Z0-9])(?![A-Z0-9])(?<!$)/)
     .reject(&:empty?)
     .reduce('') { |a, e| (e.length == 1 && !a.empty?) ? a + "_#{e}" : a + e }
     .downcase
  end

  nodes.join('_').downcase
end

Public Instance Methods

camel_case(str) click to toggle source

Convert various casings to CamelCase

# File lib/convection/dsl/helpers.rb, line 60
def camel_case(str)
  str.downcase.split(/[\.\-_]/).map(&:capitalize).join
end
screaming_snake_case(str) click to toggle source

Convert various casings to SCREAMING_SNAKE_CASE

# File lib/convection/dsl/helpers.rb, line 70
def screaming_snake_case(str)
  str.upcase.split(/[\.\-_]/).join('_')
end
snake_case(str) click to toggle source

Convert various casings to snake_case

# File lib/convection/dsl/helpers.rb, line 65
def snake_case(str)
  str.downcase.split(/[\.\-_]/).join('_')
end