Sha256: ad26348af7a05bb8a77291614af783562e181fe6b798d9b9a8b585edbfa89571

Contents?: true

Size: 961 Bytes

Versions: 2

Compression:

Stored size: 961 Bytes

Contents

require 'securerandom'
module Rack::App::Utils
  extend self

  # Normalizes URI path.
  #
  # Strips off trailing slash and ensures there is a leading slash.
  #
  #   normalize_path("/foo")  # => "/foo"
  #   normalize_path("/foo/") # => "/foo"
  #   normalize_path("foo")   # => "/foo"
  #   normalize_path("")      # => "/"
  def normalize_path(path)
    path = "/#{path}"
    path.squeeze!('/')
    path.sub!(%r{/+\Z}, '')
    path = '/' if path == ''
    path
  end

  def pwd(*path_parts)

    root_folder =if ENV['BUNDLE_GEMFILE']
                   ENV['BUNDLE_GEMFILE'].split(File::Separator)[0..-2].join(File::Separator)
                 else
                   Dir.pwd.to_s
                 end

    return File.join(root_folder,*path_parts)

  end

  def uuid
    ary = SecureRandom.random_bytes(16).unpack("NnnnnN")
    ary[2] = (ary[2] & 0x0fff) | 0x4000
    ary[3] = (ary[3] & 0x3fff) | 0x8000
    "%08x-%04x-%04x-%04x-%04x%08x" % ary
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rack-app-0.17.0 lib/rack/app/utils.rb
rack-app-0.16.0 lib/rack/app/utils.rb