add_to_calendar 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/add_to_calendar.gemspec +3 -3
- data/lib/add_to_calendar.rb +27 -19
- data/lib/add_to_calendar/version.rb +1 -1
- metadata +16 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 789ef2611f13b5cef3a81aa059cd0f414a5fe55ab741f875973e33d06519240a
|
4
|
+
data.tar.gz: 4f9158d43cc9eeb7ab470b2847df479a73e4f439245678f5f9153b7ac4c48353
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4018b1bff230e0c5c280e2d06160cc3698f30641c436ce31dbb99f15bfe381748fad1cc42a3049c93941b245ca7df57149f5404c8fcd70f1290f9c8d56c43fa
|
7
|
+
data.tar.gz: f410a0121363a5a4cb506ff9abbeef6bdeeee99fb641d7b0099d8029139a2b212b64c2cacee44e43653e9019fc63212bf694bef9d1a5c8ae7fd814342ccb7453
|
data/Gemfile.lock
CHANGED
data/add_to_calendar.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.authors = ["Jared Turner"]
|
9
9
|
spec.email = ["jaredlt01@gmail.com"]
|
10
10
|
|
11
|
-
spec.summary = "Generate 'Add To Calendar' URLs for
|
11
|
+
spec.summary = "Generate 'Add To Calendar' URLs for Apple, Google, Office 365, Outlook, Outlook.com and Yahoo calendars"
|
12
12
|
# spec.description = %q{TODO: Write a longer description or delete this line.}
|
13
13
|
spec.homepage = "https://github.com/jaredlt/add_to_calendar"
|
14
14
|
spec.license = "MIT"
|
@@ -28,8 +28,8 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.required_ruby_version = '>= 2.0'
|
30
30
|
|
31
|
-
spec.add_dependency "tzinfo", "
|
32
|
-
spec.add_dependency "tzinfo-data", "~> 1.2020
|
31
|
+
spec.add_dependency "tzinfo", ">= 1.1", "< 3"
|
32
|
+
spec.add_dependency "tzinfo-data", "~> 1.2020"
|
33
33
|
|
34
34
|
spec.add_development_dependency "bundler", "~> 2.0"
|
35
35
|
spec.add_development_dependency "rake", "~> 13.0.1"
|
data/lib/add_to_calendar.rb
CHANGED
@@ -118,7 +118,7 @@ module AddToCalendar
|
|
118
118
|
params[:LOCATION] = url_encode(location) if location
|
119
119
|
params[:UID] = "-#{url_encode(url)}" if url
|
120
120
|
params[:UID] = "-#{utc_datetime(start_datetime)}-#{url_encode(title)}" unless params[:UID] # set uid based on starttime and title only if url is unavailable
|
121
|
-
|
121
|
+
|
122
122
|
new_line = "%0A"
|
123
123
|
params.each do |key, value|
|
124
124
|
calendar_url << "#{new_line}#{key}=#{value}"
|
@@ -176,10 +176,10 @@ module AddToCalendar
|
|
176
176
|
else
|
177
177
|
params[:enddt] = utc_datetime_microsoft(start_datetime + 60*60) # 1 hour later
|
178
178
|
end
|
179
|
-
params[:body] = url_encode(description) if description
|
179
|
+
params[:body] = url_encode(newlines_to_html_br(description)) if description
|
180
180
|
if add_url_to_description && url
|
181
181
|
if params[:body]
|
182
|
-
params[:body] << url_encode("\n\n#{url}")
|
182
|
+
params[:body] << url_encode(newlines_to_html_br("\n\n#{url}"))
|
183
183
|
else
|
184
184
|
params[:body] = url_encode(url)
|
185
185
|
end
|
@@ -194,27 +194,31 @@ module AddToCalendar
|
|
194
194
|
end
|
195
195
|
|
196
196
|
def utc_datetime(datetime)
|
197
|
-
t = timezone.
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
197
|
+
t = timezone.local_to_utc(
|
198
|
+
Time.new(
|
199
|
+
datetime.strftime("%Y").to_i,
|
200
|
+
datetime.strftime("%m").to_i,
|
201
|
+
datetime.strftime("%d").to_i,
|
202
|
+
datetime.strftime("%H").to_i,
|
203
|
+
datetime.strftime("%M").to_i,
|
204
|
+
datetime.strftime("%S").to_i
|
205
|
+
)
|
206
|
+
)
|
205
207
|
|
206
208
|
return t.strftime('%Y%m%dT%H%M%SZ')
|
207
209
|
end
|
208
210
|
|
209
211
|
def utc_datetime_microsoft(datetime)
|
210
|
-
t = timezone.
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
212
|
+
t = timezone.local_to_utc(
|
213
|
+
Time.new(
|
214
|
+
datetime.strftime("%Y").to_i,
|
215
|
+
datetime.strftime("%m").to_i,
|
216
|
+
datetime.strftime("%d").to_i,
|
217
|
+
datetime.strftime("%H").to_i,
|
218
|
+
datetime.strftime("%M").to_i,
|
219
|
+
datetime.strftime("%S").to_i
|
220
|
+
)
|
221
|
+
)
|
218
222
|
|
219
223
|
return t.strftime('%Y-%m-%dT%H:%M:%SZ')
|
220
224
|
end
|
@@ -230,5 +234,9 @@ module AddToCalendar
|
|
230
234
|
def seconds_to_hours_minutes(sec)
|
231
235
|
"%02d%02d" % [sec / 3600, sec / 60 % 60]
|
232
236
|
end
|
237
|
+
|
238
|
+
def newlines_to_html_br(string)
|
239
|
+
string.gsub(/(?:\n\r?|\r\n?)/, '<br>')
|
240
|
+
end
|
233
241
|
end
|
234
242
|
end
|
metadata
CHANGED
@@ -1,43 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: add_to_calendar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jared Turner
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tzinfo
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.1'
|
20
|
+
- - "<"
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: '3'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.1'
|
30
|
+
- - "<"
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: '3'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: tzinfo-data
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - "~>"
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.2020
|
39
|
+
version: '1.2020'
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
44
|
- - "~>"
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.2020
|
46
|
+
version: '1.2020'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: bundler
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,6 +145,6 @@ requirements: []
|
|
139
145
|
rubygems_version: 3.0.6
|
140
146
|
signing_key:
|
141
147
|
specification_version: 4
|
142
|
-
summary: Generate 'Add To Calendar' URLs for
|
143
|
-
calendars
|
148
|
+
summary: Generate 'Add To Calendar' URLs for Apple, Google, Office 365, Outlook, Outlook.com
|
149
|
+
and Yahoo calendars
|
144
150
|
test_files: []
|