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