olauzon / chronic_distance
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
commit f3a013efaa73bfb7d3b29a7001f01bf4fdd53e87
tree 5e09aac2ff58e3db18fedd328941880920e1bf46
parent cf29914eedd1e269b7bd2a7813044d81bdc714ec
tree 5e09aac2ff58e3db18fedd328941880920e1bf46
parent cf29914eedd1e269b7bd2a7813044d81bdc714ec
| name | age | message | |
|---|---|---|---|
| |
.autotest | ||
| |
.gitignore | ||
| |
MIT-LICENSE | Sun Mar 01 20:06:38 -0800 2009 | |
| |
README.rdoc | ||
| |
Rakefile | Sun Mar 01 20:06:38 -0800 2009 | |
| |
VERSION.yml | ||
| |
chronic_distance.gemspec | ||
| |
lib/ | ||
| |
spec/ |
README.rdoc
Chronic Distance
A simple Ruby natural language parser for distances. Given a parse-able string distance, it returns the distance in millimeters.
The reverse can also be accomplished with the output method. Given a distance in millimeters, it outputs a string like "4 kilometers" or "4km" depending on the desired format.
Installation
$ sudo gem sources -a http://gems.github.com
$ sudo gem install olauzon-chronic_distance
Usage
>> require 'chronic_distance'
=> true
Parsing examples
>> ChronicDistance.parse('5 kilometers')
=> 5000000
>> ChronicDistance.parse('4 miles')
=> 6437376
>> ChronicDistance.parse('four miles')
=> 6437376
>> ChronicDistance.parse('1000m')
=> 1000000
>> ChronicDistance.parse('1000 meters')
=> 1000000
>> ChronicDistance.parse('ten yards')
=> 9144.0
>> ChronicDistance.parse('500 feet')
=> 152400.0
Nil is returned if the string can’t be parsed:
>> ChronicDistance.parse('kilometers')
=> nil
Output examples
>> ChronicDistance.output(5000000)
=> 5000000 mm
>> ChronicDistance.output(5000000, :format => :short, :unit => 'kilometers')
=> 5km
>> ChronicDistance.output(5000000, :format => :long, :unit => 'kilometers')
=> 5 kilometers
>> ChronicDistance.output(5000000, :unit => 'meters')
=> 5000 m
>> ChronicDistance.output(5000000, :format => :long, :unit => 'miles')
=> 3.10685596118667 miles
Inspiration
ChronicDistance borrows heavily from:
- hpoydar’s ChronicDuration github.com/hpoydar/chronic_duration
- mojombo’s Chronic github.com/mojombo/chronic
TODO
- Benchmark, optimize
- Other locale support
Copyright © 2009 Olivier Lauzon. See MIT-LICENSE for details.

