Sha256: cf9c5cfb86c813570d9a0d1c317a163a95f471fcf747759e93020a5a2dd5153f
Contents?: true
Size: 1.48 KB
Versions: 5
Compression:
Stored size: 1.48 KB
Contents
# frozen_string_literal: true module Leftovers ruby_version = Gem::Version.new(RUBY_VERSION) unless ruby_version >= Gem::Version.new('2.5') module StringDeletePrefixSuffix refine ::String do def delete_prefix!(str) slice!(0..(str.length - 1)) if start_with?(str) self end def delete_suffix!(str) slice!(-str.length..-1) if end_with?(str) self end def delete_prefix(str) dup.delete_prefix!(str) end def delete_suffix(str) dup.delete_suffix!(str) end end end require 'yaml' module YAMLSymbolizeNames refine YAML.singleton_class do alias_method :safe_load_without_symbolize_names, :safe_load def safe_load(path, *args, symbolize_names: false, **kwargs) if symbolize_names symbolize_names!(safe_load_without_symbolize_names(path, *args, **kwargs)) else safe_load_without_symbolize_names(path, *args, **kwargs) end end private def symbolize_names!(obj) # rubocop:disable Metrics/MethodLength case obj when Hash obj.keys.each do |key| # rubocop:disable Style/HashEachMethods # each_key never finishes. obj[key.to_sym] = symbolize_names!(obj.delete(key)) end when Array obj.map! { |ea| symbolize_names!(ea) } end obj end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems