almanack 1.1.3 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c4c0ffb7056e085fa861423bf9ade96fee7dda1daf3fb36495aebaa47f1e008
4
- data.tar.gz: 580196e4067cc64650d1342befd65d85d34ef38bcf2ff2213aab68bd56a5a0c0
3
+ metadata.gz: fd1677c0cdd5da474a3d19e6e2b883e023a7723f3ccea179ac2098cb75773569
4
+ data.tar.gz: 4c9e72b26356e55d3a7e8cd0ada49264dc79762066eaf2b119343ba6bc2db1d9
5
5
  SHA512:
6
- metadata.gz: 550894ae4c18c94c4f16443a5d13af2f204a5c05c220f06538e858d6b3ec8d35d0b868517db0157d2a1ae921b6c0a606f4a6eb30ccaf58969f6800c885137c0d
7
- data.tar.gz: c91d62ad6a9aae798283abf398224f9116b613e4672ad7a14a01481580c41a107971d3dc274c8e1c2acda345cde51363f56391732f172f42f331ed8fd465247b
6
+ metadata.gz: f1887ce7f38753cabeca433265b85d5e455b2e48321db6d8625f94c1d266b7990cd8041bf3445baf5a0424e5f3ade8366db50eb4b55a3c2fceeb3a43d84b9092
7
+ data.tar.gz: c1cc81a1d3bbe45aab4073cee57695fba7658cd6ed24efc072b1f507c9fd0d7a5cbdea0b13ae3dc0f21412dd3ba7179bab2d054cefe51ed7c64f028ac744925d
@@ -1 +1,3 @@
1
- ��B"ň��^}Z*����u��!Г�&��FP%gaU�`|��LJ�Q���o.�wm�Q;ۜ������3@�o�""��D˗�U�9�>�� ���մ6�Q��&�G�^
1
+ n e6��ɳ(v��o�
2
+ E(����8��x���G����+�S�� p����}Q�4��r��A.\a ����juqXOwb��
3
+ ��9� ������훟�B��ODI���S���� \�i������ԇު��T}�4����2��)h�����1.���3C�¤�ܼ�9K��A��-&\��,�8T%Q�M�̑�-E�G�d�>�Ѫ�З��^���8�@5&j5��R�wS]��Z����#���y,�!�!�`O���d63X�z`�H�A:ŋ�����z��&�@N��`-�]iD�iIc�B�'<q�8�.�a� #�Pn� K��*qˤ�A�Zh��4���y#uo�:�0���g4��4Ԛ�-]��/L��G�
data.tar.gz.sig CHANGED
Binary file
@@ -2,10 +2,10 @@ sudo: false
2
2
  language: ruby
3
3
  cache: bundler
4
4
  rvm:
5
- - 2.4.5
6
- - 2.5.3
7
- - 2.6.2
8
- before_install: gem install bundler -v 2.0.1
5
+ - 2.5.7
6
+ - 2.6.5
7
+ - 2.7.0-preview2
8
+ before_install: gem install bundler -v 2.0.2
9
9
  addons:
10
10
  code_climate:
11
11
  repo_token:
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- almanack (1.1.3)
4
+ almanack (1.1.5)
5
5
  activesupport
6
6
  addressable
7
7
  faraday
@@ -16,43 +16,47 @@ PATH
16
16
  GEM
17
17
  remote: https://rubygems.org/
18
18
  specs:
19
- activesupport (5.2.3)
19
+ activesupport (6.0.1)
20
20
  concurrent-ruby (~> 1.0, >= 1.0.2)
21
21
  i18n (>= 0.7, < 2)
22
22
  minitest (~> 5.1)
23
23
  tzinfo (~> 1.1)
24
- addressable (2.6.0)
25
- public_suffix (>= 2.0.2, < 4.0)
24
+ zeitwerk (~> 2.2)
25
+ addressable (2.7.0)
26
+ public_suffix (>= 2.0.2, < 5.0)
26
27
  backports (3.15.0)
28
+ bundler-audit (0.6.1)
29
+ bundler (>= 1.2.0, < 3)
30
+ thor (~> 0.18)
27
31
  coderay (1.1.2)
28
32
  concurrent-ruby (1.1.5)
29
33
  crack (0.4.3)
30
34
  safe_yaml (~> 1.0.0)
31
35
  diff-lcs (1.3)
32
- faraday (0.15.4)
36
+ faraday (0.17.0)
33
37
  multipart-post (>= 1.2, < 3)
34
38
  faraday_middleware (0.13.1)
35
39
  faraday (>= 0.7.4, < 1.0)
36
- ffi (1.11.1)
37
- hashdiff (0.3.8)
38
- i18n (1.6.0)
40
+ ffi (1.11.2)
41
+ hashdiff (1.0.0)
42
+ i18n (1.7.0)
39
43
  concurrent-ruby (~> 1.0)
40
44
  method_source (0.9.2)
41
45
  mini_portile2 (2.4.0)
42
- minitest (5.11.3)
43
- multi_json (1.13.1)
46
+ minitest (5.13.0)
47
+ multi_json (1.14.1)
44
48
  multipart-post (2.1.1)
45
49
  mustermann (1.0.3)
46
- nokogiri (1.10.2)
50
+ nokogiri (1.10.5)
47
51
  mini_portile2 (~> 2.4.0)
48
52
  pry (0.12.2)
49
53
  coderay (~> 1.1.0)
50
54
  method_source (~> 0.9.0)
51
- public_suffix (3.0.3)
55
+ public_suffix (4.0.1)
52
56
  rack (2.0.7)
53
57
  rack-contrib (2.1.0)
54
58
  rack (~> 2.0)
55
- rack-protection (2.0.5)
59
+ rack-protection (2.0.7)
56
60
  rack
57
61
  rack-test (1.1.0)
58
62
  rack (>= 1.0, < 3)
@@ -61,48 +65,49 @@ GEM
61
65
  rb-inotify (0.10.0)
62
66
  ffi (~> 1.0)
63
67
  ri_cal (0.8.8)
64
- rspec (3.8.0)
65
- rspec-core (~> 3.8.0)
66
- rspec-expectations (~> 3.8.0)
67
- rspec-mocks (~> 3.8.0)
68
- rspec-core (3.8.0)
69
- rspec-support (~> 3.8.0)
70
- rspec-expectations (3.8.2)
68
+ rspec (3.9.0)
69
+ rspec-core (~> 3.9.0)
70
+ rspec-expectations (~> 3.9.0)
71
+ rspec-mocks (~> 3.9.0)
72
+ rspec-core (3.9.0)
73
+ rspec-support (~> 3.9.0)
74
+ rspec-expectations (3.9.0)
71
75
  diff-lcs (>= 1.2.0, < 2.0)
72
- rspec-support (~> 3.8.0)
73
- rspec-mocks (3.8.0)
76
+ rspec-support (~> 3.9.0)
77
+ rspec-mocks (3.9.0)
74
78
  diff-lcs (>= 1.2.0, < 2.0)
75
- rspec-support (~> 3.8.0)
76
- rspec-support (3.8.0)
79
+ rspec-support (~> 3.9.0)
80
+ rspec-support (3.9.0)
77
81
  safe_yaml (1.0.5)
78
82
  sass (3.7.4)
79
83
  sass-listen (~> 4.0.0)
80
84
  sass-listen (4.0.0)
81
85
  rb-fsevent (~> 0.9, >= 0.9.4)
82
86
  rb-inotify (~> 0.9, >= 0.9.7)
83
- sinatra (2.0.5)
87
+ sinatra (2.0.7)
84
88
  mustermann (~> 1.0)
85
89
  rack (~> 2.0)
86
- rack-protection (= 2.0.5)
90
+ rack-protection (= 2.0.7)
87
91
  tilt (~> 2.0)
88
- sinatra-contrib (2.0.5)
92
+ sinatra-contrib (2.0.7)
89
93
  backports (>= 2.8.2)
90
94
  multi_json
91
95
  mustermann (~> 1.0)
92
- rack-protection (= 2.0.5)
93
- sinatra (= 2.0.5)
94
- tilt (>= 1.3, < 3)
96
+ rack-protection (= 2.0.7)
97
+ sinatra (= 2.0.7)
98
+ tilt (~> 2.0)
95
99
  thor (0.20.3)
96
100
  thread_safe (0.3.6)
97
- tilt (2.0.9)
101
+ tilt (2.0.10)
98
102
  timecop (0.9.1)
99
103
  tzinfo (1.2.5)
100
104
  thread_safe (~> 0.1)
101
- vcr (4.0.0)
102
- webmock (3.5.1)
105
+ vcr (5.0.0)
106
+ webmock (3.7.6)
103
107
  addressable (>= 2.3.6)
104
108
  crack (>= 0.3.2)
105
- hashdiff
109
+ hashdiff (>= 0.4.0, < 2.0.0)
110
+ zeitwerk (2.2.1)
106
111
 
107
112
  PLATFORMS
108
113
  ruby
@@ -110,6 +115,7 @@ PLATFORMS
110
115
  DEPENDENCIES
111
116
  almanack!
112
117
  bundler (~> 2.0)
118
+ bundler-audit
113
119
  nokogiri
114
120
  pry
115
121
  rack-test
@@ -120,4 +126,4 @@ DEPENDENCIES
120
126
  webmock
121
127
 
122
128
  BUNDLED WITH
123
- 2.0.1
129
+ 2.0.2
data/README.md CHANGED
@@ -2,12 +2,13 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/Aupajo/almanack.svg)](https://travis-ci.org/Aupajo/almanack)
4
4
  [![Gem Version](https://badge.fury.io/rb/almanack.svg)](http://badge.fury.io/rb/almanack)
5
+ [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Aupajo/almanack/tree/heroku-button)
5
6
 
6
7
  A calendar that combines events from different sources (such as Google Calendar, Meetup.com, and iCal feeds), and can be hosted for free on [Heroku](http://heroku.com).
7
8
 
8
9
  ![Sinatra GCal example](http://i.imgur.com/odgyR.png)
9
10
 
10
- See a demo running at [http://christchurch.events.geek.nz](http://christchurch.events.geek.nz)
11
+ See a demo running at [http://chch-events.herokuapp.com/](http://chch-events.herokuapp.com/)
11
12
 
12
13
  ## Features
13
14
 
@@ -21,6 +22,14 @@ See a demo running at [http://christchurch.events.geek.nz](http://christchurch.e
21
22
  * Rack-compatible (can be mounted inside a Rails app if needed)
22
23
  * Produces iCal feed for smartphone and desktop calendar apps to subscribe to
23
24
 
25
+ ## Simple setup
26
+
27
+ This option can host your calendar for free light use.
28
+
29
+ [Sign up for a free Heroku account](https://heroku.com) and click the following button:
30
+
31
+ [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Aupajo/almanack/tree/heroku-button)
32
+
24
33
  ## Video tutorial
25
34
 
26
35
  [![View on YouTube](http://i.imgur.com/4ifJAXD.jpg)](http://youtu.be/0tUcWHE0Zh0)
data/Rakefile CHANGED
@@ -1,9 +1,12 @@
1
1
  require "bundler/gem_tasks"
2
+ require "bundler/audit/task"
2
3
  require "rspec/core/rake_task"
3
4
 
5
+ Bundler::Audit::Task.new
6
+
4
7
  RSpec::Core::RakeTask.new(:spec)
5
8
 
6
- task :default => :spec
9
+ task :default => ['bundle:audit', :spec]
7
10
 
8
11
  task :checksum do
9
12
  require 'digest/sha2'
@@ -46,4 +46,5 @@ Gem::Specification.new do |spec|
46
46
  spec.add_development_dependency "vcr"
47
47
  spec.add_development_dependency "timecop"
48
48
  spec.add_development_dependency "nokogiri"
49
+ spec.add_development_dependency "bundler-audit"
49
50
  end
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "Almanack",
3
+ "description": "Combine iCal, Google Calendar, and Meetup.com events into a single calendar with a public website and calendar subscription feed.",
4
+ "repository": "https://github.com/Aupajo/almanack",
5
+ "keywords": ["calendar", "events", "meetup", "gcal" , "ical", "web", "feed", "rss"],
6
+ "buildpacks": [
7
+ { "url": "heroku/ruby" }
8
+ ],
9
+ "env": {
10
+ "CALENDAR_NAME": {
11
+ "description": "The name of your calendar.",
12
+ "value": "My Calendar",
13
+ "required": true
14
+ },
15
+ "TZ": {
16
+ "description": "Which time zone to display the calendar events in, such as `Pacific/Auckland`. See a full list in the “TZ database name” field at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
17
+ "value": "UTC"
18
+ },
19
+ "ICAL_FEEDS": {
20
+ "description": "An optional list of iCal feed URLs separated by spaces. For Google Calendars, look for the “address in iCal format” URLs in the calendar's settings.",
21
+ "required": false
22
+ },
23
+ "MEETUP_COM_GROUPS": {
24
+ "description": "An optional list of Meetup.com groups to subscribe to, separated by spaces. A group can be the full URL (e.g. `https://www.meetup.com/Christchurch-Ruby-Group/`) or the URL slug (e.g. `Christchurch-Ruby-Group`). Requires MEETUP_COM_API_KEYS also be set.",
25
+ "required": false
26
+ },
27
+ "MEETUP_COM_API_KEYS": {
28
+ "description": "If retrieving events from Meetup.com, you need to specify one or more API keys to use. You can find your API key at https://secure.meetup.com/meetup_api/key. If you have a lot of groups, use multiple API keys to avoid hitting API request limits separated by spaces.",
29
+ "required": false
30
+ },
31
+ "CACHE_DURATION_IN_SECONDS": {
32
+ "description": "How long to keep calendar events cached for. Set to `0` to always show an up-to-date calendar, but be wary of API request limits when using Meetup.com. Default is 15 minutes.",
33
+ "value": "900"
34
+ },
35
+ "DAYS_LOOKAHEAD": {
36
+ "description": "How many days of events to display on the calendar",
37
+ "value": "30",
38
+ "required": true
39
+ }
40
+ }
41
+ }
@@ -0,0 +1 @@
1
+ a387719ce45e5b0fc859110f0f73baf66e24b8b2c38f30d444448c57115ce6f8
@@ -0,0 +1 @@
1
+ dccd4fbe67f011c1272024f5a82f00b96b84766b7c48af41dc28c19857b053c8ef5ef72622aef194ef2ea78dfef3af956cf54398ea55ff4448d3691c5c6b06ad
@@ -2,6 +2,7 @@ module Almanack
2
2
  module EventSource
3
3
  class MeetupGroup
4
4
  def initialize(options = {})
5
+ warn "Meetup have disabled support for API keys. Read more at https://github.com/Aupajo/almanack/issues/36"
5
6
  @request_options = options
6
7
  @group_properties = {}
7
8
  end
@@ -108,11 +109,21 @@ module Almanack
108
109
  data = JSON.parse(response.body)
109
110
 
110
111
  if data['problem']
111
- raise MeetupAPIError, data['problem']
112
+ raise MeetupAPIError, error_message_from(data)
112
113
  end
113
114
 
114
115
  data
115
116
  end
117
+
118
+ def error_message_from(data)
119
+ message = [data['problem'], data['details']].compact.join(' - ')
120
+
121
+ if message.include?('not authorized')
122
+ message << ' ⚠️ See https://github.com/Aupajo/almanack/issues/36 for more details'
123
+ end
124
+
125
+ message
126
+ end
116
127
  end
117
128
  end
118
129
  end
@@ -10,4 +10,6 @@
10
10
  <% else %>
11
11
  <p><a href="/">Return home</a></p>
12
12
  <% end %>
13
+
14
+ <p>If you're the administrator, please check the logs for more details.</p>
13
15
  </div>
@@ -10,4 +10,6 @@
10
10
  <% else %>
11
11
  <p><a href="/">Return home</a></p>
12
12
  <% end %>
13
+
14
+ <p>If you're the administrator, please check the logs for more details.</p>
13
15
  </div>
@@ -1,6 +1,6 @@
1
1
  module Almanack
2
2
  CODENAME = "Garlick"
3
- VERSION = "1.1.3"
3
+ VERSION = "1.1.5"
4
4
  HOMEPAGE = "https://github.com/Aupajo/almanack"
5
5
  ISSUES = "https://github.com/Aupajo/almanack/issues"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: almanack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Nicholls
@@ -34,7 +34,7 @@ cert_chain:
34
34
  dZpUW6Gfv2VtOtiN0Q3PjLK+TRjHtqYBjbxa771Msax3xs40e2cSVU/dO+OY5NmR
35
35
  a61dVmZ1PIJiY+jyzJSb8ohHVx4=
36
36
  -----END CERTIFICATE-----
37
- date: 2019-06-15 00:00:00.000000000 Z
37
+ date: 2019-11-22 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: sinatra
@@ -302,6 +302,20 @@ dependencies:
302
302
  - - ">="
303
303
  - !ruby/object:Gem::Version
304
304
  version: '0'
305
+ - !ruby/object:Gem::Dependency
306
+ name: bundler-audit
307
+ requirement: !ruby/object:Gem::Requirement
308
+ requirements:
309
+ - - ">="
310
+ - !ruby/object:Gem::Version
311
+ version: '0'
312
+ type: :development
313
+ prerelease: false
314
+ version_requirements: !ruby/object:Gem::Requirement
315
+ requirements:
316
+ - - ">="
317
+ - !ruby/object:Gem::Version
318
+ version: '0'
305
319
  description:
306
320
  email:
307
321
  - aupajo@gmail.com
@@ -320,6 +334,7 @@ files:
320
334
  - README.md
321
335
  - Rakefile
322
336
  - almanack.gemspec
337
+ - app.json
323
338
  - bin/console
324
339
  - bin/setup
325
340
  - bin/test
@@ -328,6 +343,8 @@ files:
328
343
  - checksums/almanack-1.1.1.gem.sha512
329
344
  - checksums/almanack-1.1.2.gem.sha256
330
345
  - checksums/almanack-1.1.2.gem.sha512
346
+ - checksums/almanack-1.1.3.gem.sha256
347
+ - checksums/almanack-1.1.3.gem.sha512
331
348
  - checksums/almanack-1.1.3.rc1.gem.sha256
332
349
  - checksums/almanack-1.1.3.rc1.gem.sha512
333
350
  - example.ru
metadata.gz.sig CHANGED
Binary file