almanack 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.gitignore +12 -17
  4. data/.rspec +3 -0
  5. data/.travis.yml +2 -0
  6. data/CODE_OF_CONDUCT.md +74 -0
  7. data/Gemfile +1 -1
  8. data/Gemfile.lock +123 -0
  9. data/LICENSE.txt +17 -18
  10. data/README.md +22 -4
  11. data/Rakefile +16 -0
  12. data/almanack.gemspec +18 -8
  13. data/bin/console +14 -0
  14. data/bin/setup +8 -0
  15. data/bin/test +2 -0
  16. data/certs/aupajo.pem +25 -0
  17. data/{bin → exe}/almanack +0 -0
  18. data/lib/almanack/version.rb +1 -1
  19. data.tar.gz.sig +0 -0
  20. metadata +62 -59
  21. metadata.gz.sig +3 -0
  22. data/spec/almanack_spec.rb +0 -8
  23. data/spec/calendar_spec.rb +0 -71
  24. data/spec/configuration_spec.rb +0 -113
  25. data/spec/event_source/ical_feed_spec.rb +0 -40
  26. data/spec/event_source/meetup_group_spec.rb +0 -63
  27. data/spec/event_source/static_spec.rb +0 -41
  28. data/spec/event_spec.rb +0 -121
  29. data/spec/features/api_feature_spec.rb +0 -24
  30. data/spec/features/calendar_feature_spec.rb +0 -44
  31. data/spec/features/sass_features_spec.rb +0 -15
  32. data/spec/features/subscription_feature_spec.rb +0 -60
  33. data/spec/fixtures/responses/google_calendar.yml +0 -1896
  34. data/spec/fixtures/responses/meetup-without-location.yml +0 -11880
  35. data/spec/fixtures/responses/meetup.yml +0 -1437
  36. data/spec/fixtures/themes/sassy/stylesheets/imported.scss +0 -0
  37. data/spec/fixtures/themes/sassy/stylesheets/imports.scss +0 -1
  38. data/spec/representation/json_feed_spec.rb +0 -44
  39. data/spec/serialized_transformation_spec.rb +0 -45
  40. data/spec/spec_helper.rb +0 -21
  41. data/spec/support/event_matchers.rb +0 -54
  42. data/spec/support/server_support.rb +0 -10
  43. data/spec/support/time_comparison_matchers.rb +0 -14
@@ -1,44 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Viewing a calendar", :feature do
4
- before { Almanack.reset! }
5
-
6
- it "displays all upcoming events" do
7
- now = Time.now
8
-
9
- Almanack.config.add_events [
10
- { title: "Hogswatch", start_time: now },
11
- { title: "Soul Cake Tuesday", start_time: now + 10 * 24 * 60 * 60 },
12
- { title: "Eve of Small Gods", start_time: now + 30 * 24 * 60 * 60 },
13
- ]
14
-
15
- Timecop.freeze(now) do
16
- get "/"
17
- end
18
-
19
- expect(last_response).to have_event_on_page("Hogswatch")
20
- expect(last_response).to have_event_on_page("Soul Cake Tuesday")
21
- expect(last_response).to have_event_on_page("Eve of Small Gods")
22
- end
23
-
24
- it "displays events from an iCal feed" do
25
- Almanack.config.add_ical_feed "https://www.google.com/calendar/ical/61s2re9bfk01abmla4d17tojuo%40group.calendar.google.com/public/basic.ics"
26
-
27
- Timecop.freeze(2014, 4, 3) do
28
- VCR.use_cassette('google_calendar') do
29
- get "/"
30
- end
31
- end
32
-
33
- expect(last_response).to have_event_on_page("Ruby Meetup @catalyst - Tanks! Guns!")
34
- expect(last_response).to have_event_on_page("The Foundation")
35
- expect(last_response).to have_event_on_page("WikiHouse/NZ weekly meet-up")
36
- expect(last_response).to have_event_on_page("Christchurch Python Meetup")
37
- expect(last_response).to have_event_on_page("Coffee & Jam")
38
- end
39
-
40
- it "allows being embedded in an iframe" do
41
- get "/"
42
- expect(last_response.headers).to_not have_key("X-Frame-Options")
43
- end
44
- end
@@ -1,15 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Sass rendering", :feature do
4
- before { Almanack.reset! }
5
-
6
- it "can import sass" do
7
- allow(Almanack.config).to receive(:theme_root) { fixture_theme('sassy') }
8
- get "/stylesheets/imports.css"
9
- raise last_response.errors unless last_response.errors.empty?
10
- end
11
-
12
- def fixture_theme(name)
13
- Pathname(__dir__).parent.join('fixtures', 'themes', name)
14
- end
15
- end
@@ -1,60 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Consolidated iCal feed", :feature do
4
- let(:now) { Time.now }
5
- let(:parsed_feed) { RiCal.parse_string(Almanack.calendar.ical_feed) }
6
- let(:parsed_cal) { parsed_feed.first }
7
- let(:parsed_events) { parsed_cal.events }
8
-
9
- before do
10
- Timecop.freeze(now)
11
-
12
- Almanack.reset!
13
-
14
- Almanack.config.add_events [
15
- { title: "Basic", start_time: now },
16
- { title: "Almost a year away", start_time: now + 364 * 24 * 60 * 60 },
17
- { title: "Over a year away", start_time: now + 366 * 24 * 60 * 60 },
18
- {
19
- title: "Complex",
20
- start_time: now,
21
- end_time: now + 30 * 24 * 60 * 60,
22
- description: "Body",
23
- location: "CA"
24
- }
25
- ]
26
- end
27
-
28
- after { Timecop.return }
29
-
30
- it "should contain one calendar entity" do
31
- expect(parsed_feed.length).to eq(1)
32
- expect(parsed_feed.first).to be_an_instance_of(RiCal::Component::Calendar)
33
- end
34
-
35
- it "contains a year's worth of events" do
36
- expect(parsed_events.length).to eq(3)
37
- expect(parsed_events.map(&:summary)).to_not include("Over a year away")
38
- end
39
-
40
- it "contains all available event information" do
41
- complex_event = parsed_events.find { |e| e.summary == 'Complex' }
42
- expect(complex_event.dtstart).to eq_time(now)
43
- expect(complex_event.dtend).to eq_time(now + 30 * 24 * 60 * 60)
44
- expect(complex_event.description).to eq('Body')
45
- expect(complex_event.location).to eq('CA')
46
- end
47
-
48
- it "treats missing end dates as three hours from the start date" do
49
- three_hours_from_now = now + 3 * 60 * 60
50
- basic_event = parsed_events.find { |e| e.summary == 'Basic' }
51
- expect(basic_event.dtend).to eq_time(three_hours_from_now)
52
- end
53
-
54
- it "can be accessed from the server" do
55
- allow(Almanack.calendar).to receive(:ical_feed) { "feed" }
56
- get "/feed.ics"
57
- expect(last_response.body).to eq("feed")
58
- expect(last_response.headers["Content-Type"]).to include("text/calendar")
59
- end
60
- end