Module: GraphWeaver::Inflect

Included in:
Codegen, Codegen::Emit, Testing::Values
Defined in:
lib/graph_weaver/inflect.rb

Overview

GraphQL names are plain camelCase/SCREAMING_SNAKE — no acronym edge cases, so minimal inflection beats an activesupport dependency

Class Method Summary collapse

Class Method Details

.camelize(name) ⇒ Object



14
15
16
17
# File 'lib/graph_weaver/inflect.rb', line 14

def camelize(name)
  # reject: leading underscores split into empty parts (_Service, _and)
  name.split("_").reject(&:empty?).map { |part| "#{part[0].upcase}#{part[1..]}" }.join
end

.underscore(name) ⇒ Object



10
11
12
# File 'lib/graph_weaver/inflect.rb', line 10

def underscore(name)
  name.gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase
end