listview 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/listview.rb +24 -7
- metadata +1 -1
data/lib/listview.rb
CHANGED
@@ -27,7 +27,7 @@ class ListView
|
|
27
27
|
#
|
28
28
|
#get_events(events: [obj1], events_per_page: 5, page: 0)
|
29
29
|
def get_events vars
|
30
|
-
get_events_that_havent_happened_yet(vars[:events], vars[:events_per_page], (vars[:page].to_i)*vars[:events_per_page])
|
30
|
+
get_events_that_havent_happened_yet(vars[:events], vars[:events_per_page], (vars[:page].to_i)*vars[:events_per_page])[:events_that_havent_happened_yet]
|
31
31
|
end
|
32
32
|
|
33
33
|
#example use:
|
@@ -36,7 +36,12 @@ class ListView
|
|
36
36
|
#date_format help: http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html#method-i-to_date
|
37
37
|
def organization_events_by_day vars
|
38
38
|
vars[:date_format] ||= "%B, %d"
|
39
|
-
|
39
|
+
events_dict = get_events_that_havent_happened_yet(vars[:events], vars[:events_per_page], (vars[:page].to_i)*vars[:events_per_page])
|
40
|
+
|
41
|
+
organized_events = events_dict[:events_that_havent_happened_yet]
|
42
|
+
rightmost_page = events_dict[:rightmost_page]
|
43
|
+
leftmost_page = events_dict[:leftmost_page]
|
44
|
+
|
40
45
|
events_organized_by_day = []
|
41
46
|
current_day = DateTime.now
|
42
47
|
def event_date date, date_format
|
@@ -56,7 +61,11 @@ class ListView
|
|
56
61
|
events_organized_by_day[-1][:events] += [event]
|
57
62
|
end
|
58
63
|
end
|
59
|
-
return
|
64
|
+
return {
|
65
|
+
events: events_organized_by_day,
|
66
|
+
rightmost_page: rightmost_page,
|
67
|
+
leftmost_page: leftmost_page,
|
68
|
+
}
|
60
69
|
end
|
61
70
|
|
62
71
|
private
|
@@ -69,17 +78,25 @@ class ListView
|
|
69
78
|
events_that_havent_happened_yet = events
|
70
79
|
events_that_havent_happened_yet.sort_by! {|event| event.date}
|
71
80
|
closest_to_today = get_event_closed_to_today(events_that_havent_happened_yet)
|
72
|
-
|
73
|
-
|
81
|
+
|
82
|
+
return_var = {}
|
83
|
+
return_var[:events_that_havent_happened_yet] = []
|
84
|
+
event_index = closest_to_today + offset
|
85
|
+
return_var[:leftmost_page] = -((event_index / number_of_events_per_page).to_i)
|
86
|
+
return_var[:rightmost_page] = (((events_that_havent_happened_yet.length - 1) - (event_index)) / number_of_events_per_page).to_i
|
87
|
+
|
88
|
+
return return_var if closest_to_today.nil?
|
89
|
+
|
74
90
|
start_event_index = [closest_to_today + offset, 0].max
|
75
|
-
|
91
|
+
return_var[:events_that_havent_happened_yet] = events_that_havent_happened_yet[start_event_index, number_of_events_per_page]
|
92
|
+
return return_var
|
76
93
|
end
|
77
94
|
|
78
95
|
def get_event_closed_to_today events
|
79
96
|
today = DateTime.now
|
80
97
|
closest_to_today = nil
|
81
98
|
events.each_with_index do |event, index|
|
82
|
-
if event.date.to_i
|
99
|
+
if event.date.to_i > today.to_i
|
83
100
|
if closest_to_today == nil
|
84
101
|
closest_to_today = index
|
85
102
|
else
|