dotiw 3.0.1 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a3a8e04cc6ea63912711e2a1fc4394513eaad843
4
- data.tar.gz: 04fe6b44d6d5b34cdf2949bd44eebfbf055743bd
3
+ metadata.gz: 0b71e3935ad86d61036e453b41579881ac1a8f3b
4
+ data.tar.gz: 26e1ce49677a8dead460ac3c3b0b4db93f3e196b
5
5
  SHA512:
6
- metadata.gz: 8fa225fca7fcf4f3e7aa8a948ca0b5080f780e0b1f16450f9456b052e3f11aab5828390f64278f239491cbb4e0afb131283cf2277ae8eb0d17b127b560410b51
7
- data.tar.gz: 4d932e653886ebfbf9ee830bcf70aa817ef608d0759244eee579c19a4f9429583f79a5254c7d6d2b17a0aa49b53198bc9e320afc99642eeae0e85bd858a4924b
6
+ metadata.gz: d6157f043c6114509982a82b1bc5c6973b81bbcb7cb4293a8388dd1736cac3427c578301f866d86f685a201fdc7e1163067c9ef4e32d2a738804578290a4c6b8
7
+ data.tar.gz: 837d5ec5c403dcb288bba9b3be908b98ad9d6e7191b3f777014f5b77242c84ff5d48fb43ce25c4614bcd2ff6659b34d2e8b74f4400e7e213c41dc8fe9a8ccdb8
@@ -1,5 +1,11 @@
1
1
  rvm:
2
- - 2.1.3
2
+ - 2.3.0
3
+ - 2.2.4
4
+ - 2.1.8
3
5
  - 2.0.0
4
6
  - 1.9.3
5
7
  - jruby-19mode
8
+ before_install:
9
+ - gem update --system
10
+ - gem update bundler
11
+ install: "bundle install"
@@ -0,0 +1,10 @@
1
+ ## 3.1.1 (2016/03/08)
2
+ * Add CHANGELOG.md
3
+
4
+ ## 3.1.0 (2016/03/07)
5
+
6
+ * [#68](https://github.com/radar/dotiw/pull/68): Add support for weeks - [@lauranjansen](https://github.com/lauranjansen)
7
+ * [#69](https://github.com/radar/dotiw/pull/69): Add Indonesian language support - [@avidmaulanas](https://github.com/avidmaulanas)
8
+ * [#70](https://github.com/radar/dotiw/pull/70): Add French language support - [@geo1004](https://github.com/geo1004)
9
+ * [#72](https://github.com/radar/dotiw/pull/72): Add Danish language support - [@kaspernj](https://github.com/kaspernj)
10
+ * [#71](https://github.com/radar/dotiw/pull/71): Update bundler and ruby versions for Travis CI - [@lauranjansen](https://github.com/lauranjansen)
@@ -0,0 +1,34 @@
1
+ DOTIW is an open source project and we encourage contributions.
2
+
3
+ ## Filing an issue
4
+
5
+ When filing an issue on the DOTIW project, please provide these details:
6
+
7
+ * A comprehensive list of steps to reproduce the issue.
8
+ * What you're *expecting* to happen compared with what's *actually* happening.
9
+ * Your application's complete `Gemfile.lock`, and `Gemfile.lock` as text in a [Gist](https://gist.github.com) (*not as an image*)
10
+ * Any relevant stack traces ("Full trace" preferred)
11
+
12
+ In 99% of cases, this information is enough to determine the cause and solution
13
+ to the problem that is being described.
14
+
15
+ Please remember to format code using triple backticks (\`) so that it is neatly
16
+ formatted when the issue is posted.
17
+
18
+ ## Pull requests
19
+
20
+ We gladly accept pull requests to add documentation, fix bugs and, in some circumstances,
21
+ add new features to DOTIW.
22
+
23
+ Here's a quick guide:
24
+
25
+ 1. Fork the repo.
26
+
27
+ 2. Run the tests. We only take pull requests with passing tests, and it's great
28
+ to know that you have a clean slate.
29
+
30
+ 3. Create new branch then make changes and add tests for your changes. Only
31
+ refactoring and documentation changes require no new tests. If you are adding
32
+ functionality or fixing a bug, we need tests!
33
+
34
+ 4. Push to your fork and submit a pull request.
@@ -2,14 +2,14 @@
2
2
 
3
3
  dotiw is a gem for Rails that overrides the default `distance_of_time_in_words` and provides a more accurate output. Do you crave accuracy down to the second? So do I. That's why I made this gem. Take this for a totally kickass example:
4
4
 
5
- >> distance_of_time_in_words(Time.now, Time.now + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds, true)
6
- => "1 year, 2 months, 3 days, 4 hours, 5 minutes, and 6 seconds"
7
-
5
+ >> distance_of_time_in_words(Time.now, Time.now + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds, true)
6
+ => "1 year, 2 months, 3 weeks, 4 days, 5 hours, 6 minutes, and 7 seconds"
7
+
8
8
  Also if one of the measurement is zero it will not output it:
9
9
 
10
- >> distance_of_time_in_words(Time.now, Time.now + 1.year + 2.months + 4.hours + 5.minutes + 6.seconds, true)
11
- => "1 year, 2 months, 4 hours, 5 minutes, and 6 seconds"
12
-
10
+ >> distance_of_time_in_words(Time.now, Time.now + 1.year + 2.months + 5.hours + 6.minutes + 7.seconds, true)
11
+ => "1 year, 2 months, 4 days, 6 minutes, and 7 seconds"
12
+
13
13
  Better than "about 1 year", am I right? Of course I am.
14
14
 
15
15
  "But Ryan!", you say, "What happens if the time is only in seconds but because of the default the seconds aren't shown? Won't it be blank?"
@@ -21,7 +21,7 @@ Better than "about 1 year", am I right? Of course I am.
21
21
  The third argument for this method is whether or not to include seconds. By default this is `false` (because in Rails' `distance_of_time_in_words` it is), you can turn it on though by passing `true` as the third argument:
22
22
 
23
23
  >> distance_of_time_in_words(Time.now, Time.now + 1.year + 1.second, true)
24
- => "1 year, and 1 second"
24
+ => "1 year, and 1 second"
25
25
 
26
26
  Yes this could just be merged into the options hash but I'm leaving it here to ensure "backwards-compatibility",
27
27
  because that's just an insanely radical thing to do. \m/
@@ -58,7 +58,7 @@ You can pass in a locale and it'll output it in whatever language you want (prov
58
58
 
59
59
  >> distance_of_time_in_words(Time.now, Time.now + 1.minute, false, :locale => :es)
60
60
  => "1 minuto"
61
-
61
+
62
62
  This will also be passed to `to_sentence`
63
63
 
64
64
  #### :vague
@@ -95,7 +95,7 @@ Culling a whole group of measurements of time:
95
95
 
96
96
  >> distance_of_time_in_words(Time.now, Time.now + 1.hour + 1.day + 1.minute, false, :except => [:minutes, :hours])
97
97
  => "1 day"
98
-
98
+
99
99
  #### :highest\_measure\_only
100
100
 
101
101
  For times when Rails `distance_of_time_in_words` is not precise enough and `DOTIW` is too precise. For instance, if you only want to know the highest time part (measure) that elapsed between two dates.
@@ -125,7 +125,7 @@ Using something other than a comma:
125
125
 
126
126
  >> distance_of_time_in_words(Time.now, Time.now + 1.hour + 1.minute + 1.second, true, :words_connector => ' - ')
127
127
  => "1 hour - 1 minute, and 1 second"
128
-
128
+
129
129
  #### :two\_words\_connector
130
130
 
131
131
  **This is an option for `to_sentence`, defaults to ' and '**
@@ -135,7 +135,7 @@ Using something other than 'and':
135
135
  >> distance_of_time_in_words(Time.now, Time.now + 1.hour + 1.minute, true, :two_words_connector => ' plus ')
136
136
  => "1 hour plus 1 minute"
137
137
 
138
- #### :last\_word\_connector
138
+ #### :last\_word\_connector
139
139
 
140
140
  **This is an option for `to_sentence`, defaults to ', and '**
141
141
 
@@ -155,17 +155,17 @@ If you have simply a number of seconds you can get the "stringified" version of
155
155
 
156
156
  Don't like any format you're given? That's cool too! Here, have an indifferent hash version:
157
157
 
158
- >> distance_of_time_in_words_hash(Time.now, Time.now + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds)
159
- => {:days => 3, :seconds => 6, :minutes => 5, :years => 1, :hours => 4, :months => 2}
158
+ >> distance_of_time_in_words_hash(Time.now, Time.now + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds)
159
+ => {:days => 4, :weeks => 3, :seconds => 7, :minutes => 6, :years => 1, :hours => 5, :months => 2}
160
160
 
161
161
  Indifferent means that you can access all keys by their `String` or `Symbol` version.
162
-
162
+
163
163
  ## distance\_of\_time\_in\_percent
164
164
 
165
165
  If you want to calculate a distance of time in percent, use `distance_of_time_in_percent`. The first argument is the beginning time, the second argument the "current" time and the third argument is the end time. This method takes the same options as [`number_with_precision`](http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_with_precision).
166
166
 
167
167
  distance_of_time_in_percent("04-12-2009".to_time, "29-01-2010".to_time, "04-12-2010".to_time, options)
168
-
168
+
169
169
 
170
170
  ## Contributors
171
171
 
@@ -7,12 +7,18 @@ require 'dotiw/version'
7
7
  Gem::Specification.new do |s|
8
8
  s.name = 'dotiw'
9
9
  s.version = DOTIW::VERSION
10
+ s.licenses = ["MIT"]
10
11
 
11
- s.authors = ["Ryan Bigg"]
12
- s.date = %q{2015-04-09}
13
- s.description = "Better distance_of_time_in_words for Rails"
12
+ s.authors = ["Ryan Bigg", "Lauran Jansen"]
13
+ s.date = %q{2016-03-08}
14
+ s.description = "dotiw is a gem for Rails that overrides the
15
+ default distance_of_time_in_words and provides
16
+ a more accurate output. Do you crave accuracy
17
+ down to the second? So do I. That's why I made
18
+ this gem. - Ryan"
14
19
  s.summary = "Better distance_of_time_in_words for Rails"
15
- s.email = "radarlistener@gmail.com"
20
+ s.email = ["radarlistener@gmail.com", "github@lauranjansen.com"]
21
+ s.homepage = "https://github.com/radar/dotiw"
16
22
 
17
23
  s.add_dependency "actionpack", ">= 3"
18
24
  s.add_dependency "i18n"
@@ -27,4 +33,3 @@ Gem::Specification.new do |s|
27
33
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
28
34
  s.require_paths = ["lib"]
29
35
  end
30
-
@@ -37,7 +37,7 @@ module ActionView
37
37
  alias_method :old_time_ago_in_words, :time_ago_in_words
38
38
 
39
39
  def time_ago_in_words(from_time, include_seconds_or_options = {})
40
- distance_of_time_in_words(from_time, Time.now, include_seconds_or_options)
40
+ distance_of_time_in_words(from_time, Time.current, include_seconds_or_options)
41
41
  end
42
42
 
43
43
  private
@@ -0,0 +1,23 @@
1
+ da:
2
+ datetime:
3
+ dotiw:
4
+ seconds:
5
+ one: "1 sekund"
6
+ other: "%{count} sekunder"
7
+ minutes:
8
+ one: "1 minut"
9
+ other: "%{count} minutter"
10
+ hours:
11
+ one: "1 time"
12
+ other: "%{count} timer"
13
+ days:
14
+ one: "1 dag"
15
+ other: "%{count} dage"
16
+ weeks:
17
+ one: "1 uge"
18
+ other: "%{count} uger"
19
+ months:
20
+ one: "1 måned"
21
+ other: "%{count} måneder"
22
+ years: "%{count} år"
23
+ less_than_x: "mindre end %{distance}"
@@ -0,0 +1,25 @@
1
+ fr:
2
+ datetime:
3
+ dotiw:
4
+ seconds:
5
+ one: 1 seconde
6
+ other: "%{count} secondes"
7
+ minutes:
8
+ one: 1 minute
9
+ other: "%{count} minutes"
10
+ hours:
11
+ one: 1 heure
12
+ other: "%{count} heures"
13
+ days:
14
+ one: 1 jour
15
+ other: "%{count} jours"
16
+ weeks:
17
+ one: 1 semaine
18
+ other: "%{count} semaines"
19
+ months:
20
+ one: 1 mois
21
+ other: "%{count} mois"
22
+ years:
23
+ one: 1 an
24
+ other: "%{count} ans"
25
+ less_than_x: "moins de %{distance}"
@@ -0,0 +1,25 @@
1
+ id:
2
+ datetime:
3
+ dotiw:
4
+ seconds:
5
+ one: 1 detik
6
+ other: "%{count} detik"
7
+ minutes:
8
+ one: 1 menit
9
+ other: "%{count} menit"
10
+ hours:
11
+ one: 1 jam
12
+ other: "%{count} jam"
13
+ days:
14
+ one: 1 hari
15
+ other: "%{count} hari"
16
+ weeks:
17
+ one: 1 minggu
18
+ other: "%{count} minggu"
19
+ months:
20
+ one: 1 bulan
21
+ other: "%{count} bulan"
22
+ years:
23
+ one: 1 tahun
24
+ other: "%{count} tahun"
25
+ less_than_x: "kurang dari %{distance}"
@@ -0,0 +1,25 @@
1
+ pt-BR:
2
+ datetime:
3
+ dotiw:
4
+ seconds:
5
+ one: 1 segundo
6
+ other: "%{count} segundos"
7
+ minutes:
8
+ one: 1 minuto
9
+ other: "%{count} minutos"
10
+ hours:
11
+ one: 1 hora
12
+ other: "%{count} horas"
13
+ days:
14
+ one: 1 dia
15
+ other: "%{count} dias"
16
+ weeks:
17
+ one: 1 semana
18
+ other: "%{count} semanas"
19
+ months:
20
+ one: 1 mês
21
+ other: "%{count} meses"
22
+ years:
23
+ one: 1 ano
24
+ other: "%{count} anos"
25
+ less_than_x: "menos de %{distance}"
@@ -2,7 +2,7 @@
2
2
 
3
3
  module DOTIW
4
4
  class TimeHash
5
- TIME_FRACTIONS = [:seconds, :minutes, :hours, :days, :months, :years]
5
+ TIME_FRACTIONS = [:seconds, :minutes, :hours, :days, :weeks, :months, :years]
6
6
 
7
7
  attr_accessor :distance, :smallest, :largest, :from_time, :to_time
8
8
 
@@ -10,7 +10,7 @@ module DOTIW
10
10
  self.output = ActiveSupport::OrderedHash.new
11
11
  self.options = options
12
12
  self.distance = distance
13
- self.from_time = from_time || Time.now
13
+ self.from_time = from_time || Time.current
14
14
  self.to_time = to_time || (@to_time_not_given = true && self.from_time + self.distance.seconds)
15
15
  self.smallest, self.largest = [self.from_time, self.to_time].minmax
16
16
  self.to_time += 1.hour if @to_time_not_given && self.smallest.dst? && !self.largest.dst?
@@ -48,10 +48,12 @@ module DOTIW
48
48
  build_minutes
49
49
  elsif distance < 1.day
50
50
  build_hours
51
- elsif distance < 28.days
51
+ elsif distance < 7.days
52
52
  build_days
53
- else # greater than a month
54
- build_years_months_days
53
+ elsif distance < 28.days
54
+ build_weeks
55
+ else # greater than a week
56
+ build_years_months_weeks_days
55
57
  end
56
58
  end
57
59
  end
@@ -76,28 +78,46 @@ module DOTIW
76
78
  output[:days], self.distance = distance.divmod(1.day) if output[:days].nil?
77
79
  end
78
80
 
81
+ def build_weeks
82
+ output[:weeks], self.distance = distance.divmod(1.week) if output[:weeks].nil?
83
+ end
84
+
79
85
  def build_months
80
- build_years_months_days
86
+ build_years_months_weeks_days
81
87
 
82
88
  if (years = output.delete(:years)) > 0
83
89
  output[:months] += (years * 12)
84
90
  end
85
91
  end
86
92
 
87
- def build_years_months_days
93
+ def build_years_months_weeks_days
88
94
  months = (largest.year - smallest.year) * 12 + (largest.month - smallest.month)
89
95
  years, months = months.divmod(12)
90
96
 
91
97
  days = largest.day - smallest.day
92
98
 
99
+ weeks, days = days.divmod(7)
100
+
93
101
  # Will otherwise incorrectly say one more day if our range goes over a day.
94
102
  days -= 1 if largest.hour < smallest.hour
95
103
 
96
104
  if days < 0
97
- # Convert the last month to days and add to total
105
+ # Convert a week to days and add to total
106
+ weeks -= 1
107
+ days += 7
108
+ end
109
+
110
+ if weeks < 0
111
+ # Convert the last month to a week and add to total
98
112
  months -= 1
99
113
  last_month = largest.advance(:months => -1)
100
- days += Time.days_in_month(last_month.month, last_month.year)
114
+ days_in_month = Time.days_in_month(last_month.month, last_month.year)
115
+ weeks += days_in_month / 7
116
+ days += days_in_month % 7
117
+ if days >= 7
118
+ days -= 7
119
+ weeks += 1
120
+ end
101
121
  end
102
122
 
103
123
  if months < 0
@@ -108,6 +128,7 @@ module DOTIW
108
128
 
109
129
  output[:years] = years
110
130
  output[:months] = months
131
+ output[:weeks] = weeks
111
132
  output[:days] = days
112
133
 
113
134
  total_days, self.distance = distance.abs.divmod(1.day)
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module DOTIW
4
- VERSION = "3.0.1"
4
+ VERSION = "3.1.1"
5
5
  end
@@ -23,8 +23,9 @@ describe "A better distance_of_time_in_words" do
23
23
  [10.minutes.to_i, "10 minutes"],
24
24
  [1.hour.to_i, "1 hour"],
25
25
  [1.hour + 30.seconds, "1 hour and 30 seconds"],
26
- [4.weeks.to_i, "28 days"],
27
- [24.weeks.to_i, "5 months and 15 days"]
26
+ [4.weeks.to_i, "4 weeks"],
27
+ [4.weeks + 2.days, "4 weeks and 2 days"],
28
+ [24.weeks.to_i, "5 months, 2 weeks, and 1 day"]
28
29
  ]
29
30
  fragments.each do |number, result|
30
31
  it "#{number} == #{result}" do
@@ -38,7 +39,7 @@ describe "A better distance_of_time_in_words" do
38
39
  expect(distance_of_time(2.5.hours + 30.seconds, except: 'seconds')).to eq("2 hours and 30 minutes")
39
40
  end
40
41
 
41
- it "except:seconds har higher presedence than include_seconds:true" do
42
+ it "except:seconds has higher precedence than include_seconds:true" do
42
43
  expect(distance_of_time(1.2.minute, include_seconds: true, except: 'seconds')).to eq('1 minute')
43
44
  end
44
45
  end
@@ -48,7 +49,7 @@ describe "A better distance_of_time_in_words" do
48
49
  describe "hash version" do
49
50
  describe "giving correct numbers of" do
50
51
 
51
- [:years, :months, :days, :minutes, :seconds].each do |name|
52
+ [:years, :months, :weeks, :days, :minutes, :seconds].each do |name|
52
53
  describe name do
53
54
  it "exactly" do
54
55
  hash = distance_of_time_in_words_hash(START_TIME, START_TIME + 1.send(name))
@@ -64,13 +65,14 @@ describe "A better distance_of_time_in_words" do
64
65
 
65
66
  it "should be happy with lots of measurements" do
66
67
  hash = distance_of_time_in_words_hash(START_TIME,
67
- START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds)
68
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds)
68
69
  expect(hash[:years]).to eq(1)
69
70
  expect(hash[:months]).to eq(2)
70
- expect(hash[:days]).to eq(3)
71
- expect(hash[:hours]).to eq(4)
72
- expect(hash[:minutes]).to eq(5)
73
- expect(hash[:seconds]).to eq(6)
71
+ expect(hash[:weeks]).to eq(3)
72
+ expect(hash[:days]).to eq(4)
73
+ expect(hash[:hours]).to eq(5)
74
+ expect(hash[:minutes]).to eq(6)
75
+ expect(hash[:seconds]).to eq(7)
74
76
  end
75
77
  end
76
78
  end
@@ -91,14 +93,14 @@ describe "A better distance_of_time_in_words" do
91
93
  [START_TIME, START_TIME + 1.minute, "1 minute"],
92
94
  [START_TIME, START_TIME + 3.years, "3 years"],
93
95
  [START_TIME, START_TIME + 10.years, "10 years"],
94
- [START_TIME, START_TIME + 10.years, "10 years"],
96
+ [START_TIME, START_TIME + 8.months, "8 months"],
95
97
  [START_TIME, START_TIME + 3.hour, "3 hours"],
96
98
  [START_TIME, START_TIME + 13.months, "1 year and 1 month"],
97
99
  # Any numeric sequence is merely coincidental.
98
- [START_TIME, START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds, "1 year, 2 months, 3 days, 4 hours, 5 minutes, and 6 seconds"],
100
+ [START_TIME, START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds, "1 year, 2 months, 3 weeks, 4 days, 5 hours, 6 minutes, and 7 seconds"],
99
101
  ["2009-3-16".to_time, "2008-4-14".to_time, "11 months and 2 days"],
100
102
  ["2009-3-16".to_time + 1.minute, "2008-4-14".to_time, "11 months, 2 days, and 1 minute"],
101
- ["2009-4-14".to_time, "2008-3-16".to_time, "1 year and 29 days"],
103
+ ["2009-4-14".to_time, "2008-3-16".to_time, "1 year, 4 weeks, and 1 day"],
102
104
  ["2009-2-01".to_time, "2009-3-01".to_time, "1 month"],
103
105
  ["2008-2-01".to_time, "2008-3-01".to_time, "1 month"]
104
106
  ]
@@ -126,10 +128,14 @@ describe "A better distance_of_time_in_words" do
126
128
  START_TIME + 2.day + 10000.hour + 10.second,
127
129
  :days,
128
130
  "418 days, 16 hours, and 10 seconds"],
131
+ [START_TIME,
132
+ START_TIME + 2.day + 10000.hour + 10.second,
133
+ :weeks,
134
+ "59 weeks, 5 days, 16 hours, and 10 seconds"],
129
135
  [START_TIME,
130
136
  START_TIME + 2.day + 10000.hour + 10.second,
131
137
  :months,
132
- "13 months, 22 days, 16 hours, and 10 seconds"],
138
+ "13 months, 3 weeks, 1 day, 16 hours, and 10 seconds"],
133
139
  ["2015-1-15".to_time, "2016-3-15".to_time, :months, "14 months"]
134
140
 
135
141
  ]
@@ -148,8 +154,9 @@ describe "A better distance_of_time_in_words" do
148
154
  [5.minutes.to_i, "5 minutes"],
149
155
  [10.minutes.to_i, "10 minutes"],
150
156
  [1.hour.to_i, "1 hour"],
151
- [4.weeks.to_i, "28 days"],
152
- [24.weeks.to_i, "5 months and 15 days"]
157
+ [6.days.to_i, "6 days"],
158
+ [4.weeks.to_i, "4 weeks"],
159
+ [24.weeks.to_i, "5 months, 2 weeks, and 1 day"]
153
160
  ]
154
161
  fragments.each do |start, output|
155
162
  it "should be #{output}" do
@@ -164,9 +171,9 @@ describe "A better distance_of_time_in_words" do
164
171
  fragments = [
165
172
  # Any numeric sequence is merely coincidental.
166
173
  [START_TIME,
167
- START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds,
174
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
168
175
  { :words_connector => " - " },
169
- "1 year - 2 months - 3 days - 4 hours - 5 minutes, and 6 seconds"],
176
+ "1 year - 2 months - 3 weeks - 4 days - 5 hours - 6 minutes, and 7 seconds"],
170
177
  [START_TIME,
171
178
  START_TIME + 5.minutes + 6.seconds,
172
179
  { :two_words_connector => " - " },
@@ -191,25 +198,25 @@ describe "A better distance_of_time_in_words" do
191
198
  { :only => ["minutes", "hours"]},
192
199
  "1 hour and 1 minute"],
193
200
  [START_TIME,
194
- START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds,
201
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
195
202
  { :vague => true },
196
203
  "about 1 year"],
197
204
  [START_TIME,
198
- START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds,
205
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
199
206
  { :vague => "Yes please" },
200
207
  "about 1 year"],
201
208
  [START_TIME,
202
- START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds,
209
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
203
210
  { :vague => false },
204
- "1 year, 2 months, 3 days, 4 hours, 5 minutes, and 6 seconds"],
211
+ "1 year, 2 months, 3 weeks, 4 days, 5 hours, 6 minutes, and 7 seconds"],
205
212
  [START_TIME,
206
- START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds,
213
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
207
214
  { :vague => nil },
208
- "1 year, 2 months, 3 days, 4 hours, 5 minutes, and 6 seconds"],
215
+ "1 year, 2 months, 3 weeks, 4 days, 5 hours, 6 minutes, and 7 seconds"],
209
216
  [START_TIME,
210
- START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds,
217
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
211
218
  { :except => "minutes" },
212
- "1 year, 2 months, 3 days, 4 hours, and 6 seconds"],
219
+ "1 year, 2 months, 3 weeks, 4 days, 5 hours, and 7 seconds"],
213
220
  [START_TIME,
214
221
  START_TIME + 1.hour + 2.minutes + 3.seconds,
215
222
  { :highest_measure_only => true },
@@ -225,7 +232,7 @@ describe "A better distance_of_time_in_words" do
225
232
  [START_TIME,
226
233
  START_TIME + 2.year + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
227
234
  { :highest_measures => 2 },
228
- "2 years and 25 days"],
235
+ "2 years and 3 weeks"],
229
236
  [START_TIME,
230
237
  START_TIME + 4.days + 6.minutes + 7.seconds,
231
238
  { :highest_measures => 3 },
@@ -233,7 +240,7 @@ describe "A better distance_of_time_in_words" do
233
240
  [START_TIME,
234
241
  START_TIME + 1.year + 2.weeks,
235
242
  { :highest_measures => 3 },
236
- "1 year and 14 days"],
243
+ "1 year and 2 weeks"],
237
244
  [START_TIME,
238
245
  START_TIME + 1.days,
239
246
  { :only => [:years, :months] },
@@ -260,8 +267,8 @@ describe "A better distance_of_time_in_words" do
260
267
 
261
268
  it "removes seconds in all other cases" do
262
269
  expect(distance_of_time_in_words(START_TIME,
263
- START_TIME + 1.year + 2.months + 3.days + 4.hours + 5.minutes + 6.seconds,
264
- false)).to eq("1 year, 2 months, 3 days, 4 hours, and 5 minutes")
270
+ START_TIME + 1.year + 2.months + 3.weeks + 4.days + 5.hours + 6.minutes + 7.seconds,
271
+ false)).to eq("1 year, 2 months, 3 weeks, 4 days, 5 hours, and 6 minutes")
265
272
  end
266
273
  end # include_seconds
267
274
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotiw
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Bigg
8
+ - Lauran Jansen
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-04-09 00:00:00.000000000 Z
12
+ date: 2016-03-08 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: actionpack
@@ -94,14 +95,23 @@ dependencies:
94
95
  - - ">="
95
96
  - !ruby/object:Gem::Version
96
97
  version: '0'
97
- description: Better distance_of_time_in_words for Rails
98
- email: radarlistener@gmail.com
98
+ description: |-
99
+ dotiw is a gem for Rails that overrides the
100
+ default distance_of_time_in_words and provides
101
+ a more accurate output. Do you crave accuracy
102
+ down to the second? So do I. That's why I made
103
+ this gem. - Ryan
104
+ email:
105
+ - radarlistener@gmail.com
106
+ - github@lauranjansen.com
99
107
  executables: []
100
108
  extensions: []
101
109
  extra_rdoc_files: []
102
110
  files:
103
111
  - ".gitignore"
104
112
  - ".travis.yml"
113
+ - CHANGELOG.md
114
+ - CONTRIBUTING.md
105
115
  - Gemfile
106
116
  - MIT-LICENSE
107
117
  - README.markdown
@@ -109,21 +119,26 @@ files:
109
119
  - dotiw.gemspec
110
120
  - lib/dotiw.rb
111
121
  - lib/dotiw/action_view_ext/helpers/date_helper.rb
122
+ - lib/dotiw/locale/da.yml
112
123
  - lib/dotiw/locale/de.yml
113
124
  - lib/dotiw/locale/en.yml
114
125
  - lib/dotiw/locale/es.yml
126
+ - lib/dotiw/locale/fr.yml
127
+ - lib/dotiw/locale/id.yml
115
128
  - lib/dotiw/locale/it.yml
116
129
  - lib/dotiw/locale/ja.yml
117
130
  - lib/dotiw/locale/nb.yml
118
131
  - lib/dotiw/locale/nl.yml
119
132
  - lib/dotiw/locale/pl.yml
133
+ - lib/dotiw/locale/pt-BR.yml
120
134
  - lib/dotiw/locale/ru.yml
121
135
  - lib/dotiw/time_hash.rb
122
136
  - lib/dotiw/version.rb
123
137
  - spec/lib/dotiw_spec.rb
124
138
  - spec/spec_helper.rb
125
- homepage:
126
- licenses: []
139
+ homepage: https://github.com/radar/dotiw
140
+ licenses:
141
+ - MIT
127
142
  metadata: {}
128
143
  post_install_message:
129
144
  rdoc_options: []
@@ -141,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
156
  version: '0'
142
157
  requirements: []
143
158
  rubyforge_project:
144
- rubygems_version: 2.4.6
159
+ rubygems_version: 2.5.1
145
160
  signing_key:
146
161
  specification_version: 4
147
162
  summary: Better distance_of_time_in_words for Rails