- remove activesupport as a runtime dependency - use alternative to activesupport/inflector methods - use `json_rpc_handler` gem - add json_rpc_handler to gem dependencies
26 lines
511 B
Ruby
26 lines
511 B
Ruby
# typed: strict
|
|
# frozen_string_literal: true
|
|
|
|
module ModelContextProtocol
|
|
module StringUtils
|
|
extend self
|
|
|
|
def handle_from_class_name(class_name)
|
|
underscore(demodulize(class_name))
|
|
end
|
|
|
|
private
|
|
|
|
def demodulize(path)
|
|
path.to_s.split("::").last || path.to_s
|
|
end
|
|
|
|
def underscore(camel_cased_word)
|
|
camel_cased_word.dup
|
|
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
|
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
|
.tr("-", "_")
|
|
.downcase
|
|
end
|
|
end
|
|
end
|