Sha256: 671b13233494171e47368462538345628af02d9f0d8e5999ad25e4d2e7e129d8
Contents?: true
Size: 850 Bytes
Versions: 3
Compression:
Stored size: 850 Bytes
Contents
# frozen_string_literal: true begin require "dry/inflector" rescue LoadError # noop end begin require "active_support/inflector" rescue LoadError # noop end module SiteMaps::Primitives class String < ::String def classify new_str = if defined?(Dry::Inflector) Dry::Inflector.new.classify(self) elsif defined?(ActiveSupport::Inflector) ActiveSupport::Inflector.classify(self) else split("_").map(&:capitalize).join end self.class.new(new_str) end def underscore new_str = sub(/^::/, "") .gsub("::", "/") .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr("-", "_") .tr(".", "_") .gsub(/\s/, "_") .gsub(/__+/, "_") .downcase self.class.new(new_str) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
site_maps-0.0.1.beta3 | lib/site_maps/primitives/string.rb |
site_maps-0.0.1.beta2 | lib/site_maps/primitives/string.rb |
site_maps-0.0.1.beta1 | lib/site_maps/primitives/string.rb |