jekyll-ical-tag 1.0.8 → 1.0.9
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 +4 -4
- data/_plugins/ical_tag.rb +5 -6
- data/jekyll-ical-tag.gemspec +12 -12
- data/lib/jekyll-ical-tag/calendar_limiter.rb +2 -0
- data/lib/jekyll-ical-tag/version.rb +1 -1
- data/lib/jekyll-ical-tag.rb +32 -10
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0aa8b610c5113e232c010134e97b4ba1af55e07f92bba29cd820f1c2daaa0e1
|
4
|
+
data.tar.gz: fe4a3829d1a32311f773ab8c3825de673dec80586f2e49a569a57748d5475ff4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5848157e8929d51d128d372dd1d037f997ec74240ccf437bfe593deb70ec41b9299ef9364555dd2a290d235f984d413c9621706d012b38ab720e5f6aae9aeba3
|
7
|
+
data.tar.gz: ee10e4e946fd367ee92ae463f44a8873d7d834b60b1eb8b27f939e3acb2296077440992db42967f84658d854ce7832da40d974745903a9da9bca8832fb8d4413
|
data/_plugins/ical_tag.rb
CHANGED
@@ -46,6 +46,8 @@ class CalendarLimiter
|
|
46
46
|
parser.events.select do |event|
|
47
47
|
event.dtstart.to_time < options[:before_date]
|
48
48
|
end
|
49
|
+
when options[:limit]
|
50
|
+
parser.events.first(options[:limit].to_i)
|
49
51
|
else
|
50
52
|
parser.events
|
51
53
|
end
|
@@ -150,8 +152,7 @@ module Jekyll
|
|
150
152
|
only_past = @attributes["only_past"] == "true"
|
151
153
|
|
152
154
|
raise "Set only_future OR only_past, not both" if only_future && only_past
|
153
|
-
@only =
|
154
|
-
case
|
155
|
+
@only = case
|
155
156
|
when only_future
|
156
157
|
:future
|
157
158
|
when only_past
|
@@ -162,8 +163,7 @@ module Jekyll
|
|
162
163
|
end
|
163
164
|
|
164
165
|
def set_before_date!
|
165
|
-
@before_date =
|
166
|
-
begin
|
166
|
+
@before_date = begin
|
167
167
|
if @attributes["before_date"]
|
168
168
|
Time.parse(@attributes["before_date"])
|
169
169
|
end
|
@@ -173,8 +173,7 @@ module Jekyll
|
|
173
173
|
end
|
174
174
|
|
175
175
|
def set_after_date!
|
176
|
-
@after_date =
|
177
|
-
begin
|
176
|
+
@after_date = begin
|
178
177
|
if @attributes["after_date"]
|
179
178
|
Time.parse(@attributes["after_date"])
|
180
179
|
end
|
data/jekyll-ical-tag.gemspec
CHANGED
@@ -3,17 +3,17 @@
|
|
3
3
|
lib = File.expand_path("lib", __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
|
6
|
-
require
|
6
|
+
require "jekyll"
|
7
7
|
require "jekyll-ical-tag/version"
|
8
8
|
|
9
9
|
Gem::Specification.new do |spec|
|
10
|
-
spec.name
|
11
|
-
spec.version
|
12
|
-
spec.authors
|
13
|
-
spec.email
|
14
|
-
spec.summary
|
15
|
-
spec.homepage
|
16
|
-
spec.license
|
10
|
+
spec.name = "jekyll-ical-tag"
|
11
|
+
spec.version = Jekyll::IcalTag::VERSION
|
12
|
+
spec.authors = ["Ricky Chilcott"]
|
13
|
+
spec.email = ["ricky@rakefire.io"]
|
14
|
+
spec.summary = "A Jekyll plugin to pull ICS feed and provide a for-like loop of calendar events"
|
15
|
+
spec.homepage = "https://github.com/rakefire/jekyll-ical-tag"
|
16
|
+
spec.license = "MIT"
|
17
17
|
|
18
18
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
19
19
|
# delete this section to allow pushing this gem to any host.
|
@@ -25,12 +25,12 @@ Gem::Specification.new do |spec|
|
|
25
25
|
|
26
26
|
spec.required_ruby_version = ">= 2.3.0"
|
27
27
|
|
28
|
-
spec.files
|
29
|
-
spec.bindir
|
30
|
-
spec.executables
|
28
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r!^(test|spec|features)/!) }
|
29
|
+
spec.bindir = "exe"
|
30
|
+
spec.executables = spec.files.grep(%r!^exe/!) { |f| File.basename(f) }
|
31
31
|
spec.require_paths = ["lib"]
|
32
32
|
|
33
|
-
spec.add_dependency "jekyll", "~>
|
33
|
+
spec.add_dependency "jekyll", "~> 3"
|
34
34
|
spec.add_dependency "api_cache"
|
35
35
|
spec.add_dependency "activesupport"
|
36
36
|
spec.add_dependency "icalendar"
|
data/lib/jekyll-ical-tag.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
|
4
4
|
require "jekyll"
|
5
5
|
require "jekyll-ical-tag/version"
|
6
|
-
require "pry"
|
7
6
|
|
8
7
|
module Jekyll
|
9
8
|
class IcalTag < Liquid::Block
|
@@ -31,16 +30,19 @@ module Jekyll
|
|
31
30
|
|
32
31
|
result = []
|
33
32
|
|
33
|
+
set_url_from_assigned_value!(context)
|
34
|
+
set_url_from_page_attributes!(context)
|
35
|
+
|
36
|
+
raise "No URL provided or in innapropriate form '#{@url}'" unless has_valid_url?
|
37
|
+
|
34
38
|
parser = CalendarParser.new(@url)
|
35
39
|
parser = CalendarLimiter.new(parser, only: @only)
|
36
40
|
parser = CalendarLimiter.new(parser, reverse: @reverse)
|
37
41
|
parser = CalendarLimiter.new(parser, before_date: @before_date)
|
38
42
|
parser = CalendarLimiter.new(parser, after_date: @after_date)
|
43
|
+
parser = CalendarLimiter.new(parser, limit: @limit)
|
39
44
|
|
40
45
|
events = parser.events
|
41
|
-
if @limit
|
42
|
-
events = events.first(@limit)
|
43
|
-
end
|
44
46
|
length = events.length
|
45
47
|
|
46
48
|
context.stack do
|
@@ -84,6 +86,30 @@ module Jekyll
|
|
84
86
|
|
85
87
|
private
|
86
88
|
|
89
|
+
def has_valid_url?
|
90
|
+
!!(@url =~ URI::regexp)
|
91
|
+
end
|
92
|
+
|
93
|
+
def set_url_from_page_attributes!(context)
|
94
|
+
return if has_valid_url?
|
95
|
+
|
96
|
+
# Dereference @url from something like "page.calender_url" to the page's calendar_url
|
97
|
+
|
98
|
+
dig_attrs = @url.split(".")
|
99
|
+
dig_attrs[0] = dig_attrs[0].to_sym if dig_attrs[0].present?
|
100
|
+
if dug_result = context.registers.dig(*dig_attrs)
|
101
|
+
@url = dug_result
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def set_url_from_assigned_value!(context)
|
106
|
+
return if has_valid_url?
|
107
|
+
return unless context.scopes.first[@url]
|
108
|
+
|
109
|
+
# Dereference the URL if we were passed a variable name.
|
110
|
+
@url = context.scopes.first[@url]
|
111
|
+
end
|
112
|
+
|
87
113
|
def as_utf8(str)
|
88
114
|
return unless str
|
89
115
|
|
@@ -98,11 +124,8 @@ module Jekyll
|
|
98
124
|
end
|
99
125
|
|
100
126
|
def set_limit!
|
101
|
-
|
102
|
-
|
103
|
-
else
|
104
|
-
@limit = nil
|
105
|
-
end
|
127
|
+
@limit = nil
|
128
|
+
@limit = @attributes["limit"].to_i if @attributes["limit"]
|
106
129
|
end
|
107
130
|
|
108
131
|
def set_reverse!
|
@@ -111,7 +134,6 @@ module Jekyll
|
|
111
134
|
|
112
135
|
def set_url!
|
113
136
|
@url = @attributes["url"]
|
114
|
-
raise "No URL provided" unless @url
|
115
137
|
end
|
116
138
|
|
117
139
|
def set_only!
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-ical-tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricky Chilcott
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: api_cache
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|