module Redbreast::Helper::General

Module with general metods used in creating files

Constants

ESCAPE_KEYWORDS

Public Instance Methods

app_name() click to toggle source
# File lib/redbreast/helpers/general.rb, line 28
def app_name
  @app_name ||= config[:app_name]
end
bundles() click to toggle source
# File lib/redbreast/helpers/general.rb, line 24
def bundles
  @bundles ||= config[:bundles]
end
clean_case_name(name) click to toggle source
# File lib/redbreast/helpers/general.rb, line 59
def clean_case_name(name)
  clean_variable_name(name)
end
clean_enum_name(name) click to toggle source
# File lib/redbreast/helpers/general.rb, line 38
def clean_enum_name(name)
  clean_name = name
               .split(/[^0-9a-zA-Z]/)
               .reject(&:empty?)
               .map(&:capitalize)
               .join

  escape_with_underscore_if_needed(clean_name)
end
clean_variable_name(name) click to toggle source
# File lib/redbreast/helpers/general.rb, line 63
def clean_variable_name(name)
  clean_name = name
               .split(/[^0-9a-zA-Z]/)
               .reject(&:empty?)
               .each_with_index
               .map { |v, i| i.zero? ? v.tap { |char| char[0] = char[0].downcase } : v.capitalize }
               .join

  escaped_underscore = escape_with_underscore_if_needed(clean_name)
  escape_keyword_if_needed(escaped_underscore)
end
config() click to toggle source
# File lib/redbreast/helpers/general.rb, line 16
def config
  @config ||= Redbreast::IO::Config.read
end
escape_keyword_if_needed(name) click to toggle source
# File lib/redbreast/helpers/general.rb, line 81
def escape_keyword_if_needed(name)
  return name unless ESCAPE_KEYWORDS.include? name

  "`#{name}`"
end
escape_with_underscore_if_needed(name) click to toggle source
# File lib/redbreast/helpers/general.rb, line 75
def escape_with_underscore_if_needed(name)
  return name if name.match(/^[A-Za-z_]/)

  '_' + name
end
indent(level = 0, initial = '') click to toggle source
# File lib/redbreast/helpers/general.rb, line 32
def indent(level = 0, initial = '')
  (1..level)
    .to_a.reduce('') { |result, _| result + '    ' }
    .concat(initial)
end
programming_language() click to toggle source
# File lib/redbreast/helpers/general.rb, line 20
def programming_language
  @programming_language ||= config[:language]
end
upper_camel_case(name) click to toggle source
# File lib/redbreast/helpers/general.rb, line 48
def upper_camel_case(name)
  clean_name = name
               .split(/[^0-9a-zA-Z]/)
               .reject(&:empty?)
               .each_with_index
               .map { |v, i| i.zero? ? v.tap { |char| char[0] = char[0].upcase } : v.capitalize }
               .join

  escape_with_underscore_if_needed(clean_name)
end