Sha256: 0f64744278d8744b91b985bfdf32a107c5eee2d20e567cec08bfa4a5d7024aa6

Contents?: true

Size: 406 Bytes

Versions: 4

Compression:

Stored size: 406 Bytes

Contents

require 'cgi'

module Selly
  class Resource
    def self.class_name
      self.name.split('::')[-1]
    end

    def self.resource_url
      "/#{CGI.escape(to_snake_case(class_name))}"
    end

    def self.to_snake_case(string)
      string.gsub(/::/, '/').
        gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
        gsub(/([a-z\d])([A-Z])/, '\1_\2').
        tr("-", "_").
        downcase
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
selly-1.1.2 lib/selly/resource.rb
selly-1.1.1 lib/selly/resource.rb
selly-1.1.0 lib/selly/resource.rb
selly-1.0.1 lib/selly/resource.rb