jekyll-attendease 0.6.25k → 0.6.26a
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/lib/jekyll/attendease_plugin.rb +17 -0
- data/lib/jekyll/attendease_plugin/config_mixin.rb +17 -0
- data/lib/jekyll/attendease_plugin/event_data_generator.rb +101 -98
- data/lib/jekyll/attendease_plugin/organization_data_generator.rb +70 -0
- data/lib/jekyll/attendease_plugin/schedule_generator.rb +3 -1
- data/lib/jekyll/attendease_plugin/site_page_blocks_json.rb +42 -0
- data/lib/jekyll/attendease_plugin/site_pages_generator.rb +1 -1
- data/lib/jekyll/attendease_plugin/sponsor_generator.rb +4 -2
- data/lib/jekyll/attendease_plugin/version.rb +1 -1
- data/spec/lib/jekyll/attendease_plugin/event_data_generator_spec.rb +63 -43
- data/spec/lib/jekyll/attendease_plugin/event_layout_generator_spec.rb +3 -2
- data/spec/lib/jekyll/attendease_plugin/event_template_generator_spec.rb +23 -6
- data/spec/lib/jekyll/attendease_plugin/filters_spec.rb +5 -2
- data/spec/lib/jekyll/attendease_plugin/organization_data_generator_spec.rb +21 -0
- data/spec/lib/jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator_spec.rb +8 -8
- data/spec/lib/jekyll/attendease_plugin/schedule_generator_spec.rb +179 -142
- data/spec/lib/jekyll/attendease_plugin/site_page_spec.rb +3 -4
- data/spec/lib/jekyll/attendease_plugin/site_pages_generator_spec.rb +7 -10
- data/spec/lib/jekyll/attendease_plugin/sponsor_generator_spec.rb +13 -4
- data/spec/lib/jekyll/attendease_plugin/tags_spec.rb +3 -2
- data/spec/spec_helper.rb +36 -28
- metadata +7 -2
@@ -1,11 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
RSpec.describe Jekyll::AttendeasePlugin::SitePage do
|
4
|
-
|
5
|
-
|
6
|
-
end
|
4
|
+
let(:site) { build_site }
|
5
|
+
let(:site_page) { find_page(site, described_class, Proc.new { |p| p.data['site_page']['slug'] == 'test' }) }
|
7
6
|
|
8
7
|
pending 'fills the page zones with the rendered html' do
|
9
|
-
expect(
|
8
|
+
expect(site_page.data['dropzone1']).to eq('<h1>Hello world</h1>')
|
10
9
|
end
|
11
10
|
end
|
@@ -1,24 +1,21 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
RSpec.describe Jekyll::AttendeasePlugin::SitePagesGenerator do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
end
|
4
|
+
let (:site) { build_site }
|
5
|
+
let (:site_pages_generator) { find_generator(site, described_class) }
|
6
|
+
let(:index_file) { 'index.html' }
|
8
7
|
|
9
8
|
it 'creates a page using the provided slug' do
|
10
|
-
|
11
|
-
|
12
|
-
slug = @site.data['pages'].last['slug']
|
13
|
-
file = File.join(@site.config['destination'], slug, 'index.html')
|
9
|
+
slug = site.data['pages'].last['slug']
|
10
|
+
file = File.join(site.config['destination'], slug, 'index.html')
|
14
11
|
expect(File.exists?(file)).to eq(true)
|
15
12
|
expect(File.file?(file)).to eq(true)
|
16
13
|
expect(File.read(file)).to include '<title>Test Page</title>'
|
17
14
|
end
|
18
15
|
|
19
16
|
it 'creates a block instance json file using the provided slug' do
|
20
|
-
slug =
|
21
|
-
file = File.join(
|
17
|
+
slug = site.data['pages'].last['slug']
|
18
|
+
file = File.join(site.config['destination'], slug, 'index.json')
|
22
19
|
expect(File.exists?(file)).to eq(true)
|
23
20
|
expect(File.file?(file)).to eq(true)
|
24
21
|
end
|
@@ -1,12 +1,21 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
RSpec.describe Jekyll::AttendeasePlugin::SponsorGenerator do
|
4
|
+
context 'event site' do
|
5
|
+
let (:site) { build_site }
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
+
it 'creates the sponsor listing page' do
|
8
|
+
expect(File.exists?(File.join(site.config['destination'], 'sponsors', 'index.html'))).to eq(true)
|
9
|
+
expect(File.read(File.join(site.config['destination'], 'sponsors', 'index.html'))).to include "<h1>Sponsors</h1>"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'organization site' do
|
14
|
+
let (:org_site) { build_org_site }
|
7
15
|
|
8
|
-
|
9
|
-
|
16
|
+
it 'does not create the sponsor listing page' do
|
17
|
+
expect(File.exists?(File.join(org_site.config['destination'], 'sponsors', 'index.html'))).to eq(false)
|
18
|
+
end
|
10
19
|
end
|
11
20
|
|
12
21
|
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
RSpec.describe "Jekyll Attendease tags" do
|
4
|
-
let(:
|
4
|
+
let(:site) { build_site }
|
5
|
+
let(:context) { { :registers => { :site => site, :page => {} } } }
|
5
6
|
|
6
7
|
def render(content)
|
7
8
|
::Liquid::Template.parse(content).render({}, context)
|
@@ -20,7 +21,7 @@ RSpec.describe "Jekyll Attendease tags" do
|
|
20
21
|
context "{% attendease_locales_script %}" do
|
21
22
|
subject { render("{% attendease_locales_script %}") }
|
22
23
|
it { is_expected.to include "/api/lingo.json" }
|
23
|
-
it { is_expected.to include
|
24
|
+
it { is_expected.to include site.config['attendease']['api_host'] }
|
24
25
|
end
|
25
26
|
|
26
27
|
context "{% attendease_t event.lingo.sponsors %}" do
|
data/spec/spec_helper.rb
CHANGED
@@ -21,11 +21,22 @@ RSpec.configure do |config|
|
|
21
21
|
end
|
22
22
|
|
23
23
|
@template_root = File.expand_path(File.join(File.dirname(__FILE__), '..', 'templates'))
|
24
|
-
@dest = fixtures_path.join('_site')
|
25
|
-
|
26
24
|
FileUtils.touch Dir.glob(File.join(File.dirname(__FILE__), 'fixtures', '_attendease', 'data', '*.*'))
|
27
|
-
|
28
|
-
|
25
|
+
#let!(:site) { build_site }
|
26
|
+
#let!(:org_site) { build_site({ attendease: { mode: 'organization' } }) }
|
27
|
+
#let!(:page) { Jekyll::Page.new(@site, File.join(File.dirname(__FILE__), 'fixtures'), '', 'page.html') }
|
28
|
+
end
|
29
|
+
|
30
|
+
def site
|
31
|
+
@site
|
32
|
+
end
|
33
|
+
|
34
|
+
def dest
|
35
|
+
@dest ||= fixtures_path.join('_site')
|
36
|
+
end
|
37
|
+
|
38
|
+
def page
|
39
|
+
Jekyll::Page.new(site, File.join(File.dirname(__FILE__), 'fixtures'), '', 'page.html')
|
29
40
|
end
|
30
41
|
|
31
42
|
def test_dir(*subdirs)
|
@@ -44,12 +55,12 @@ RSpec.configure do |config|
|
|
44
55
|
Jekyll::Utils.deep_merge_hashes(base_hash, overrides)
|
45
56
|
end
|
46
57
|
|
47
|
-
def find_generator(generator_class)
|
48
|
-
|
58
|
+
def find_generator(site, generator_class)
|
59
|
+
site.generators.select { |m| m.class == generator_class }.first
|
49
60
|
end
|
50
61
|
|
51
|
-
def find_page(page_class, lambda_matcher = false)
|
52
|
-
|
62
|
+
def find_page(site, page_class, lambda_matcher = false)
|
63
|
+
site.pages.select do |m|
|
53
64
|
if m.class == page_class
|
54
65
|
match = true
|
55
66
|
if lambda_matcher
|
@@ -63,19 +74,9 @@ RSpec.configure do |config|
|
|
63
74
|
def site_configuration(overrides = {})
|
64
75
|
Jekyll::Utils.deep_merge_hashes(build_configs({
|
65
76
|
'source' => fixtures_path.to_s,
|
66
|
-
'destination' =>
|
77
|
+
'destination' => dest.to_s,
|
67
78
|
'attendease' => {
|
68
|
-
'api_host' => '
|
69
|
-
'test_mode' => false,
|
70
|
-
'locale' => 'en',
|
71
|
-
'schedule_path_name' => 'schedule',
|
72
|
-
'presenters_path_name' => 'presenters',
|
73
|
-
'sponsors_path_name' => 'sponsors',
|
74
|
-
'venue_path_name' => 'venue',
|
75
|
-
'venues_path_name' => 'venues',
|
76
|
-
'base_layout' => 'layout',
|
77
|
-
'generate_schedule_pages' => true,
|
78
|
-
'generate_sponsor_pages' => true,
|
79
|
+
'api_host' => 'https://foobar/',
|
79
80
|
'has_sessions' => true,
|
80
81
|
'has_presenters' => true,
|
81
82
|
'has_sponsors' => true,
|
@@ -87,19 +88,26 @@ RSpec.configure do |config|
|
|
87
88
|
end
|
88
89
|
|
89
90
|
def build_site(config = {})
|
90
|
-
|
91
|
-
site.
|
92
|
-
site
|
91
|
+
#dest.rmtree if dest.exist?
|
92
|
+
@site = Jekyll::Site.new(site_configuration(config))
|
93
|
+
@site.process
|
94
|
+
@site
|
93
95
|
end
|
94
96
|
|
95
|
-
|
96
|
-
|
97
|
+
def build_org_site
|
98
|
+
build_site({ 'attendease' => { 'mode' => 'organization', 'jekyll33' => true } })
|
99
|
+
end
|
100
|
+
|
101
|
+
config.after(:each) do
|
102
|
+
dest.rmtree if dest.exist?
|
97
103
|
fixtures_path.join('_attendease', 'templates').rmtree if File.exists?(fixtures_path.join('_attendease', 'templates'))
|
98
104
|
fixtures_path.join('attendease_layouts').rmtree if File.exists?(fixtures_path.join('attendease_layouts'))
|
99
|
-
|
100
|
-
|
105
|
+
unless @site.nil?
|
106
|
+
Dir.glob(File.join(@site.source, '**', 'index.json')).map do |i|
|
107
|
+
puts "Removing #{Pathname.new(i).parent}"
|
101
108
|
|
102
|
-
|
109
|
+
FileUtils.rm_r Pathname.new(i).parent
|
110
|
+
end
|
103
111
|
end
|
104
112
|
end
|
105
113
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-attendease
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.26a
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Wood
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2017-
|
14
|
+
date: 2017-04-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|
@@ -161,6 +161,7 @@ extra_rdoc_files: []
|
|
161
161
|
files:
|
162
162
|
- lib/jekyll-attendease.rb
|
163
163
|
- lib/jekyll/attendease_plugin.rb
|
164
|
+
- lib/jekyll/attendease_plugin/config_mixin.rb
|
164
165
|
- lib/jekyll/attendease_plugin/event_data_generator.rb
|
165
166
|
- lib/jekyll/attendease_plugin/event_layout_generator.rb
|
166
167
|
- lib/jekyll/attendease_plugin/event_layout_page.rb
|
@@ -169,6 +170,7 @@ files:
|
|
169
170
|
- lib/jekyll/attendease_plugin/helpers.rb
|
170
171
|
- lib/jekyll/attendease_plugin/home_page.rb
|
171
172
|
- lib/jekyll/attendease_plugin/home_page_generator.rb
|
173
|
+
- lib/jekyll/attendease_plugin/organization_data_generator.rb
|
172
174
|
- lib/jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator.rb
|
173
175
|
- lib/jekyll/attendease_plugin/presenter_page.rb
|
174
176
|
- lib/jekyll/attendease_plugin/presenters_index_page.rb
|
@@ -180,6 +182,7 @@ files:
|
|
180
182
|
- lib/jekyll/attendease_plugin/schedule_session_page.rb
|
181
183
|
- lib/jekyll/attendease_plugin/schedule_sessions_page.rb
|
182
184
|
- lib/jekyll/attendease_plugin/site_page.rb
|
185
|
+
- lib/jekyll/attendease_plugin/site_page_blocks_json.rb
|
183
186
|
- lib/jekyll/attendease_plugin/site_pages_generator.rb
|
184
187
|
- lib/jekyll/attendease_plugin/sponsor_generator.rb
|
185
188
|
- lib/jekyll/attendease_plugin/sponsors_index_page.rb
|
@@ -192,6 +195,7 @@ files:
|
|
192
195
|
- spec/lib/jekyll/attendease_plugin/event_template_generator_spec.rb
|
193
196
|
- spec/lib/jekyll/attendease_plugin/filters_spec.rb
|
194
197
|
- spec/lib/jekyll/attendease_plugin/helpers_spec.rb
|
198
|
+
- spec/lib/jekyll/attendease_plugin/organization_data_generator_spec.rb
|
195
199
|
- spec/lib/jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator_spec.rb
|
196
200
|
- spec/lib/jekyll/attendease_plugin/schedule_generator_spec.rb
|
197
201
|
- spec/lib/jekyll/attendease_plugin/site_page_spec.rb
|
@@ -244,6 +248,7 @@ test_files:
|
|
244
248
|
- spec/lib/jekyll/attendease_plugin/event_template_generator_spec.rb
|
245
249
|
- spec/lib/jekyll/attendease_plugin/filters_spec.rb
|
246
250
|
- spec/lib/jekyll/attendease_plugin/helpers_spec.rb
|
251
|
+
- spec/lib/jekyll/attendease_plugin/organization_data_generator_spec.rb
|
247
252
|
- spec/lib/jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator_spec.rb
|
248
253
|
- spec/lib/jekyll/attendease_plugin/schedule_generator_spec.rb
|
249
254
|
- spec/lib/jekyll/attendease_plugin/site_page_spec.rb
|