almanack 1.1.3 → 1.1.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
  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