listview 1.0.0 → 1.1.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 +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: