jekyll-attendease 0.6.26g → 0.6.26j
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll/attendease_plugin/event_data_generator.rb +2 -1
- data/lib/jekyll/attendease_plugin/tags.rb +65 -0
- data/lib/jekyll/attendease_plugin/version.rb +1 -1
- data/lib/jekyll-attendease.rb +1 -0
- data/spec/lib/jekyll/attendease_plugin/tags_spec.rb +40 -0
- data/spec/spec_helper.rb +15 -7
- metadata +1 -2
- data/lib/jekyll/attendease_plugin/site_page_blocks_json.rb +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd03907bc1e4684082076948f5d797fac51191a8
|
4
|
+
data.tar.gz: 04d35d69866ef8e45284ea365d0147b087b82aa4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f068a309df08a10113ddf0e0dc826e5c53ad1cdefc9b0b92906e8234a99e34951d2f0273170073cbc9a2eb2f6a190ca88c4fcbb0e8063f06472797e1239ddd40
|
7
|
+
data.tar.gz: 35fb2f473b63a2afa85cb1ebfd3a51ce8a467a841aff7183345b6c13f00791e481920d2c3972ad32a6f6d107a339a786e67619db6956a3d08b01476046df6345
|
@@ -96,8 +96,9 @@ module Jekyll
|
|
96
96
|
site.data[File.basename(filename, '.*')] = data
|
97
97
|
|
98
98
|
if data.is_a?(Hash)
|
99
|
+
# DEPRECATED
|
99
100
|
if filename == 'site.json'
|
100
|
-
# Adding to site config so we can access these variables globally
|
101
|
+
# Adding to site config so we can access these variables globally without using a Liquid Tag so we can use if/else
|
101
102
|
site.config['attendease']['data'] = {}
|
102
103
|
|
103
104
|
data.keys.each do |tag|
|
@@ -142,5 +142,70 @@ module Jekyll
|
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
145
|
+
|
146
|
+
class BlockRendererTag < Liquid::Tag
|
147
|
+
def initialize(tag_name, url_override, tokens)
|
148
|
+
super
|
149
|
+
@url_override = url_override
|
150
|
+
end
|
151
|
+
|
152
|
+
def render(context)
|
153
|
+
config = context.registers[:site].config['attendease']
|
154
|
+
#data = context.registers[:site].data
|
155
|
+
env = config['environment']
|
156
|
+
|
157
|
+
if config['mode'] == 'organization'
|
158
|
+
script = <<_EOT
|
159
|
+
<script type="text/javascript">
|
160
|
+
(function(w) {
|
161
|
+
w.AttendeaseConstants = {
|
162
|
+
locale: "en",
|
163
|
+
orgApiEndpoint: "#{ config['api_host'] }api",
|
164
|
+
orgId: "#{ config['source_id'] }",
|
165
|
+
authApiEndpoint: "#{ config['auth_host'] }",
|
166
|
+
orgLocales: #{ config['available_portal_locales'] }
|
167
|
+
}
|
168
|
+
})(window)
|
169
|
+
</script>
|
170
|
+
|
171
|
+
_EOT
|
172
|
+
else
|
173
|
+
script = <<_EOT
|
174
|
+
<script type="text/javascript">
|
175
|
+
(function(w) {
|
176
|
+
w.AttendeaseConstants = {
|
177
|
+
locale: "#{ config['locale'] }",
|
178
|
+
eventApiEndpoint: "#{ config['api_host'] }api",
|
179
|
+
eventId: "#{ config['source_id'] }",
|
180
|
+
orgApiEndpoint: "#{ config['organization_url'] }api",
|
181
|
+
orgId: "#{ config['organization_id'] }",
|
182
|
+
authApiEndpoint: "#{ config['auth_host'] }"
|
183
|
+
}
|
184
|
+
})(window)
|
185
|
+
</script>
|
186
|
+
|
187
|
+
_EOT
|
188
|
+
end
|
189
|
+
|
190
|
+
if @url_override.match(/^(https:)?\/\/.+/)
|
191
|
+
url = @url_override
|
192
|
+
else
|
193
|
+
case env
|
194
|
+
when 'development'
|
195
|
+
url = '//dashboard.localhost.attendease.com/webpack_assets/blockrenderer.bundle.js'
|
196
|
+
when 'preview'
|
197
|
+
url = '//cdn.attendease.com/blockrenderer/ci-latest.js'
|
198
|
+
else
|
199
|
+
url = '//dashboard.attendease.com/webpack_assets/blockrenderer.bundle.js'
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
script << <<_EOT
|
204
|
+
<script type="text/javascript" src="#{ url }"></script>
|
205
|
+
_EOT
|
206
|
+
|
207
|
+
script
|
208
|
+
end
|
209
|
+
end
|
145
210
|
end
|
146
211
|
end
|
data/lib/jekyll-attendease.rb
CHANGED
@@ -15,5 +15,6 @@ Liquid::Template.register_tag('attendease_auth_action', Jekyll::AttendeaseP
|
|
15
15
|
Liquid::Template.register_tag('attendease_t', Jekyll::AttendeasePlugin::TranslateTag)
|
16
16
|
Liquid::Template.register_tag('attendease_nav', Jekyll::AttendeasePlugin::NavigationTag)
|
17
17
|
Liquid::Template.register_tag('attendease_portal_nav', Jekyll::AttendeasePlugin::PortalNavigationTag)
|
18
|
+
Liquid::Template.register_tag('attendease_block_renderer', Jekyll::AttendeasePlugin::BlockRendererTag)
|
18
19
|
|
19
20
|
Liquid::Template.register_filter(Jekyll::AttendeasePlugin::Filters)
|
@@ -5,6 +5,8 @@ RSpec.describe "Jekyll Attendease tags" do
|
|
5
5
|
let(:cms_site) { build_site({ 'attendease' => { 'jekyll33' => true } }) }
|
6
6
|
let(:context) { { :registers => { :site => site, :page => {} } } }
|
7
7
|
let(:cms_context) { { :registers => { :site => cms_site, :page => {} } } }
|
8
|
+
let(:org_site) { build_org_site }
|
9
|
+
let(:org_context) { { :registers => { :site => org_site, :page => {} } } }
|
8
10
|
|
9
11
|
def render(content)
|
10
12
|
::Liquid::Template.parse(content).render({}, context)
|
@@ -14,6 +16,10 @@ RSpec.describe "Jekyll Attendease tags" do
|
|
14
16
|
::Liquid::Template.parse(content).render({}, cms_context)
|
15
17
|
end
|
16
18
|
|
19
|
+
def org_render(content)
|
20
|
+
::Liquid::Template.parse(content).render({}, org_context)
|
21
|
+
end
|
22
|
+
|
17
23
|
context "{% attendease_auth_script %}" do
|
18
24
|
subject { render("{% attendease_auth_script %}") }
|
19
25
|
it { is_expected.to include "assets/attendease_event/auth.js" }
|
@@ -74,6 +80,40 @@ RSpec.describe "Jekyll Attendease tags" do
|
|
74
80
|
# hidden page
|
75
81
|
it { is_expected.to_not match(/<li><a href="\/test\/"/) }
|
76
82
|
end
|
83
|
+
|
84
|
+
context "{% attendease_block_renderer %} for event" do
|
85
|
+
subject { render("{% attendease_block_renderer %}") }
|
86
|
+
|
87
|
+
it { is_expected.to match(/window.AttendeaseConstants.locale = "en";/) }
|
88
|
+
it { is_expected.to match(/window.AttendeaseConstants.eventApiEndpoint = "https:\/\/foobar\/api";/) }
|
89
|
+
it { is_expected.to match(/window.AttendeaseConstants.eventId = "foobar";/) }
|
90
|
+
it { is_expected.to match(/window.AttendeaseConstants.orgApiEndpoint = "https:\/\/foobar\.org\/api";/) }
|
91
|
+
it { is_expected.to match(/window.AttendeaseConstants.orgId = "batbaz";/) }
|
92
|
+
it { is_expected.to match(/window.AttendeaseConstants.authApiEndpoint = "https:\/\/foobar.auth\/";/) }
|
93
|
+
it { is_expected.to match(/dashboard.attendease.com\/webpack_assets\/blockrenderer.bundle.js/) }
|
94
|
+
it { is_expected.to_not match(/window.AttendeaseConstants.orgLocales/) }
|
95
|
+
end
|
96
|
+
|
97
|
+
context "{% attendease_block_renderer %} with custom bundle URL" do
|
98
|
+
subject { render("{% attendease_block_renderer https://foobar.cdn/blockrenderer.js %}") }
|
99
|
+
|
100
|
+
it { is_expected.to match(/https:\/\/foobar.cdn\/blockrenderer.js/) }
|
101
|
+
end
|
102
|
+
|
103
|
+
context "{% attendease_block_renderer %} for an org portal" do
|
104
|
+
subject { org_render("{% attendease_block_renderer %}") }
|
105
|
+
|
106
|
+
it { is_expected.to match(/window.AttendeaseConstants.locale = "en";/) }
|
107
|
+
it { is_expected.to match(/window.AttendeaseConstants.orgApiEndpoint = "https:\/\/foobar\/api";/) }
|
108
|
+
it { is_expected.to match(/window.AttendeaseConstants.orgId = "foobar";/) }
|
109
|
+
it { is_expected.to match(/window.AttendeaseConstants.authApiEndpoint = "https:\/\/foobar.auth\/";/) }
|
110
|
+
it { is_expected.to match(/dashboard.attendease.com\/webpack_assets\/blockrenderer.bundle.js/) }
|
111
|
+
it { is_expected.to match(/window.AttendeaseConstants.orgLocales = \["en", "fr", "it", "es", "de"\];/) }
|
112
|
+
|
113
|
+
it { is_expected.to_not match(/window.AttendeaseConstants.eventApiEndpoint/) }
|
114
|
+
it { is_expected.to_not match(/window.AttendeaseConstants.eventId/) }
|
115
|
+
end
|
116
|
+
|
77
117
|
end
|
78
118
|
|
79
119
|
def schedule_widget_data
|
data/spec/spec_helper.rb
CHANGED
@@ -76,13 +76,21 @@ RSpec.configure do |config|
|
|
76
76
|
'source' => fixtures_path.to_s,
|
77
77
|
'destination' => dest.to_s,
|
78
78
|
'attendease' => {
|
79
|
-
'api_host'
|
80
|
-
'has_sessions'
|
81
|
-
'has_presenters'
|
82
|
-
'has_sponsors'
|
83
|
-
'has_rooms'
|
84
|
-
'has_filters'
|
85
|
-
'has_venues'
|
79
|
+
'api_host' => 'https://foobar/',
|
80
|
+
'has_sessions' => true,
|
81
|
+
'has_presenters' => true,
|
82
|
+
'has_sponsors' => true,
|
83
|
+
'has_rooms' => true,
|
84
|
+
'has_filters' => true,
|
85
|
+
'has_venues' => true,
|
86
|
+
'environment' => 'test',
|
87
|
+
'locale' => 'en',
|
88
|
+
'source_id' => 'foobar',
|
89
|
+
'auth_host' => 'https://foobar.auth/',
|
90
|
+
'organization_url' => 'https://foobar.org/',
|
91
|
+
'organization_id' => 'batbaz',
|
92
|
+
'organization_name' => 'Foo Bar Widgets',
|
93
|
+
'available_portal_locales' => %w{ en fr it es de }
|
86
94
|
}
|
87
95
|
}), overrides)
|
88
96
|
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.26j
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Wood
|
@@ -183,7 +183,6 @@ files:
|
|
183
183
|
- lib/jekyll/attendease_plugin/schedule_session_page.rb
|
184
184
|
- lib/jekyll/attendease_plugin/schedule_sessions_page.rb
|
185
185
|
- lib/jekyll/attendease_plugin/site_page.rb
|
186
|
-
- lib/jekyll/attendease_plugin/site_page_blocks_json.rb
|
187
186
|
- lib/jekyll/attendease_plugin/site_pages_generator.rb
|
188
187
|
- lib/jekyll/attendease_plugin/sponsor_generator.rb
|
189
188
|
- lib/jekyll/attendease_plugin/sponsors_index_page.rb
|
@@ -1,42 +0,0 @@
|
|
1
|
-
module Jekyll
|
2
|
-
module AttendeasePlugin
|
3
|
-
class SitePageBlocksJson < StaticFile
|
4
|
-
def initialize(site, base, page)
|
5
|
-
@site = site
|
6
|
-
@base = base
|
7
|
-
@dir = page['slug']
|
8
|
-
@name = 'index.json'
|
9
|
-
|
10
|
-
self.process(@name)
|
11
|
-
|
12
|
-
#require 'pry'
|
13
|
-
#binding.pry
|
14
|
-
#self.read_yaml(File.join(base, '_attendease', 'templates', 'pages'), 'default.html')
|
15
|
-
self.read_yaml(File.join(base, '_layouts'), "#{page['layout']}.html")
|
16
|
-
|
17
|
-
self.data['title'] = page['title']
|
18
|
-
self.data['layout'] = page['layout']
|
19
|
-
|
20
|
-
zones = {}
|
21
|
-
|
22
|
-
# create zone buckets
|
23
|
-
page['block_instances'].each do |i|
|
24
|
-
zones[i['zone']] = [] if zones[i['zone']].nil?
|
25
|
-
zones[i['zone']] << i
|
26
|
-
end
|
27
|
-
|
28
|
-
# sort each bucket by widget weight
|
29
|
-
zones.each do |k, zone|
|
30
|
-
zone.sort! { |x, y| x['weight'] <=> y['weight'] }
|
31
|
-
self.data[k] = ''
|
32
|
-
zone.each do |i|
|
33
|
-
self.data[k] << i['rendered_html']
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
self.data['site_page'] = page
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|