simple_calendar 2.2.5 → 2.4.1
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 +5 -5
- data/.github/FUNDING.yml +12 -0
- data/.travis.yml +3 -2
- data/CHANGELOG.md +14 -0
- data/README.md +31 -24
- data/app/views/simple_calendar/_calendar.html.erb +5 -5
- data/app/views/simple_calendar/_month_calendar.html.erb +3 -3
- data/app/views/simple_calendar/_week_calendar.html.erb +3 -3
- data/lib/simple_calendar/calendar.rb +19 -7
- data/lib/simple_calendar/month_calendar.rb +3 -5
- data/lib/simple_calendar/version.rb +1 -1
- data/lib/simple_calendar/week_calendar.rb +6 -8
- data/spec/calendar_spec.rb +69 -23
- data/spec/calendars/month_calendar_spec.rb +20 -2
- data/spec/support/fake_event.rb +9 -0
- data/spec/support/view_context.rb +20 -0
- metadata +12 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 60dcc26bdf5d0e6bc7eed23fe0bf3d5c35977b8a189b9a045897410abc4ce36e
|
4
|
+
data.tar.gz: cc92323a3b5766f2f428ff1e3adfa40641843ddd5fce25068aeb7eee224ca710
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7ad3f165f583b789c6b8f8300c8377eac55cac5cb138429435185a6f50ee4b4b276b4d56e75e396ff1bce3f612b9029f1aa69023e6464346de3118d1aa3d580
|
7
|
+
data.tar.gz: 994a400d806c3a3c06939828d64254efad0dd04c34c00dab5a21a842e7ff7460d4e9bb2cb988cedeec0686360e91f53ebe99697979aaf5d23ab342136c771137
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# These are supported funding model platforms
|
2
|
+
|
3
|
+
github: [excid3] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
4
|
+
patreon: # Replace with a single Patreon username
|
5
|
+
open_collective: # Replace with a single Open Collective username
|
6
|
+
ko_fi: # Replace with a single Ko-fi username
|
7
|
+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
8
|
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
9
|
+
liberapay: # Replace with a single Liberapay username
|
10
|
+
issuehunt: # Replace with a single IssueHunt username
|
11
|
+
otechie: # Replace with a single Otechie username
|
12
|
+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
### 2.4.1
|
2
|
+
|
3
|
+
* [FIX] Use iso8601 format for start_date links in the header. Fixes any
|
4
|
+
customization to the Rails default date format that might cause the
|
5
|
+
parser to fail parsing that with `to_date`
|
6
|
+
|
7
|
+
### 2.4.0
|
8
|
+
|
9
|
+
* [BREAKING] Fixes Rails 4.2 by changing `block` to `passed_block`. A
|
10
|
+
security fix in Rails makes `block` a reserved local name that we can
|
11
|
+
no longer use.
|
12
|
+
|
13
|
+
**Upgrading**: If you've customized the simple_calendar views, rename
|
14
|
+
`block` to `passed_block`. Without this, calendar dates will be empty.
|
data/README.md
CHANGED
@@ -24,6 +24,16 @@ Just add this into your Gemfile followed by a bundle install:
|
|
24
24
|
gem "simple_calendar", "~> 2.0"
|
25
25
|
```
|
26
26
|
|
27
|
+
If you're using Bootstrap, the calendar should already have a border and
|
28
|
+
nice spacing for days.
|
29
|
+
|
30
|
+
Optionally, you can include the default stylesheet for the calendar in
|
31
|
+
your `app/assets/stylesheets/application.css` file:
|
32
|
+
|
33
|
+
```scss
|
34
|
+
*= require simple_calendar
|
35
|
+
```
|
36
|
+
|
27
37
|
Usage
|
28
38
|
-----
|
29
39
|
|
@@ -45,6 +55,8 @@ method.
|
|
45
55
|
<% end %>
|
46
56
|
```
|
47
57
|
|
58
|
+
To show the day of the month instead of the date, use `<%= date.day %>`
|
59
|
+
|
48
60
|
### Week Calendar
|
49
61
|
|
50
62
|
You can generate a week calendar with the `week_calendar` method.
|
@@ -90,8 +102,6 @@ You can set a different partial name for calendars by passing the partial path.
|
|
90
102
|
<% end %>
|
91
103
|
```
|
92
104
|
|
93
|
-
Setting `number_of_days` is optional and defaults to 4.
|
94
|
-
|
95
105
|
## Rendering Events
|
96
106
|
|
97
107
|
What's a calendar without events in it? There are two simple steps for creating
|
@@ -110,17 +120,26 @@ $ rails g scaffold Meeting name start_time:datetime
|
|
110
120
|
$ rails g scaffold Meeting name start_time:datetime end_time:datetime
|
111
121
|
```
|
112
122
|
|
113
|
-
By default it uses `start_time` as the attribute name.
|
114
|
-
|
115
|
-
|
116
|
-
**If you'd like to use another attribute other than start_time or end_time, just
|
117
|
-
pass it in as the `attribute` or `end_attribute` options respectively**
|
123
|
+
By default it uses `start_time` as the attribute name.
|
124
|
+
**If you'd like to use another attribute other than start_time, just
|
125
|
+
pass it in as the `attribute`**
|
118
126
|
|
119
127
|
```erb
|
120
128
|
<%= month_calendar(attribute: :starts_at) do |date| %>
|
121
129
|
<%= date %>
|
122
130
|
<% end %>
|
123
131
|
```
|
132
|
+
|
133
|
+
Optionally the `end_time` attribute can be used which enables multi-day event rendering.
|
134
|
+
|
135
|
+
**Just pass in the `attribute` and `end_attribute` options respectively**
|
136
|
+
|
137
|
+
```erb
|
138
|
+
<%= month_calendar(attribute: :start_date, end_attribute: :end_date) do |date| %>
|
139
|
+
<%= date %>
|
140
|
+
<% end %>
|
141
|
+
```
|
142
|
+
|
124
143
|
**If you already have a model with a start time attribute called something other than `start_time` or accesses it through a relationship, you can alias the attribute by defining a `start_time` method in the my_model.rb file and not have to specify it separately as in the above example**
|
125
144
|
```ruby
|
126
145
|
class MyModel
|
@@ -186,7 +205,7 @@ edit to your heart's desire.
|
|
186
205
|
Setting `Time.zone` will make sure the calendar start days are correctly computed
|
187
206
|
in the right timezone. You can set this globally in your `application.rb` file or
|
188
207
|
if you have a User model with a time_zone attribute, you can set it on every request by using
|
189
|
-
a
|
208
|
+
a before_action like the following example.
|
190
209
|
|
191
210
|
This code example uses [Devise](https://github.com/plataformatec/devise)'s
|
192
211
|
`current_user` and `user_signed_in?` methods to retrieve the user's timezone and set it for the duration of the request.
|
@@ -195,7 +214,7 @@ using some other method of authentication.
|
|
195
214
|
|
196
215
|
```ruby
|
197
216
|
class ApplicationController < ActionController::Base
|
198
|
-
|
217
|
+
before_action :set_time_zone, if: :user_signed_in?
|
199
218
|
|
200
219
|
private
|
201
220
|
|
@@ -215,7 +234,7 @@ config.time_zone = 'Central Time (US & Canada)'
|
|
215
234
|
### Beginning Of Week
|
216
235
|
|
217
236
|
You can also change the beginning day of the week by setting
|
218
|
-
`Date.beginning_of_week` in a `
|
237
|
+
`Date.beginning_of_week` in a `before_action` just like in the previous
|
219
238
|
example. If you want to set this globally, you can put this line in
|
220
239
|
`config/application.rb`:
|
221
240
|
|
@@ -223,18 +242,6 @@ example. If you want to set this globally, you can put this line in
|
|
223
242
|
config.beginning_of_week = :sunday
|
224
243
|
```
|
225
244
|
|
226
|
-
### Default Stylesheet
|
227
|
-
|
228
|
-
If you're using Bootstrap, the calendar should already have a border and
|
229
|
-
nice spacing for days.
|
230
|
-
|
231
|
-
Optionally, you can include the default stylesheet for the calendar in
|
232
|
-
your `app/assets/stylesheets/application.css` file:
|
233
|
-
|
234
|
-
```scss
|
235
|
-
*= require simple_calendar
|
236
|
-
```
|
237
|
-
|
238
245
|
### Custom CSS Classes
|
239
246
|
|
240
247
|
Setting classes on the table and elements are pretty easy.
|
@@ -319,7 +326,7 @@ The main method you'll need to implement is the `date_range` so that
|
|
319
326
|
your calendar can have a custom length.
|
320
327
|
|
321
328
|
```ruby
|
322
|
-
class SimpleCalendar::BusinessWeekCalendar
|
329
|
+
class SimpleCalendar::BusinessWeekCalendar < SimpleCalendar::Calendar
|
323
330
|
private
|
324
331
|
|
325
332
|
def date_range
|
@@ -333,7 +340,7 @@ end
|
|
333
340
|
To render this in the view, you can do:
|
334
341
|
|
335
342
|
```erb
|
336
|
-
<%= SimpleCalendar::BusinessWeekCalendar.new(self).render do |date| %>
|
343
|
+
<%= SimpleCalendar::BusinessWeekCalendar.new(self, {}).render do |date| %>
|
337
344
|
<%= date %>
|
338
345
|
<% end %>
|
339
346
|
```
|
@@ -16,17 +16,17 @@
|
|
16
16
|
|
17
17
|
<tbody>
|
18
18
|
<% date_range.each_slice(7) do |week| %>
|
19
|
-
|
19
|
+
<%= content_tag :tr, class: calendar.tr_classes_for(week) do %>
|
20
20
|
<% week.each do |day| %>
|
21
21
|
<%= content_tag :td, class: calendar.td_classes_for(day) do %>
|
22
|
-
<% if defined?(Haml) && respond_to?(:block_is_haml?) && block_is_haml?(
|
23
|
-
<% capture_haml(day, sorted_events.fetch(day, []), &
|
22
|
+
<% if defined?(Haml) && respond_to?(:block_is_haml?) && block_is_haml?(passed_block) %>
|
23
|
+
<% capture_haml(day, sorted_events.fetch(day, []), &passed_block) %>
|
24
24
|
<% else %>
|
25
|
-
<%
|
25
|
+
<% passed_block.call day, sorted_events.fetch(day, []) %>
|
26
26
|
<% end %>
|
27
27
|
<% end %>
|
28
28
|
<% end %>
|
29
|
-
|
29
|
+
<% end %>
|
30
30
|
<% end %>
|
31
31
|
</tbody>
|
32
32
|
</table>
|
@@ -19,10 +19,10 @@
|
|
19
19
|
<tr>
|
20
20
|
<% week.each do |day| %>
|
21
21
|
<%= content_tag :td, class: calendar.td_classes_for(day) do %>
|
22
|
-
<% if defined?(Haml) && respond_to?(:block_is_haml?) && block_is_haml?(
|
23
|
-
<% capture_haml(day, sorted_events.fetch(day, []), &
|
22
|
+
<% if defined?(Haml) && respond_to?(:block_is_haml?) && block_is_haml?(passed_block) %>
|
23
|
+
<% capture_haml(day, sorted_events.fetch(day, []), &passed_block) %>
|
24
24
|
<% else %>
|
25
|
-
<%
|
25
|
+
<% passed_block.call day, sorted_events.fetch(day, []) %>
|
26
26
|
<% end %>
|
27
27
|
<% end %>
|
28
28
|
<% end %>
|
@@ -23,10 +23,10 @@
|
|
23
23
|
<tr>
|
24
24
|
<% week.each do |day| %>
|
25
25
|
<%= content_tag :td, class: calendar.td_classes_for(day) do %>
|
26
|
-
<% if defined?(Haml) && respond_to?(:block_is_haml?) && block_is_haml?(
|
27
|
-
<% capture_haml(day, sorted_events.fetch(day, []), &
|
26
|
+
<% if defined?(Haml) && respond_to?(:block_is_haml?) && block_is_haml?(passed_block) %>
|
27
|
+
<% capture_haml(day, sorted_events.fetch(day, []), &passed_block) %>
|
28
28
|
<% else %>
|
29
|
-
<%
|
29
|
+
<% passed_block.call day, sorted_events.fetch(day, []) %>
|
30
30
|
<% end %>
|
31
31
|
<% end %>
|
32
32
|
<% end %>
|
@@ -10,16 +10,20 @@ module SimpleCalendar
|
|
10
10
|
@view_context = view_context
|
11
11
|
@options = opts
|
12
12
|
|
13
|
+
# Next and previous view links should use the same params as the current view
|
13
14
|
@params = @view_context.respond_to?(:params) ? @view_context.params : Hash.new
|
14
15
|
@params = @params.to_unsafe_h if @params.respond_to?(:to_unsafe_h)
|
15
16
|
@params = @params.with_indifferent_access.except(*PARAM_KEY_BLACKLIST)
|
17
|
+
|
18
|
+
# Add in any additional params the user passed in
|
19
|
+
@params.merge!(@options.fetch(:params, {}))
|
16
20
|
end
|
17
21
|
|
18
22
|
def render(&block)
|
19
23
|
view_context.render(
|
20
24
|
partial: partial_name,
|
21
25
|
locals: {
|
22
|
-
|
26
|
+
passed_block: block,
|
23
27
|
calendar: self,
|
24
28
|
date_range: date_range,
|
25
29
|
start_date: start_date,
|
@@ -45,12 +49,24 @@ module SimpleCalendar
|
|
45
49
|
td_class
|
46
50
|
end
|
47
51
|
|
52
|
+
def tr_classes_for(week)
|
53
|
+
today = Date.current
|
54
|
+
tr_class = ['week']
|
55
|
+
tr_class << 'current-week' if week.include?(today)
|
56
|
+
|
57
|
+
tr_class
|
58
|
+
end
|
59
|
+
|
48
60
|
def url_for_next_view
|
49
|
-
view_context.url_for(@params.merge(start_date_param => date_range.last + 1.day))
|
61
|
+
view_context.url_for(@params.merge(start_date_param => (date_range.last + 1.day).iso8601))
|
50
62
|
end
|
51
63
|
|
52
64
|
def url_for_previous_view
|
53
|
-
view_context.url_for(@params.merge(start_date_param => date_range.first - 1.day))
|
65
|
+
view_context.url_for(@params.merge(start_date_param => (date_range.first - 1.day).iso8601))
|
66
|
+
end
|
67
|
+
|
68
|
+
def date_range
|
69
|
+
(start_date..(start_date + additional_days.days)).to_a
|
54
70
|
end
|
55
71
|
|
56
72
|
private
|
@@ -104,10 +120,6 @@ module SimpleCalendar
|
|
104
120
|
date_range.last
|
105
121
|
end
|
106
122
|
|
107
|
-
def date_range
|
108
|
-
(start_date..(start_date + additional_days.days)).to_a
|
109
|
-
end
|
110
|
-
|
111
123
|
def additional_days
|
112
124
|
options.fetch(:number_of_days, 4) - 1
|
113
125
|
end
|
@@ -1,10 +1,8 @@
|
|
1
1
|
module SimpleCalendar
|
2
2
|
class MonthCalendar < SimpleCalendar::Calendar
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
(start_date.beginning_of_month.beginning_of_week..start_date.end_of_month.end_of_week).to_a
|
7
|
-
end
|
3
|
+
def date_range
|
4
|
+
(start_date.beginning_of_month.beginning_of_week..start_date.end_of_month.end_of_week).to_a
|
5
|
+
end
|
8
6
|
end
|
9
7
|
end
|
10
8
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module SimpleCalendar
|
2
2
|
class WeekCalendar < SimpleCalendar::Calendar
|
3
3
|
def week_number
|
4
|
-
format = (Date.beginning_of_week == :sunday) ? "%U" : "%
|
4
|
+
format = (Date.beginning_of_week == :sunday) ? "%U" : "%V"
|
5
5
|
start_date.beginning_of_week.strftime(format).to_i
|
6
6
|
end
|
7
7
|
|
@@ -13,13 +13,11 @@ module SimpleCalendar
|
|
13
13
|
week_number + number_of_weeks - 1
|
14
14
|
end
|
15
15
|
|
16
|
-
|
16
|
+
def date_range
|
17
|
+
starting = start_date.beginning_of_week
|
18
|
+
ending = (starting + (number_of_weeks - 1).weeks).end_of_week
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
ending = (starting + (number_of_weeks - 1).weeks).end_of_week
|
21
|
-
|
22
|
-
(starting..ending).to_a
|
23
|
-
end
|
20
|
+
(starting..ending).to_a
|
21
|
+
end
|
24
22
|
end
|
25
23
|
end
|
data/spec/calendar_spec.rb
CHANGED
@@ -1,23 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'action_controller'
|
3
3
|
require 'simple_calendar/calendar'
|
4
|
-
|
5
|
-
|
6
|
-
attr_accessor :start_date, :start_date_param
|
7
|
-
|
8
|
-
def initialize(start_date=nil, options={})
|
9
|
-
@start_date = start_date
|
10
|
-
@start_date_param = options.fetch(:start_date_param, :start_date)
|
11
|
-
end
|
12
|
-
|
13
|
-
def params
|
14
|
-
if @start_date.present?
|
15
|
-
ActionController::Parameters.new({start_date_param => @start_date})
|
16
|
-
else
|
17
|
-
ActionController::Parameters.new
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
4
|
+
require_relative 'support/fake_event'
|
5
|
+
require_relative 'support/view_context'
|
21
6
|
|
22
7
|
describe SimpleCalendar::Calendar do
|
23
8
|
let(:calendar) { SimpleCalendar::Calendar.new(ViewContext.new) }
|
@@ -113,18 +98,79 @@ describe SimpleCalendar::Calendar do
|
|
113
98
|
end
|
114
99
|
end
|
115
100
|
|
116
|
-
|
117
|
-
|
118
|
-
|
101
|
+
describe 'current week class' do
|
102
|
+
it 'should have the current week' do
|
103
|
+
calendar = SimpleCalendar::Calendar.new(ViewContext.new)
|
104
|
+
week = calendar.date_range.each_slice(7).to_a[0]
|
105
|
+
expect(calendar.send(:tr_classes_for, week)).to include('current-week')
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'should not have the current week if it does not contain today' do
|
109
|
+
calendar = SimpleCalendar::MonthCalendar.new(ViewContext.new(6.months.ago))
|
110
|
+
week = calendar.date_range.each_slice(7).to_a[0]
|
111
|
+
expect(calendar.send(:tr_classes_for, week)).to_not include('current-week')
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'has a param that determines the start date of the calendar' do
|
116
|
+
calendar = SimpleCalendar::Calendar.new(ViewContext.new)
|
117
|
+
|
118
|
+
rendering_variables = calendar.render[:locals]
|
119
|
+
|
120
|
+
expect(rendering_variables[:start_date]).not_to be_nil
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'generates a default date if no start date is present' do
|
124
|
+
calendar = SimpleCalendar::Calendar.new(ViewContext.new)
|
125
|
+
|
126
|
+
calendar_start_date = calendar.render[:locals][:start_date]
|
127
|
+
|
128
|
+
expect(calendar_start_date).not_to be_nil
|
129
|
+
expect(calendar_start_date).to be_a(Date)
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'has a range of dates' do
|
133
|
+
calendar = SimpleCalendar::Calendar.new(ViewContext.new)
|
134
|
+
|
135
|
+
calendar_date_range = calendar.date_range
|
136
|
+
|
137
|
+
expect(calendar_date_range).to be_an(Array)
|
138
|
+
expect(calendar_date_range).to all(be_an(Date))
|
139
|
+
end
|
119
140
|
|
120
141
|
it 'can split the range of dates into weeks'
|
121
142
|
it 'has a title'
|
122
143
|
it 'has a next view link'
|
123
144
|
it 'has a previous view link'
|
124
145
|
|
125
|
-
it 'accepts an array of events'
|
126
|
-
|
127
|
-
|
146
|
+
it 'accepts an array of events' do
|
147
|
+
first_event = FakeEvent.new('event1', Date.today)
|
148
|
+
second_event = FakeEvent.new('event2', Date.today + 1.day)
|
149
|
+
events = [first_event, second_event]
|
150
|
+
calendar = SimpleCalendar::Calendar.new(ViewContext.new, events: events)
|
151
|
+
|
152
|
+
calendar_sorted_events = calendar.render[:locals][:sorted_events]
|
153
|
+
|
154
|
+
expect(calendar_sorted_events.length).to eq(2)
|
155
|
+
end
|
128
156
|
|
157
|
+
it 'sorts the events' do
|
158
|
+
first_event = FakeEvent.new('event1', Date.today + 2.days)
|
159
|
+
second_event = FakeEvent.new('event2', Date.today + 1.day)
|
160
|
+
third_event = FakeEvent.new('event3', Date.today)
|
161
|
+
events = [first_event, third_event, second_event]
|
162
|
+
calendar = SimpleCalendar::Calendar.new(ViewContext.new, events: events)
|
163
|
+
|
164
|
+
calendar_sorted_events = calendar.render[:locals][:sorted_events]
|
165
|
+
first_key = calendar_sorted_events.keys[0]
|
166
|
+
second_key = calendar_sorted_events.keys[1]
|
167
|
+
third_key = calendar_sorted_events.keys[2]
|
168
|
+
|
169
|
+
expect(calendar_sorted_events[first_key][0]).to eq(third_event)
|
170
|
+
expect(calendar_sorted_events[second_key][0]).to eq(second_event)
|
171
|
+
expect(calendar_sorted_events[third_key][0]).to eq(first_event)
|
172
|
+
end
|
173
|
+
|
174
|
+
it 'yields the events for each day'
|
129
175
|
it "doesn't crash when an event has a nil start_time"
|
130
176
|
end
|
@@ -1,7 +1,25 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'action_controller'
|
3
|
+
require 'simple_calendar/calendar'
|
2
4
|
require 'simple_calendar/month_calendar'
|
5
|
+
require 'support/view_context'
|
3
6
|
|
4
7
|
describe SimpleCalendar::MonthCalendar do
|
5
|
-
|
6
|
-
|
8
|
+
describe '#date_range' do
|
9
|
+
it 'renders a full calendar month' do
|
10
|
+
today = Date.today
|
11
|
+
calendar = SimpleCalendar::MonthCalendar.new(ViewContext.new, start_date: Date.today)
|
12
|
+
|
13
|
+
expect(calendar.date_range.min).to be <= today.beginning_of_month
|
14
|
+
expect(calendar.date_range.max).to be >= today.end_of_month
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'render the days of next and previous months on the edges of the calendar' do
|
18
|
+
month = Date.new(2018, 8, 1)
|
19
|
+
calendar = SimpleCalendar::MonthCalendar.new(ViewContext.new, start_date: month)
|
20
|
+
|
21
|
+
expect(calendar.date_range.first).to eq Date.new(2018, 7, 30)
|
22
|
+
expect(calendar.date_range.last).to eq Date.new(2018, 9, 2)
|
23
|
+
end
|
24
|
+
end
|
7
25
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class ViewContext
|
2
|
+
attr_accessor :start_date, :start_date_param
|
3
|
+
|
4
|
+
def initialize(start_date=nil, options={})
|
5
|
+
@start_date = start_date
|
6
|
+
@start_date_param = options.fetch(:start_date_param, :start_date)
|
7
|
+
end
|
8
|
+
|
9
|
+
def params
|
10
|
+
if @start_date.present?
|
11
|
+
ActionController::Parameters.new({start_date_param => @start_date})
|
12
|
+
else
|
13
|
+
ActionController::Parameters.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def render(options = {})
|
18
|
+
options
|
19
|
+
end
|
20
|
+
end
|
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.
|
4
|
+
version: 2.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Oliver
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -45,9 +45,11 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
+
- ".github/FUNDING.yml"
|
48
49
|
- ".gitignore"
|
49
50
|
- ".rspec"
|
50
51
|
- ".travis.yml"
|
52
|
+
- CHANGELOG.md
|
51
53
|
- Gemfile
|
52
54
|
- LICENSE.txt
|
53
55
|
- README.md
|
@@ -71,12 +73,14 @@ files:
|
|
71
73
|
- spec/calendars/month_calendar_spec.rb
|
72
74
|
- spec/simple_calendar_spec.rb
|
73
75
|
- spec/spec_helper.rb
|
76
|
+
- spec/support/fake_event.rb
|
77
|
+
- spec/support/view_context.rb
|
74
78
|
- spec/views_generators_spec.rb
|
75
79
|
homepage: https://github.com/excid3/simple_calendar
|
76
80
|
licenses:
|
77
81
|
- MIT
|
78
82
|
metadata: {}
|
79
|
-
post_install_message:
|
83
|
+
post_install_message:
|
80
84
|
rdoc_options: []
|
81
85
|
require_paths:
|
82
86
|
- lib
|
@@ -91,9 +95,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
95
|
- !ruby/object:Gem::Version
|
92
96
|
version: '0'
|
93
97
|
requirements: []
|
94
|
-
|
95
|
-
|
96
|
-
signing_key:
|
98
|
+
rubygems_version: 3.1.4
|
99
|
+
signing_key:
|
97
100
|
specification_version: 4
|
98
101
|
summary: A simple Rails calendar
|
99
102
|
test_files:
|
@@ -101,4 +104,6 @@ test_files:
|
|
101
104
|
- spec/calendars/month_calendar_spec.rb
|
102
105
|
- spec/simple_calendar_spec.rb
|
103
106
|
- spec/spec_helper.rb
|
107
|
+
- spec/support/fake_event.rb
|
108
|
+
- spec/support/view_context.rb
|
104
109
|
- spec/views_generators_spec.rb
|