Project

absolutely

0.01
Repository is archived
Low commit activity in last 3 years
No release in over a year
Convert relative paths to absolute URIs.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Absolutely

A Ruby gem for converting relative paths to absolute URIs.

Gem Downloads Build Maintainability Coverage

Key Features

  • Uses the Addressable Ruby gem for improved URI parsing.
  • Supports Ruby 2.6 and newer.

Getting Started

Before installing and using Absolutely, you'll want to have Ruby 2.6 (or newer) installed. It's recommended that you use a Ruby version managment tool like rbenv, chruby, or rvm.

Absolutely is developed using Ruby 2.6.10 and is additionally tested against Ruby 2.7, 3.0, and 3.1 using GitHub Actions.

Installation

If you're using Bundler, add Absolutely to your project's Gemfile:

source 'https://rubygems.org'

gem 'absolutely'

…and hop over to your command prompt and run…

$ bundle install

Usage

Basic Usage

With Absolutely added to your project's Gemfile and installed, you may convert relative URIs to absolute URIs by doing:

require 'absolutely'

uri = Absolutely.uri(base: 'https://example.com', relative: '/foo').to_abs

puts uri # => String: 'https://example.com/foo'

This example combines the supplied base value (https://example.com) and combines it with the supplied relative value (/foo), returning the string https://example.com/foo.

You may obtain the same results using this slightly shorter version:

require 'absolutely'

uri = Absolutely.to_abs(base: 'https://example.com', relative: '/foo')

puts uri # => 'https://example.com/foo'

Note that if the value passed as relative is determined to be an absolute URI, Absolutely will return the value of relative regardless of the value passed as base:

require 'absolutely'

uri = Absolutely.to_abs(base: 'https://example.com', relative: 'https://example.com/foo')

puts uri # => 'https://example.com/foo'

Advanced Usage

Should the need arise, you may work directly with the Absolutely::URI class:

require 'absolutely'

uri = Absolutely::URI.new(base: 'https://example.com', relative: '/foo')

puts uri              # => #<Absolutely::URI>

puts uri.base         # => 'https://example.com'
puts uri.relative     # => '/foo'

puts uri.base_uri     # => #<Addressable::URI URI:https://example.com>
puts uri.relative_uri # => #<Addressable::URI URI:/foo>

puts uri.to_abs       # => 'https://example.com/foo'

For convenience, the base_uri and relative_uri methods return instances of the Addressable::URI class. For more on this class' available methods, see the Addressable Ruby gem's source code.

Contributing

Interested in helping improve Absolutely? Awesome! Your help is greatly appreciated. See CONTRIBUTING.md for details.

Acknowledgments

Absolutely is written and maintained by Jason Garber.

License

Absolutely is freely available under the MIT License. Use it, learn from it, fork it, improve it, change it, tailor it to your needs.