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.
- Host: GitHub
- URL: https://github.com/darkleaf/date_range_formatter
- Owner: darkleaf
- License: mit
- Created: 2014-04-23T09:54:25.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2022-10-02T19:30:20.000Z (over 1 year ago)
- Last Synced: 2024-04-01T20:20:31.789Z (about 2 months ago)
- Language: Ruby
- Homepage:
- Size: 22.5 KB
- Stars: 31
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Lists
- awesome-ruby - date_range_formatter - The simple tool to make work with date ranges in Ruby more enjoyable. (Date and Time Processing)
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 2017After 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).