listview 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/listview.rb +24 -7
  2. 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
- organized_events = get_events_that_havent_happened_yet(vars[:events], vars[:events_per_page], (vars[:page].to_i)*vars[:events_per_page])
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 events_organized_by_day
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
- return [] if closest_to_today.nil?
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
- return events_that_havent_happened_yet[start_event_index, number_of_events_per_page]
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 - today.to_i > 0
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: listview
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: