lib/appmap/util.rb in appmap-0.54.0 vs lib/appmap/util.rb in appmap-0.54.1
- old
+ new
@@ -122,11 +122,11 @@
# to Swagger-style paths like /org/{org_id}
def swaggerize_path(path)
path = path.split('(.')[0]
tokens = path.split('/')
tokens.map do |token|
- token.gsub /^:(.*)/, '{\1}'
+ token.gsub(/^:(.*)/, '{\1}')
end.join('/')
end
# Atomically writes AppMap data to +filename+.
def write_appmap(filename, appmap)
@@ -152,10 +152,22 @@
def classify(word)
word.split(/[\-_]/).map(&:capitalize).join
end
+ # https://api.rubyonrails.org/v6.1.3.2/classes/ActiveSupport/Inflector.html#method-i-underscore
+ def underscore(camel_cased_word)
+ return camel_cased_word unless /[A-Z-]|::/.match?(camel_cased_word)
+ word = camel_cased_word.to_s.gsub("::", "/")
+ # word.gsub!(inflections.acronyms_underscore_regex) { "#{$1 && '_' }#{$2.downcase}" }
+ word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
+ word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
+ word.tr!("-", "_")
+ word.downcase!
+ word
+ end
+
def deep_dup(hash)
# This is a simple way to avoid the need for deep_dup from activesupport.
Marshal.load(Marshal.dump(hash))
end
@@ -176,8 +188,12 @@
::Rails.logger.debug msg
elsif ENV['DEBUG'] == 'true'
warn msg
end
end
+
+ def ruby_minor_version
+ @ruby_minor_version ||= RUBY_VERSION.split('.')[0..1].join('.').to_f
+ end
end
end
end