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