Module: Dsu::Support::TransformProjectName

Included in:
Dsu::Services::EntryGroup::ExporterService
Defined in:
lib/dsu/support/transform_project_name.rb

Constant Summary collapse

TRANSFORM_PROJECT_NAME_REGEX =
%r{[^/\w\s]|_}
TRANSFORM_PROJECT_NAME_SEPARATOR =
'-'

Class Method Summary collapse

Class Method Details

.transform_project_name(project_name, options: {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/dsu/support/transform_project_name.rb', line 11

def transform_project_name(project_name, options: {})
  normalized_name = project_name
    .gsub(TRANSFORM_PROJECT_NAME_REGEX, ' ')   # Replace non-word characters and underscores with space
    .strip                                     # Remove leading and trailing spaces
    .squeeze(' ')                              # Convert consecutive spaces to a single space
    .tr(' ', TRANSFORM_PROJECT_NAME_SEPARATOR) # Replace spaces with hyphens
    .squeeze(TRANSFORM_PROJECT_NAME_SEPARATOR) # Ensure no consecutive hyphens

  normalized_name.downcase! if options[:downcase]
  normalized_name
end