Sha256: 12bac1ba5cb7d6329accd872b8bc735dd8d55ce76f23d9097d069e70c6f0e17e

Contents?: true

Size: 543 Bytes

Versions: 8

Compression:

Stored size: 543 Bytes

Contents

module StringRefinements
  UNESCAPABLE_PATTERNS = [
      %r{_design/.+/_view/.+}
    ]

  refine String do
    #FROM ActiveModel::Name
    def underscore
      to_s.gsub(/::/, '/').
        gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
        gsub(/([a-z\d])([A-Z])/,'\1_\2').
        tr("-", "_").
        downcase
    end

    def cgi_escape
      return if nil?
      return self unless escapable?
      CGI.escape self
    end

    def escapable?
      UNESCAPABLE_PATTERNS.none? do |pattern|
        self =~ pattern
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
dolly-3.1.5 lib/refinements/string_refinements.rb
dolly-3.1.4 lib/refinements/string_refinements.rb
dolly-3.1.3 lib/refinements/string_refinements.rb
dolly-3.1.2 lib/refinements/string_refinements.rb
dolly-3.1.1 lib/refinements/string_refinements.rb
dolly-3.1.0 lib/refinements/string_refinements.rb
dolly-3.0.1 lib/refinements/string_refinements.rb
dolly-3.0.0 lib/refinements/string_refinements.rb