listview 1.1.0 → 1.2.0
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/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
|