module Truncator::ExtendedURI

Public Instance Methods

ordinary_hostname?() click to toggle source
# File lib/truncator/extended_uri.rb, line 8
def ordinary_hostname?
  if %w(https ftp).include?(self.scheme) || self.userinfo || port_defined?
    false
  else
    true
  end
end
path_blank?() click to toggle source
# File lib/truncator/extended_uri.rb, line 16
def path_blank?
  ['', nil, '/'].include? self.path
end
paths() click to toggle source
# File lib/truncator/extended_uri.rb, line 20
def paths
  self.path.split('/').delete_if(&:empty?)
end
paths=(paths_array) click to toggle source
# File lib/truncator/extended_uri.rb, line 24
def paths=(paths_array)
  _path = paths_array.join('/')
  # We should insure that we have leading '/'
  _path.prepend('/') unless _path[0] == '/'
  self.path = _path
  self
end
port_defined?() click to toggle source
# File lib/truncator/extended_uri.rb, line 61
def port_defined?
  port = self.port
  self.to_s.include? ":#{port}"
end
query_bug_in_ruby?() click to toggle source
# File lib/truncator/extended_uri.rb, line 66
def query_bug_in_ruby?
  Gem::Version.new(RUBY_VERSION) <= Gem::Version.new('2.1.0')
end
query_parameters() click to toggle source
# File lib/truncator/extended_uri.rb, line 32
def query_parameters
  if query_bug_in_ruby?
    begin
      URI.decode_www_form(self.query)
    rescue ArgumentError # fixed in ruby 2.1.0 r40460
      raise QueryParamWithoutValueError
    end
  else
    URI.decode_www_form(self.query)
  end
end
query_parameters=(params) click to toggle source
# File lib/truncator/extended_uri.rb, line 44
def query_parameters=(params)
  self.query = URI.encode_www_form(params)
end
special_format() click to toggle source

App specific

# File lib/truncator/extended_uri.rb, line 49
def special_format
  str = self.to_s
  if ordinary_hostname?
    str.sub!(/\Ahttp:\/\//, '') # remove http protocol
    str.gsub(/\/{2,}/, '/') # replace multiple slashes by one
    str.chomp!('/') # remove slash from the end
  end
  str
end