class ApiClient::Resource::NameResolver

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/api_client/resource/name_resolver.rb, line 10
def initialize(name)
  @name = name
end
resolve(ruby_path) click to toggle source
# File lib/api_client/resource/name_resolver.rb, line 4
def self.resolve(ruby_path)
  new(ruby_path).resolve
end

Public Instance Methods

resolve() click to toggle source
# File lib/api_client/resource/name_resolver.rb, line 14
def resolve
  select_last_item
  underscorize
  lowercase
  name
end

Private Instance Methods

lowercase() click to toggle source
# File lib/api_client/resource/name_resolver.rb, line 32
def lowercase
  @name.downcase!
end
select_last_item() click to toggle source
# File lib/api_client/resource/name_resolver.rb, line 22
def select_last_item
  @name = @name.split('::').last
end
underscorize() click to toggle source

Inspired by ActiveSupport::Inflector#underscore

# File lib/api_client/resource/name_resolver.rb, line 27
def underscorize
  @name.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
  @name.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
end