datebox 0.3.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/datebox/relative.rb +19 -0
- data/lib/datebox/version.rb +1 -1
- data/test/unit/test_relative.rb +10 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8973e5e78c939fdc2aed702c51b3569fc246db78
|
4
|
+
data.tar.gz: 824c632d4044104e6f9a996f11999352f4e8e397
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da95609365d0055017a0f9dbe807ae0179bddd0c8142f524c00fddc6babd03bf3d6d85a370eed12b45f5c8994e1aca2bd82f1265b9cf1cd080bfba09be82cd7b
|
7
|
+
data.tar.gz: e49e7a934141d7f3ba9d06000db5815792f42a7720d632595bc13dbf5187f956676a4c5e52ffc15e015beb8fd311ab03f497f6d96d30c003862bff8e764731dd
|
data/README.md
CHANGED
@@ -27,6 +27,6 @@ Allows splitting periods (returns ending dates of periods)
|
|
27
27
|
It's also possible to calculate periods relative to given dates
|
28
28
|
|
29
29
|
period_month = Datebox::Relative.last_month.to('2013-07-09') # uses period method
|
30
|
-
preiod_week = Datebox::Relative.last(:week).to('2013-07-09') # uses
|
30
|
+
preiod_week = Datebox::Relative.last(:week).to('2013-07-09') # uses period symbol
|
31
31
|
|
32
32
|
It's best to have a look at code & tests
|
data/lib/datebox/relative.rb
CHANGED
@@ -45,6 +45,25 @@ module Datebox
|
|
45
45
|
new Proc.new {|relative_to| Period.new(relative_to - 1, relative_to - 1) }, __method__.to_s
|
46
46
|
end
|
47
47
|
|
48
|
+
def day_apart(difference)
|
49
|
+
new Proc.new {|relative_to| Period.new(relative_to + difference, relative_to + difference) }, __method__.to_s
|
50
|
+
end
|
51
|
+
|
52
|
+
def method_missing(m, *args, &block)
|
53
|
+
if (m.to_s =~ /^day_ago_\d+$/) or (m.to_s =~ /^day_in_\d+$/)
|
54
|
+
days = m.to_s.split('_').last.to_i
|
55
|
+
if m.to_s =~ /^day_ago_\d+$/
|
56
|
+
return new Proc.new {|relative_to| Period.new(relative_to - days, relative_to - days) }, m
|
57
|
+
elsif m.to_s =~ /^day_in_\d+$/
|
58
|
+
return new Proc.new {|relative_to| Period.new(relative_to + days, relative_to + days) }, m
|
59
|
+
end
|
60
|
+
relative.send(:period_name, m)
|
61
|
+
return relative
|
62
|
+
else
|
63
|
+
super
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
48
67
|
def last_n_days(options = {})
|
49
68
|
days = (options[:days] || options['days']).to_i
|
50
69
|
inclusive = (options[:exclusive] || options['exclusive']) ? false : true # inclusive by default
|
data/lib/datebox/version.rb
CHANGED
data/test/unit/test_relative.rb
CHANGED
@@ -1,11 +1,21 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), '..', 'test_helper')
|
2
2
|
|
3
3
|
class TestRelative < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_gives_back_correct_period_name_in_proc
|
6
|
+
assert_equal :day_in_19, Datebox::Relative.day_in_19.period_name
|
7
|
+
end
|
4
8
|
|
5
9
|
def test_calculates_correctly
|
6
10
|
# day
|
7
11
|
assert_equal [Date.parse('2013-07-07')], Datebox::Relative.same_day.to('2013-07-07').dates
|
8
12
|
assert_equal [Date.parse('2013-07-06')], Datebox::Relative.day_before.to('2013-07-07').dates
|
13
|
+
assert_equal [Date.parse('2013-07-02')], Datebox::Relative.day_apart(1).to('2013-07-01').dates
|
14
|
+
assert_equal [Date.parse('2013-08-03')], Datebox::Relative.day_apart(-2).to('2013-08-05').dates
|
15
|
+
assert_equal [Date.parse('2013-08-03')], Datebox::Relative.day_apart(-2).to('2013-08-05').dates
|
16
|
+
assert_equal [Date.parse('2013-08-03')], Datebox::Relative.day_ago_2.to('2013-08-05').dates
|
17
|
+
assert_equal [Date.parse('2013-08-08')], Datebox::Relative.day_in_3.to('2013-08-05').dates
|
18
|
+
assert_equal [Date.parse('2013-08-20')], Datebox::Relative.day_in_19.to('2013-08-01').dates
|
9
19
|
|
10
20
|
# n days
|
11
21
|
assert_equal Datebox::Period.new('2014-06-01', '2014-06-30'), Datebox::Relative.last(:n_days, {:days => 30}).to('2014-06-30')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datebox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Borkowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Offers help with managing dates and periods
|
14
14
|
email:
|