Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/darkleaf/date_range_formatter

The simple tool to make work with date ranges in Ruby more enjoyable.
https://github.com/darkleaf/date_range_formatter

Last synced: 22 days ago
JSON representation

The simple tool to make work with date ranges in Ruby more enjoyable.

Lists

README

        

# Date Range Formatter

![Build Status](https://github.com/darkleaf/date_range_formatter/actions/workflows/main.yml/badge.svg)
[![Gem Version](https://badge.fury.io/rb/date_range_formatter.svg)](http://badge.fury.io/rb/date_range_formatter)

This gem makes working with dates more pretty. It works well with Ruby application and most frameworks like [Ruby on Rails](https://github.com/rails/rails "Ruby on Rails").

## Installation
Very simple. Just add this code to Gemfile:

gem 'date_range_formatter'

## Usage

Imagine the situation when you need to show dates of some stuff at your website. For example:

1 - 9 May 2014
2 January 2015
15 July 2016 - 13 February 2017

After that you should call the module DateRangeFormatter with arguments wchich describes the range of dates and format to display. For example, we have date_beginning, date_ending and format by default:

```ruby
DateRangeFormatter.format('2013-01-14', '2013-02-15')
#=> '14 January - 15 February 2013'
```

Also you can use `format_range` method and enumerable object:

```ruby
DateRangeFormatter.format_range(['2013-02-20', '2013-01-14', '2013-01-15'])
#=> '14 January - 20 February 2013'
```

If you want to show dates by another format, you can call it:

```ruby
date_beginning = Date.new(2013, 01, 14)
date_ending = Date.new(2014, 02, 15)
date_range_str = DateRangeFormatter.format(date_beginning, date_ending, 'short')
```

If you want to show hours, you can call it:
```ruby
DateRangeFormatter.format('10:00 2013-01-14', '20:00 2013-01-14', :with_time)
#=> '14 January 2013, 10am - 08pm'
```

See [predefined formats](https://github.com/darkleaf/date_range_formatter/blob/master/lib/locale/en.yml). Also you can override this formats or add your own.

That's all. Enjoy your profit!

## Other

This idea was appeared by looking at the [article](https://coderwall.com/p/fkg-ng). Thanks to [@mbillard](https://github.com/mbillard).