time_will_tell 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7d045ed7cc8e6baa8ef712946a170497f1d1ade3
4
+ data.tar.gz: 72c9d0576641152da145b5b6297c8d6d04cea39a
5
+ SHA512:
6
+ metadata.gz: 860917b1eea35691792b65bf095e24bcdb24767712a4ccbca01f4f05d9466b67b03246bdc9195debcb0b4af799a82a70b52f42079afea36c3d33cf3117f0d90f
7
+ data.tar.gz: d7744d0cba56ef69ed4c189fc660d64349be7ec67fcf7a39e309e7d5f6170ee156afe041117a3a2bb7bad0e14be82399595b7cefef9528dd111b385790b93da9
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in time_will_tell.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Michel Billard
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # TimeWillTell
2
+
3
+ Specialized conversions of dates and times to strings.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'time_will_tell'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install time_will_tell
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it ( http://github.com/<my-github-username>/time_will_tell/fork )
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new("spec")
@@ -0,0 +1,3 @@
1
+ To copy the default TimeWillTell locale file to your Rails App just do:
2
+
3
+ rails generate time_will_tell:install
@@ -0,0 +1,12 @@
1
+ module TimeWillTell
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ desc "Copy TimeWillTell default files"
5
+ source_root File.expand_path("../templates", __FILE__)
6
+
7
+ def copy_locales
8
+ directory "config/locales"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,23 @@
1
+ en:
2
+ time_will_tell:
3
+ date_range:
4
+ different_months_same_year: "%{from_month} %{from_day} %{sep} %{to_month} %{to_day}, %{year}"
5
+ different_years: "%{from_month} %{from_day}, %{from_year} %{sep} %{to_month} %{to_day}, %{to_year}"
6
+ same_month: "%{month} %{from_day} %{sep} %{to_day}, %{year}"
7
+ same_date: "%{month} %{from_day}, %{year}"
8
+
9
+ distance_in_words:
10
+ template: "%{count} %{unit}"
11
+ template_long: "%{rest} and %{last}"
12
+
13
+ units:
14
+ second: second
15
+ minute: minute
16
+ hour: hour
17
+ day: day
18
+ month: month
19
+ year: year
20
+
21
+ special:
22
+ half_an_hour: half an hour
23
+ and_a_half: and a half
@@ -0,0 +1,71 @@
1
+ module TimeWillTell
2
+ module Helpers
3
+ module DateHelper
4
+
5
+ DISTANCES_OF_TIME = [
6
+ { unit: :year, minutes_per_unit: 365*24*60 },
7
+ { unit: :month, minutes_per_unit: 30*24*60 },
8
+ { unit: :day, minutes_per_unit: 24*60 },
9
+ { unit: :hour, minutes_per_unit: 60 },
10
+ { unit: :minute, minutes_per_unit: 1 }
11
+ ].freeze
12
+
13
+ def exact_distance_of_time_in_words(from_time, to_time, options = {})
14
+ options = {
15
+ scope: :'time_will_tell.distance_in_words'
16
+ }.merge!(options)
17
+
18
+ include_seconds = options.fetch(:include_seconds, false)
19
+
20
+ from_time, to_time = to_time, from_time if from_time > to_time
21
+ timespan = to_time - from_time
22
+ distance_in_minutes = (timespan / 60.0).to_i
23
+
24
+ distance_in_words = []
25
+
26
+ I18n.with_options scope: options[:scope] do |locale|
27
+ DISTANCES_OF_TIME.each do |distance_of_time|
28
+ unit = distance_of_time[:unit]
29
+ minutes_per_unit = distance_of_time[:minutes_per_unit].to_f
30
+
31
+ count = (distance_in_minutes / minutes_per_unit).to_i
32
+
33
+ next if count == 0
34
+
35
+ if count == 30 && unit == :minute
36
+ if distance_in_words.empty?
37
+ distance_in_words << locale.t(:'special.half_an_hour')
38
+ else
39
+ distance_in_words << locale.t(:'special.and_a_half')
40
+ end
41
+ else
42
+ distance_in_words << pluralize_unit_with_locale(count, unit, locale)
43
+ end
44
+
45
+ distance_in_minutes -= count * minutes_per_unit
46
+ end
47
+
48
+ if include_seconds && (seconds_count = (timespan % 60).to_i) > 0
49
+ distance_in_words << pluralize_unit_with_locale(seconds_count, 'second', locale)
50
+ end
51
+
52
+ if distance_in_words.length > 2
53
+ locale.t(:template_long, rest: distance_in_words[0..-2].join(' '), last: distance_in_words.last)
54
+ else
55
+ distance_in_words.join(' ')
56
+ end
57
+ end
58
+ end
59
+
60
+ private
61
+
62
+ # Simplified reimplementation of Rails' ActionView::Helpers::TextHelper::pluralize
63
+ def pluralize_unit_with_locale(count, unit, locale)
64
+ singular = locale.t(:"units.#{unit}")
65
+ unit_word = count == 1 ? singular : singular.pluralize
66
+ locale.t(:template, count: count, unit: unit_word)
67
+ end
68
+
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,47 @@
1
+ module TimeWillTell
2
+ module Helpers
3
+ module DateRangeHelper
4
+
5
+ def date_range(from_date, to_date, options = {})
6
+ format = options.fetch(:format, :short)
7
+ scope = options.fetch(:scope, 'time_will_tell.date_range')
8
+ separator = options.fetch(:separator, '—')
9
+
10
+ month_names = format.to_sym == :short ? I18n.t("date.abbr_month_names") : I18n.t("date.month_names")
11
+
12
+ from_date, to_date = to_date, from_date if from_date > to_date
13
+ from_day = from_date.day
14
+ from_month = month_names[from_date.month]
15
+ from_year = from_date.year
16
+ to_day = to_date.day
17
+
18
+ dates = { from_day: from_day, sep: separator }
19
+
20
+ if from_date == to_date
21
+ template = :same_date
22
+ dates.merge!(month: from_month, year: from_year)
23
+ elsif from_date.month == to_date.month && from_date.year == to_date.year
24
+ template = :same_month
25
+ dates.merge!(to_day: to_day, month: from_month, year: from_year)
26
+ else
27
+ to_month = month_names[to_date.month]
28
+
29
+ dates.merge!(from_month: from_month, to_month: to_month, to_day: to_day)
30
+
31
+ if from_date.year == to_date.year
32
+ template = :different_months_same_year
33
+ dates.merge!(year: from_year)
34
+ else
35
+ to_year = to_date.year
36
+
37
+ template = :different_years
38
+ dates.merge!(from_year: from_year, to_year: to_year)
39
+ end
40
+ end
41
+
42
+ I18n.t("#{scope}.#{template}", dates)
43
+ end
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,10 @@
1
+ require 'rails/railtie'
2
+ require 'time_will_tell/helpers/date_helper'
3
+ require 'time_will_tell/helpers/date_range_helper'
4
+
5
+ module TimeWillTell
6
+ class Railtie < Rails::Railtie
7
+ config.eager_load_namespaces << TimeWillTell::Helpers::DateHelper
8
+ config.eager_load_namespaces << TimeWillTell::Helpers::DateRangeHelper
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ module TimeWillTell
2
+ VERSION = "0.0.1".freeze
3
+ end
@@ -0,0 +1,2 @@
1
+ require 'time_will_tell/version'
2
+ require 'time_will_tell/railtie' if defined?(Rails)
@@ -0,0 +1,53 @@
1
+ fr:
2
+ date:
3
+ abbr_month_names:
4
+ - ~
5
+ - jan.
6
+ - fév.
7
+ - mar.
8
+ - avr.
9
+ - mai
10
+ - juin
11
+ - juil.
12
+ - août
13
+ - sept.
14
+ - oct.
15
+ - nov.
16
+ - déc.
17
+ month_names:
18
+ - ~
19
+ - janvier
20
+ - février
21
+ - mars
22
+ - avril
23
+ - mai
24
+ - juin
25
+ - juillet
26
+ - août
27
+ - septembre
28
+ - octobre
29
+ - novembre
30
+ - décembre
31
+
32
+ time_will_tell:
33
+ date_range:
34
+ different_months_same_year: "%{from_day} %{from_month} %{sep} %{to_day} %{to_month} %{year}"
35
+ different_years: "%{from_day} %{from_month} %{from_year} %{sep} %{to_day} %{to_month} %{to_year}"
36
+ same_month: "%{from_day} %{sep} %{to_day} %{month} %{year}"
37
+ same_date: "%{from_day} %{month} %{year}"
38
+
39
+ distance_in_words:
40
+ template: "%{count} %{unit}"
41
+ template_long: "%{rest} et %{last}"
42
+
43
+ units:
44
+ second: seconde
45
+ minute: minute
46
+ hour: heure
47
+ day: jour
48
+ month: mois
49
+ year: an
50
+
51
+ special:
52
+ half_an_hour: une demie heure
53
+ and_a_half: et demie
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+
3
+ describe TimeWillTell::Helpers::DateHelper do
4
+ # A helper instance with the DateHelper module included
5
+ let(:helper) do
6
+ Class.new do
7
+ include TimeWillTell::Helpers::DateHelper
8
+ end.new
9
+ end
10
+
11
+ SECOND = 1
12
+ MINUTE = 60 * SECOND
13
+ HOUR = 60 * MINUTE
14
+ DAY = 24 * HOUR
15
+ MONTH = 30 * DAY
16
+ YEAR = 365 * DAY
17
+
18
+ describe '#exact_distance_of_time_in_words' do
19
+ {
20
+ [2 * HOUR + 33 * MINUTE + 44 * SECOND] => '2 hours 33 minutes',
21
+ [1 * HOUR + 30 * MINUTE] => '1 hour and a half',
22
+ [3 * YEAR + 11 * MONTH + 21 * SECOND, include_seconds: true] => '3 years 11 months and 21 seconds',
23
+ [45 * DAY + 1 * MINUTE] => '1 month 15 days and 1 minute',
24
+ [1 * DAY + 2 * HOUR + 30 * MINUTE + 5 * SECOND, include_seconds: true] => '1 day 2 hours and a half and 5 seconds',
25
+ [30 * MINUTE] => 'half an hour',
26
+ }.each do |args, expected|
27
+ it "outputs '#{expected}'" do
28
+ timespan = args[0]
29
+ options = args[1]
30
+
31
+ from_time = Time.now
32
+ to_time = from_time + timespan
33
+
34
+ expect(
35
+ helper.exact_distance_of_time_in_words(*[from_time, to_time, options].compact)
36
+ ).to eq expected
37
+ end
38
+ end
39
+
40
+ it 'swaps from_time and to_time to get a positive timespan' do
41
+ to_time = Time.now
42
+ from_time = Time.now + (4 * DAY + 15 * MINUTE)
43
+
44
+ expect(
45
+ helper.exact_distance_of_time_in_words(from_time, to_time)
46
+ ).to eq '4 days 15 minutes'
47
+ end
48
+
49
+ context 'with a custom locale' do
50
+ let(:locale) { :fr }
51
+
52
+ {
53
+ [2 * HOUR + 33 * MINUTE + 44 * SECOND] => '2 heures 33 minutes',
54
+ [1 * HOUR + 30 * MINUTE] => '1 heure et demie',
55
+ [3 * YEAR + 11 * MONTH + 21 * SECOND, include_seconds: true] => '3 ans 11 mois et 21 secondes',
56
+ [45 * DAY + 1 * MINUTE] => '1 mois 15 jours et 1 minute',
57
+ [1 * DAY + 2 * HOUR + 30 * MINUTE + 5 * SECOND, include_seconds: true] => '1 jour 2 heures et demie et 5 secondes',
58
+ [30 * MINUTE] => 'une demie heure',
59
+ }.each do |args, expected|
60
+ it "outputs '#{expected}'" do
61
+ timespan = args[0]
62
+ options = args[1]
63
+
64
+ from_time = Time.now
65
+ to_time = from_time + timespan
66
+
67
+ I18n.with_locale locale do
68
+ expect(
69
+ helper.exact_distance_of_time_in_words(*[from_time, to_time, options].compact)
70
+ ).to eq expected
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,88 @@
1
+ require 'spec_helper'
2
+
3
+ describe TimeWillTell::Helpers::DateRangeHelper do
4
+ # A helper instance with the DateRangeHelper module included
5
+ let(:helper) do
6
+ Class.new do
7
+ include TimeWillTell::Helpers::DateRangeHelper
8
+ end.new
9
+ end
10
+
11
+ describe '#date_range' do
12
+ {
13
+ # short form
14
+ [Date.new(2012, 10, 3), Date.new(2012, 10, 8)] => 'Oct 3 — 8, 2012',
15
+ [Date.new(2013, 1, 30), Date.new(2013, 2, 5)] => 'Jan 30 — Feb 5, 2013',
16
+ [Date.new(2012, 12, 26), Date.new(2013, 1, 3)] => 'Dec 26, 2012 — Jan 3, 2013',
17
+ [Date.new(2013, 8, 24), Date.new(2013, 8, 24)] => 'Aug 24, 2013',
18
+ [Date.new(2014, 2, 10), Date.new(2015, 2, 10)] => 'Feb 10, 2014 — Feb 10, 2015',
19
+
20
+ # long form
21
+ [Date.new(2012, 10, 3), Date.new(2012, 10, 8), format: :long] => 'October 3 — 8, 2012',
22
+ [Date.new(2013, 1, 30), Date.new(2013, 2, 5), format: :long] => 'January 30 — February 5, 2013',
23
+ [Date.new(2012, 12, 26), Date.new(2013, 1, 3), format: :long] => 'December 26, 2012 — January 3, 2013',
24
+ [Date.new(2013, 8, 24), Date.new(2013, 8, 24), format: :long] => 'August 24, 2013',
25
+ [Date.new(2014, 2, 10), Date.new(2015, 2, 10), format: :long] => 'February 10, 2014 — February 10, 2015',
26
+ }.each do |args, expected|
27
+ it "outputs '#{expected}" do
28
+ from_date = args[0]
29
+ to_date = args[1]
30
+ options = args[2]
31
+
32
+ expect(
33
+ helper.date_range(*[from_date, to_date, options].compact)
34
+ ).to eq expected
35
+ end
36
+ end
37
+
38
+ it 'swaps from_date and to_date to get a positive range' do
39
+ from_date = Date.new(2014, 3, 17)
40
+ to_date = Date.new(2000, 1, 1)
41
+
42
+ expect(
43
+ helper.date_range(from_date, to_date)
44
+ ).to eq 'Jan 1, 2000 — Mar 17, 2014'
45
+ end
46
+
47
+ it 'accepts a custom separator' do
48
+ from_date = Date.new(2013, 10, 31)
49
+ to_date = Date.new(2013, 12, 25)
50
+
51
+ expect(
52
+ helper.date_range(from_date, to_date, separator: '~')
53
+ ).to eq 'Oct 31 ~ Dec 25, 2013'
54
+ end
55
+
56
+ context 'with a custom locale' do
57
+ let(:locale) { :fr }
58
+
59
+ {
60
+ # short form
61
+ [Date.new(2012, 10, 3), Date.new(2012, 10, 8)] => '3 — 8 oct. 2012',
62
+ [Date.new(2013, 1, 30), Date.new(2013, 2, 5)] => '30 jan. — 5 fév. 2013',
63
+ [Date.new(2012, 12, 26), Date.new(2013, 1, 3)] => '26 déc. 2012 — 3 jan. 2013',
64
+ [Date.new(2013, 8, 24), Date.new(2013, 8, 24)] => '24 août 2013',
65
+ [Date.new(2014, 2, 10), Date.new(2015, 2, 10)] => '10 fév. 2014 — 10 fév. 2015',
66
+
67
+ # long form
68
+ [Date.new(2012, 10, 3), Date.new(2012, 10, 8), format: :long] => '3 — 8 octobre 2012',
69
+ [Date.new(2013, 1, 30), Date.new(2013, 2, 5), format: :long] => '30 janvier — 5 février 2013',
70
+ [Date.new(2012, 12, 26), Date.new(2013, 1, 3), format: :long] => '26 décembre 2012 — 3 janvier 2013',
71
+ [Date.new(2013, 8, 24), Date.new(2013, 8, 24), format: :long] => '24 août 2013',
72
+ [Date.new(2014, 2, 10), Date.new(2015, 2, 10), format: :long] => '10 février 2014 — 10 février 2015',
73
+ }.each do |args, expected|
74
+ it "outputs '#{expected}'" do
75
+ from_date = args[0]
76
+ to_date = args[1]
77
+ options = args[2]
78
+
79
+ I18n.with_locale locale do
80
+ expect(
81
+ helper.date_range(*[from_date, to_date, options].compact)
82
+ ).to eq expected
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,13 @@
1
+ require 'rails/railtie'
2
+ require 'time_will_tell'
3
+
4
+ I18n.load_path += Dir[ File.join(File.dirname(__FILE__), '../lib/generators/time_will_tell/templates/config/locales/*.yml') ]
5
+ I18n.load_path += Dir[ File.join(File.dirname(__FILE__), './fixtures/locales/*.yml') ]
6
+ I18n.default_locale = :en
7
+
8
+ # Require this file using `require 'spec_helper'` to ensure that it is only
9
+ # loaded once.
10
+ #
11
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
12
+ RSpec.configure do |config|
13
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'time_will_tell/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "time_will_tell"
8
+ spec.version = TimeWillTell::VERSION
9
+ spec.authors = ["Michel Billard"]
10
+ spec.email = ["michel@mbillard.com"]
11
+ spec.summary = %q{Specialized conversions of dates and times to strings.}
12
+ # spec.description = %q{TODO: Write a longer description. Optional.}
13
+ spec.homepage = "http://github.com/mbillard/time_will_tell"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency 'railties', '>= 3.2'
22
+
23
+ spec.add_development_dependency 'bundler', '~> 1.5'
24
+ spec.add_development_dependency 'rake'
25
+ spec.add_development_dependency 'rspec'
26
+ end
metadata ADDED
@@ -0,0 +1,123 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: time_will_tell
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Michel Billard
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '3.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '3.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.5'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description:
70
+ email:
71
+ - michel@mbillard.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .rspec
78
+ - Gemfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - lib/generators/USAGE
83
+ - lib/generators/install_generator.rb
84
+ - lib/generators/time_will_tell/templates/config/locales/time_will_tell.en.yml
85
+ - lib/time_will_tell.rb
86
+ - lib/time_will_tell/helpers/date_helper.rb
87
+ - lib/time_will_tell/helpers/date_range_helper.rb
88
+ - lib/time_will_tell/railtie.rb
89
+ - lib/time_will_tell/version.rb
90
+ - spec/fixtures/locales/time_will_tell.fr.yml
91
+ - spec/helpers/date_helper_spec.rb
92
+ - spec/helpers/date_range_helper_spec.rb
93
+ - spec/spec_helper.rb
94
+ - time_will_tell.gemspec
95
+ homepage: http://github.com/mbillard/time_will_tell
96
+ licenses:
97
+ - MIT
98
+ metadata: {}
99
+ post_install_message:
100
+ rdoc_options: []
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ requirements: []
114
+ rubyforge_project:
115
+ rubygems_version: 2.0.3
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: Specialized conversions of dates and times to strings.
119
+ test_files:
120
+ - spec/fixtures/locales/time_will_tell.fr.yml
121
+ - spec/helpers/date_helper_spec.rb
122
+ - spec/helpers/date_range_helper_spec.rb
123
+ - spec/spec_helper.rb