Method: Heroics.ruby_name

Defined in:
lib/heroics/naming.rb

.ruby_name(name) ⇒ String

Process a name to make it suitable for use as a Ruby method name.

Parameters:

  • name (String)

    The name to process.

Returns:

  • (String)

    The new name with capitals converted to lowercase, and characters replaced or removed based on the Configuration.ruby_names_replacement_patterns rules

Raises:

  • (SchemaError)

    Raised if the name contains invalid characters.



10
11
12
13
14
15
16
17
18
19
# File 'lib/heroics/naming.rb', line 10

def self.ruby_name(name)
  patterns = Heroics::Configuration.defaults.ruby_name_replacement_patterns

  ruby_name = patterns.reduce(name.downcase) do |memo, (regex, replacement)|
    memo.gsub(regex, replacement)
  end

  raise SchemaError.new("Name '#{name}' converts to invalid Ruby name '#{ruby_name}'.") if ruby_name =~ /\W/
  ruby_name
end