listview 1.0.0 → 1.1.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.
Files changed (2) hide show
  1. data/lib/listview.rb +47 -1
  2. metadata +1 -1
data/lib/listview.rb CHANGED
@@ -15,10 +15,56 @@ end
15
15
  class ListView
16
16
 
17
17
  class << self
18
+ #example use:
19
+ #
20
+ #class ObjectThatRespondsToDate
21
+ # attr_accessor :date
22
+ #end
23
+ #
24
+ #obj1 = ObjectThatRespondsToDate.new
25
+ #obj1.date = DateTime.now
26
+ #
27
+ #
28
+ #get_events(events: [obj1], events_per_page: 5, page: 0)
18
29
  def get_events vars
19
30
  get_events_that_havent_happened_yet(vars[:events], vars[:events_per_page], (vars[:page].to_i)*vars[:events_per_page])
20
31
  end
32
+
33
+ #example use:
34
+ #
35
+ #get_events(events: [obj1], events_per_page: 5, page: 0, date_format: "%B, %d")
36
+ #date_format help: http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html#method-i-to_date
37
+ def organization_events_by_day vars
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])
40
+ events_organized_by_day = []
41
+ current_day = DateTime.now
42
+ def event_date date, date_format
43
+ if only_date(date) == only_date(DateTime.now)
44
+ "Today"
45
+ else
46
+ date.strftime(date_format)
47
+ end
48
+ end
49
+ organized_events.each_with_index do |event, index|
50
+ if only_date(event.date) != only_date(current_day)
51
+ current_day = event.date
52
+ events_organized_by_day += [date: event_date(event.date, vars[:date_format]), events: [event]]
53
+ elsif index == 0
54
+ events_organized_by_day += [date: event_date(event.date, vars[:date_format]), events: [event]]
55
+ else
56
+ events_organized_by_day[-1][:events] += [event]
57
+ end
58
+ end
59
+ return events_organized_by_day
60
+ end
61
+
21
62
  private
63
+
64
+ def only_date date_time
65
+ date_time.strftime("%d/%m/%Y")
66
+ end
67
+
22
68
  def get_events_that_havent_happened_yet events, number_of_events_per_page, offset=0
23
69
  events_that_havent_happened_yet = events
24
70
  events_that_havent_happened_yet.sort_by! {|event| event.date}
@@ -47,4 +93,4 @@ class ListView
47
93
  end
48
94
  end
49
95
 
50
- end
96
+ end
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.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: