simple_calendar 2.2.4 → 2.2.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ae043df3828ea514cfbc68ed0d1284434251f1c2
4
- data.tar.gz: a79029db7a1b2cdd7e306214e471c416c572cb28
3
+ metadata.gz: b59a6e0877e1ff3b71901bc01ba95dc961d03313
4
+ data.tar.gz: c2e415e9f1a24e92f970d50cc6119e8becd37615
5
5
  SHA512:
6
- metadata.gz: b6c0a2d71036917b42732c22c2c4625fc3bb7ff1d3b9878ef1a9beffce7a2f47e423eecaf98aec0e50d0f3fcc0ae592dfdaa275fcc7d6dd1e1ef52a3734acd78
7
- data.tar.gz: 006074a747db645038610dd7b541bdf069b5af6a0f7195fed0263efc40307784acacbbea2a7238641cf7a5ac9e2781bab24e7a3a576cf4fad468efdeee1dcbbc
6
+ metadata.gz: 1baea65b91560b3d247c717dccc9daac1d789a214b7df9db56adb94d9d68877dfaf66e3e8f2023c7db92b93b443c594f0b7be7cdc6cf378f2276b983989a33e6
7
+ data.tar.gz: 410701770d8ff9cc6f66132037f37a79e34dc61afc420049fc333f448cfe2ec37a06c3ba71994f893da14d3e3ea589bd300edd6386f6081a30f03e765b8f1857
data/README.md CHANGED
@@ -69,6 +69,17 @@ You can generate calendars of any length by passing in the number of days you wa
69
69
 
70
70
  Setting `number_of_days` is optional and defaults to 4.
71
71
 
72
+ ### Custom Parameter Name
73
+
74
+ You can pass in `start_date_param` to change the name of the parameter
75
+ in the URL for the current calendar view.
76
+
77
+ ```erb
78
+ <%= calendar start_date_param: :my_date do |date| %>
79
+ <%= date %>
80
+ <% end %>
81
+ ```
82
+
72
83
  ### Custom Partial
73
84
 
74
85
  You can set a different partial name for calendars by passing the partial path.
@@ -1,8 +1,12 @@
1
1
  <div class="simple-calendar">
2
2
  <div class="calendar-heading">
3
3
  <%= link_to t('simple_calendar.previous', default: 'Previous'), calendar.url_for_previous_view %>
4
- <span class="calendar-title">Week <%= calendar.week_number %></span>
5
- <%= link_to t('simple_calendar.next', default: 'Next'), calendar.url_for_next_view %>
4
+ <% if calendar.number_of_weeks == 1 %>
5
+ <span class="calendar-title">Week <%= calendar.week_number %></span>
6
+ <%else%>
7
+ <span class="calendar-title">Week <%= calendar.week_number %> - <%= calendar.end_week %></span>
8
+ <%end%>
9
+ <%= link_to t('simple_calendar.next', default: 'Next'), calendar.url_for_next_view %>
6
10
  </div>
7
11
 
8
12
  <table class="table table-striped">
@@ -46,11 +46,11 @@ module SimpleCalendar
46
46
  end
47
47
 
48
48
  def url_for_next_view
49
- view_context.url_for(@params.merge(start_date: date_range.last + 1.day))
49
+ view_context.url_for(@params.merge(start_date_param => date_range.last + 1.day))
50
50
  end
51
51
 
52
52
  def url_for_previous_view
53
- view_context.url_for(@params.merge(start_date: date_range.first - 1.day))
53
+ view_context.url_for(@params.merge(start_date_param => date_range.first - 1.day))
54
54
  end
55
55
 
56
56
  private
@@ -67,6 +67,10 @@ module SimpleCalendar
67
67
  options.fetch(:end_attribute, :end_time).to_sym
68
68
  end
69
69
 
70
+ def start_date_param
71
+ options.fetch(:start_date_param, :start_date).to_sym
72
+ end
73
+
70
74
  def sorted_events
71
75
  @sorted_events ||= begin
72
76
  events = options.fetch(:events, []).reject { |e| e.send(attribute).nil? }.sort_by(&attribute)
@@ -92,7 +96,7 @@ module SimpleCalendar
92
96
  if options.has_key?(:start_date)
93
97
  options.fetch(:start_date).to_date
94
98
  else
95
- view_context.params.fetch(:start_date, Date.current).to_date
99
+ view_context.params.fetch(start_date_param, Date.current).to_date
96
100
  end
97
101
  end
98
102
 
@@ -1,3 +1,3 @@
1
1
  module SimpleCalendar
2
- VERSION = "2.2.4"
2
+ VERSION = "2.2.5"
3
3
  end
@@ -5,6 +5,14 @@ module SimpleCalendar
5
5
  start_date.beginning_of_week.strftime(format).to_i
6
6
  end
7
7
 
8
+ def number_of_weeks
9
+ options.fetch(:number_of_weeks, 1)
10
+ end
11
+
12
+ def end_week
13
+ week_number + number_of_weeks - 1
14
+ end
15
+
8
16
  private
9
17
 
10
18
  def date_range
@@ -13,9 +21,5 @@ module SimpleCalendar
13
21
 
14
22
  (starting..ending).to_a
15
23
  end
16
-
17
- def number_of_weeks
18
- options.fetch(:number_of_weeks, 1)
19
- end
20
24
  end
21
25
  end
@@ -3,15 +3,16 @@ require 'action_controller'
3
3
  require 'simple_calendar/calendar'
4
4
 
5
5
  class ViewContext
6
- attr_accessor :start_date
6
+ attr_accessor :start_date, :start_date_param
7
7
 
8
- def initialize(start_date=nil)
8
+ def initialize(start_date=nil, options={})
9
9
  @start_date = start_date
10
+ @start_date_param = options.fetch(:start_date_param, :start_date)
10
11
  end
11
12
 
12
13
  def params
13
14
  if @start_date.present?
14
- ActionController::Parameters.new({start_date: @start_date})
15
+ ActionController::Parameters.new({start_date_param => @start_date})
15
16
  else
16
17
  ActionController::Parameters.new
17
18
  end
@@ -104,6 +105,12 @@ describe SimpleCalendar::Calendar do
104
105
  calendar = SimpleCalendar::Calendar.new(view_context, start_date: Date.tomorrow)
105
106
  expect(calendar.send(:start_date)).to eq(Date.tomorrow)
106
107
  end
108
+
109
+ it "takes an option to override the start_date parameter" do
110
+ view_context = ViewContext.new(Date.yesterday, start_date_param: :date)
111
+ calendar = SimpleCalendar::Calendar.new(view_context, start_date_param: :date)
112
+ expect(calendar.send(:start_date)).to eq(Date.yesterday)
113
+ end
107
114
  end
108
115
 
109
116
  it 'has a param that determines the start date of the calendar'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_calendar
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4
4
+ version: 2.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Oliver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-26 00:00:00.000000000 Z
11
+ date: 2017-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  version: '0'
93
93
  requirements: []
94
94
  rubyforge_project: simple_calendar
95
- rubygems_version: 2.6.8
95
+ rubygems_version: 2.5.1
96
96
  signing_key:
97
97
  specification_version: 4
98
98
  summary: A simple Rails calendar