Module: Generator::Naming

Included in:
Generator
Defined in:
lib/au_ps_inferno/generator/naming.rb

Overview

Shared naming and ID helpers for suite, group, and test generation. Use these when adding new groups or tests so IDs and class names stay consistent.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build_class_name(string) ⇒ String

Returns Ruby class name (PascalCase, no spaces/special chars).

Parameters:

  • string (String)

    human-readable name

Returns:

  • (String)

    Ruby class name (PascalCase, no spaces/special chars)



23
24
25
# File 'lib/au_ps_inferno/generator/naming.rb', line 23

def build_class_name(string)
  camel_case(remove_special_characters(string)).gsub(' ', '')
end

.build_id(string) ⇒ String

Returns snake_case id (lowercase, underscores, no special chars).

Parameters:

  • string (String, Symbol)

    human-readable name or test type id (symbol); Symbol converted via .to_s

Returns:

  • (String)

    snake_case id (lowercase, underscores, no special chars)



29
30
31
32
# File 'lib/au_ps_inferno/generator/naming.rb', line 29

def build_id(string)
  s = string.to_s
  remove_special_characters(s.include?(' ') ? s.gsub(' ', '_') : s).downcase
end

.camel_case(string) ⇒ String

Returns PascalCase (e.g. "Bundle Validation" => "BundleValidation").

Parameters:

  • string (String)

    space-separated or mixed-case string

Returns:

  • (String)

    PascalCase (e.g. "Bundle Validation" => "BundleValidation")



10
11
12
# File 'lib/au_ps_inferno/generator/naming.rb', line 10

def camel_case(string)
  string.to_s.split.map(&:capitalize).join
end

.remove_special_characters(string) ⇒ String

Returns with $ . , ( ) - removed.

Parameters:

  • string (String)

Returns:

  • (String)

    with $ . , ( ) - removed



16
17
18
19
# File 'lib/au_ps_inferno/generator/naming.rb', line 16

def remove_special_characters(string)
  special_characters = ['$', '.', ',', '(', ')', '-']
  string.to_s.gsub(Regexp.union(special_characters), '')
end

Instance Method Details

#build_class_name(string) ⇒ Object



44
45
46
# File 'lib/au_ps_inferno/generator/naming.rb', line 44

def build_class_name(string)
  Naming.build_class_name(string)
end

#build_id(string) ⇒ Object



48
49
50
# File 'lib/au_ps_inferno/generator/naming.rb', line 48

def build_id(string)
  Naming.build_id(string)
end

#camel_case(string) ⇒ Object

Instance methods for use with include Naming



36
37
38
# File 'lib/au_ps_inferno/generator/naming.rb', line 36

def camel_case(string)
  Naming.camel_case(string)
end

#remove_special_characters(string) ⇒ Object



40
41
42
# File 'lib/au_ps_inferno/generator/naming.rb', line 40

def remove_special_characters(string)
  Naming.remove_special_characters(string)
end