fortnight 0.0.2 → 0.0.3
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.
- data/README.md +2 -26
- data/Rakefile +1 -1
- data/lib/fortnight.rb +34 -5
- data/lib/fortnight/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -18,30 +18,6 @@ Add in the models that we want to use
|
|
18
18
|
|
19
19
|
include Fortnight
|
20
20
|
|
21
|
-
##
|
22
|
-
|
23
|
-
It's very simple, the syntax is the next:
|
24
|
-
|
25
|
-
Model.in_fortnight(year, month, options)
|
26
|
-
|
27
|
-
'options' for now are only :field and :half
|
28
|
-
:field ALWAYS HAVE TO BE A TIME FIELD
|
29
|
-
:half is to get the first (by default) or the second (as symbol)
|
30
|
-
|
31
|
-
## Examples
|
32
|
-
|
33
|
-
Customer.in_fortnight(2012, 04)
|
34
|
-
We'll get the customers created_at between 2012-04-01 00:00 AND 2012-04-15 23:59:59
|
35
|
-
|
36
|
-
Customer.in_fortnight(2012, 04, half: :second)
|
37
|
-
We'll get the customers created_at between 2012-04-15 23:59:59 AND 2012-04-30 23:59:59
|
38
|
-
|
39
|
-
Customer.in_fortnight(2012, 05, half: :second)
|
40
|
-
We'll get the customers created_at between 2012-05-15 23:59:59 AND 2012-05-31 23:59:59
|
41
|
-
|
42
|
-
Customer.in_fortnight(2012, 04, field: 'updated_at')
|
43
|
-
We'll get the customers updated_at between 2012-04-01 00:00 AND 2012-04-15 23:59
|
44
|
-
|
45
|
-
Customer.in_fortnight(2012, 04, half: :second, field: 'updated_at')
|
46
|
-
We'll get the customers updated_at between 2012-04-15 23:59:59 AND 2012-04-30 23:59:59
|
21
|
+
## Methods Wiki
|
22
|
+
See the wiki page for the methods details
|
47
23
|
|
data/Rakefile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
require "bundler/gem_tasks"
|
2
|
+
require "bundler/gem_tasks"
|
data/lib/fortnight.rb
CHANGED
@@ -5,24 +5,53 @@ module Fortnight
|
|
5
5
|
def self.included(base)
|
6
6
|
base.extend ClassMethods
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
module ClassMethods
|
10
10
|
def in_fortnight(year, month, options={})
|
11
11
|
|
12
12
|
begin_of_month = Time.new(year, month)
|
13
|
-
|
13
|
+
half_month = begin_of_month.advance(days: 14).end_of_day
|
14
14
|
final_of_month = begin_of_month.end_of_month.end_of_day
|
15
15
|
|
16
|
-
start = options[:half] == :second ?
|
17
|
-
finish = options[:half] == :second ? final_of_month :
|
16
|
+
start = options[:half] == :second ? half_month : begin_of_month
|
17
|
+
finish = options[:half] == :second ? final_of_month : half_month
|
18
18
|
|
19
19
|
field = options[:field] || 'created_at'
|
20
20
|
|
21
21
|
scope = where("#{field} >= :s AND #{field} <= :f", s: start, f: finish)
|
22
22
|
scope = scope.order(options[:order]) if options[:order]
|
23
|
+
|
23
24
|
scope
|
24
25
|
end
|
26
|
+
|
27
|
+
def last_fortnight
|
28
|
+
today = Date.today
|
29
|
+
date = today - 15.days
|
30
|
+
|
31
|
+
if today.day >= 1 && today.day <= 15
|
32
|
+
self.in_fortnight(date.year, date.month, half: :second)
|
33
|
+
else
|
34
|
+
self.in_fortnight(date.year, date.month)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def fortnight_in_words
|
40
|
+
date = self.created_at.to_date
|
41
|
+
month_begin = date.beginning_of_month
|
42
|
+
half_month = month_begin.advance(days: 14)
|
43
|
+
|
44
|
+
if date.day >= 1 && date.day <=15
|
45
|
+
output = I18n.l(month_begin, format: :long)
|
46
|
+
output << ' - '
|
47
|
+
output << I18n.l(half_month.to_date, format: :long)
|
48
|
+
else
|
49
|
+
output = I18n.l((half_month + 1.day).to_date, format: :long)
|
50
|
+
output << ' - '
|
51
|
+
output << I18n.l(date.end_of_month, format: :long)
|
52
|
+
end
|
53
|
+
|
54
|
+
output
|
25
55
|
end
|
26
56
|
end
|
27
57
|
|
28
|
-
|
data/lib/fortnight/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fortnight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|