jekyll-attendease 0.6.40.1 → 0.6.43a

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
- SHA256:
3
- metadata.gz: db0c159b0fa699299f4e97aff0d2a0cd31fc9c808eebec74a28280db69b62034
4
- data.tar.gz: 9aa91183afe29fc8213d1948c74e9adc4bbb8a6fb8ece3c3dd481145924c1923
2
+ SHA1:
3
+ metadata.gz: 030303bddc685fa1a75c1e9a42326167be5775e1
4
+ data.tar.gz: bb95231b170b8c7eea6210bdff37838b942cda02
5
5
  SHA512:
6
- metadata.gz: 74855390ef3dcdabea4d2b7a01ac62e90ea0a4df6f9f7e023b8f2cd971a03b6a6e86c361d0908f30dcf84665ad91f7fee5e1fc55e5a321292001b07244008bef
7
- data.tar.gz: 5988b76b138d58e8be1c60a957078597fdf55ed07118b2afdb73102f82f9c774bbd23575541183927839775f7e99c34ef81dc636c891c50287cefd3b82679797
6
+ metadata.gz: bb8cb3dd54a8927805b14500e371416309fca935d1db5546a70b7e0c81387a13b333ad8da41f4e9389579d42b3dff94cccf97d95391d03cf80815c4355aac7c7
7
+ data.tar.gz: dedb337e660d2eea86cadf853d418bd659f73183f3132f8322e4da5d35b2ac97998b602a1798db83cd405681006e10395f76e920c4a0a3e1f1885efa1711a325
@@ -16,5 +16,10 @@ Liquid::Template.register_tag('attendease_t', Jekyll::AttendeaseP
16
16
  Liquid::Template.register_tag('attendease_nav', Jekyll::AttendeasePlugin::NavigationTag)
17
17
  Liquid::Template.register_tag('attendease_portal_nav', Jekyll::AttendeasePlugin::PortalNavigationTag)
18
18
  Liquid::Template.register_tag('attendease_block_renderer', Jekyll::AttendeasePlugin::BlockRendererTag)
19
+ Liquid::Template.register_tag('attendease_analytics_gtm_head', Jekyll::AttendeasePlugin::AnalyticsGoogleTagManagerHeadTag)
20
+ Liquid::Template.register_tag('attendease_analytics_gtm_body', Jekyll::AttendeasePlugin::AnalyticsGoogleTagManagerBodyTag)
21
+ Liquid::Template.register_tag('attendease_analytics_ga_gtag', Jekyll::AttendeasePlugin::AnalyticsGoogleAnalyticsGtagTag)
22
+ Liquid::Template.register_tag('attendease_analytics_facebook', Jekyll::AttendeasePlugin::AnalyticsFacebookPixelTag)
23
+ Liquid::Template.register_tag('attendease_analytics_linkedin', Jekyll::AttendeasePlugin::AnalyticsLinkedInTag)
19
24
 
20
25
  Liquid::Template.register_filter(Jekyll::AttendeasePlugin::Filters)
@@ -151,13 +151,14 @@ module Jekyll
151
151
 
152
152
  def render(context)
153
153
  config = context.registers[:site].config['attendease']
154
- siteSettings = context.registers[:site].data['site_settings'].clone
155
- siteSettings.delete_if {|key, value| ['analytics', 'meta', 'general'].include? key }
154
+ site_settings = context.registers[:site].data['site_settings'].clone
155
+ analytics = site_settings.delete 'analytics'
156
+ site_settings.delete_if {|key, value| ['analytics', 'meta', 'general'].include? key }
156
157
 
157
- organizationSiteSettings = {}
158
+ organization_site_settings = {}
158
159
  if context.registers[:site].data['organization_site_settings']
159
- organizationSiteSettings = context.registers[:site].data['organization_site_settings'].clone
160
- organizationSiteSettings.delete_if {|key, value| ['analytics', 'meta', 'general'].include? key }
160
+ organization_site_settings = context.registers[:site].data['organization_site_settings'].clone
161
+ organization_site_settings.delete_if {|key, value| ['analytics', 'meta', 'general'].include? key }
161
162
  end
162
163
 
163
164
  parent_pages_are_clickable = config['parent_pages_are_clickable']
@@ -205,49 +206,49 @@ module Jekyll
205
206
  # related code in the platform is backwards-compatible.
206
207
 
207
208
  if config['mode'] == 'organization'
208
- script = <<_EOT
209
- <script type="text/javascript">
210
- (function(w) {
211
- w.AttendeaseConstants = {
212
- locale: "en",
213
- orgURL: "#{ config['api_host'] }",
214
- orgId: "#{ config['source_id'] }",
215
- privateSite: #{ config['private_site'] },
216
- authApiEndpoint: "#{ config['auth_host'] }api",
217
- orgLocales: #{ config['available_portal_locales'] },
218
- features: #{ config['features'].to_json },
219
- pages: #{ pages.to_json },
220
- settings: { parentPagesAreClickable: #{!!parent_pages_are_clickable} },
221
- siteSettings: #{ siteSettings.to_json }
222
- }
223
- })(window)
224
- </script>
225
-
226
- _EOT
209
+ constants = {
210
+ 'locale' => 'en',
211
+ 'siteName' => config['organization_name'],
212
+ 'orgURL' => config['api_host'],
213
+ 'orgId' => config['source_id'],
214
+ 'privateSite' => config['private_site'],
215
+ 'authApiEndpoint' => "#{config['auth_host']}api",
216
+ 'orgLocales' => config['available_portal_locales'],
217
+ 'features' => config['features'],
218
+ 'pages' => pages,
219
+ 'settings' => { parentPagesAreClickable: !!parent_pages_are_clickable },
220
+ 'siteSettings' => site_settings,
221
+ 'analytics' => analytics
222
+ }
227
223
  else
228
- script = <<_EOT
224
+ constants = {
225
+ 'locale' => config['locale'],
226
+ 'siteName' => config['data']['event_name'],
227
+ 'eventApiEndpoint' => "#{config['api_host']}api",
228
+ 'eventId' => config['source_id'],
229
+ 'orgURL' => config['organization_url'],
230
+ 'orgId' => config['organization_id'],
231
+ 'privateSite' => config['private_site'],
232
+ 'authApiEndpoint' => "#{config['auth_host']}api",
233
+ 'features' => config['features'],
234
+ 'pages' => pages,
235
+ 'portalPages' => portal_pages,
236
+ 'settings' => { parentPagesAreClickable: !!parent_pages_are_clickable },
237
+ 'siteSettings' => site_settings,
238
+ 'organizationSiteSettings' => organization_site_settings,
239
+ 'analytics' => analytics
240
+ }
241
+ end
242
+ script = <<_EOT
229
243
  <script type="text/javascript">
230
244
  (function(w) {
231
245
  w.AttendeaseConstants = {
232
- locale: "#{ config['locale'] }",
233
- eventApiEndpoint: "#{ config['api_host'] }api",
234
- eventId: "#{ config['source_id'] }",
235
- orgURL: "#{ config['organization_url'] }",
236
- orgId: "#{ config['organization_id'] }",
237
- privateSite: #{ config['private_site'] },
238
- authApiEndpoint: "#{ config['auth_host'] }api",
239
- features: #{ config['features'].to_json },
240
- pages: #{ pages.to_json },
241
- portalPages: #{ portal_pages.to_json },
242
- settings: { parentPagesAreClickable: #{!!parent_pages_are_clickable} },
243
- siteSettings: #{ siteSettings.to_json },
244
- organizationSiteSettings: #{ organizationSiteSettings.to_json }
246
+ #{ constants.map{ |k, v| " #{k}: #{v.to_json}," }.join("\n") }
245
247
  }
246
248
  })(window)
247
249
  </script>
248
250
 
249
251
  _EOT
250
- end
251
252
 
252
253
  if @url_override.match(/^(https:)?\/\/.+/)
253
254
  url = @url_override
@@ -271,5 +272,124 @@ _EOT
271
272
  script
272
273
  end
273
274
  end
275
+
276
+ class AnalyticsGoogleTagManagerHeadTag < Liquid::Tag
277
+ def render(context)
278
+ require 'pry'
279
+ site_settings = context.registers[:site].data['site_settings'].clone
280
+ analytics = site_settings['analytics']
281
+
282
+
283
+ return '' if analytics.nil? || !analytics['googleTagManagerId']
284
+ script = <<_EOT
285
+ <script>
286
+ window.dataLayer = [];
287
+ </script>
288
+ <!-- Google Tag Manager -->
289
+ <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
290
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
291
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
292
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
293
+ })(window,document,'script','dataLayer','#{analytics['googleTagManagerId']}');</script>
294
+ <!-- End Google Tag Manager -->
295
+ _EOT
296
+ script
297
+ end
298
+ end
299
+
300
+ class AnalyticsGoogleTagManagerBodyTag < Liquid::Tag
301
+ def render(context)
302
+ site_settings = context.registers[:site].data['site_settings'].clone
303
+ analytics = site_settings['analytics']
304
+
305
+ return '' if analytics.nil? || !analytics['googleTagManagerId']
306
+ script = <<_EOT
307
+ <!-- Google Tag Manager (noscript) -->
308
+ <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=#{analytics['googleTagManagerId']}"
309
+ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
310
+ <!-- End Google Tag Manager (noscript) -->
311
+ _EOT
312
+ script
313
+ end
314
+ end
315
+
316
+ class AnalyticsGoogleAnalyticsGtagTag < Liquid::Tag
317
+ def render(context)
318
+ site_settings = context.registers[:site].data['site_settings'].clone
319
+ analytics = site_settings['analytics']
320
+
321
+ return '' if analytics.nil? || !analytics['googleAnalyticsTrackingId']
322
+
323
+ adwordsId = analytics['googleAnalyticsAdwordsId']
324
+ script = <<_EOT
325
+ <!-- Global Site Tag (gtag.js) - Google Analytics -->
326
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.data.site_settings.analytics.googleAnalyticsTrackingId }}"></script>
327
+ <script>
328
+ window.dataLayer = window.dataLayer || [];
329
+ function gtag(){dataLayer.push(arguments);}
330
+ gtag('js', new Date());
331
+
332
+ gtag('config', '#{analytics['googleAnalyticsTrackingId']}');
333
+ #{ adwordsId ? "gtag('config', '#{adwordsId}');" : ''}
334
+ </script>
335
+ _EOT
336
+ script
337
+ end
338
+ end
339
+
340
+ class AnalyticsLinkedInTag < Liquid::Tag
341
+ def render(context)
342
+ site_settings = context.registers[:site].data['site_settings'].clone
343
+ analytics = site_settings['analytics']
344
+
345
+ return '' if analytics.nil? || !analytics['linkedinInsightsId']
346
+ script = <<_EOT
347
+ <script type="text/javascript">
348
+ _linkedin_partner_id = "#{analytics['linkedinInsightsId']}";
349
+ window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
350
+ window._linkedin_data_partner_ids.push(_linkedin_partner_id);
351
+ </script><script type="text/javascript">
352
+ (function(){var s = document.getElementsByTagName("script")[0];
353
+ var b = document.createElement("script");
354
+ b.type = "text/javascript";b.async = true;
355
+ b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
356
+ s.parentNode.insertBefore(b, s);})();
357
+ </script>
358
+ <noscript>
359
+ <img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=#{analytics['linkedinInsightsId']}&fmt=gif" />
360
+ </noscript>
361
+ _EOT
362
+ script
363
+ end
364
+ end
365
+
366
+ class AnalyticsFacebookPixelTag < Liquid::Tag
367
+ def render(context)
368
+ site_settings = context.registers[:site].data['site_settings'].clone
369
+ analytics = site_settings['analytics']
370
+
371
+ return '' if analytics.nil? || !analytics['facebookPixelId']
372
+ script = <<_EOT
373
+ <!-- Facebook Pixel Code -->
374
+ <script>
375
+ !function(f,b,e,v,n,t,s)
376
+ {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
377
+ n.callMethod.apply(n,arguments):n.queue.push(arguments)};
378
+ if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
379
+ n.queue=[];t=b.createElement(e);t.async=!0;
380
+ t.src=v;s=b.getElementsByTagName(e)[0];
381
+ s.parentNode.insertBefore(t,s)}(window, document,'script',
382
+ 'https://connect.facebook.net/en_US/fbevents.js');
383
+ fbq('init', '#{analytics['facebookPixelId']}');
384
+ fbq('track', 'PageView');
385
+ </script>
386
+ <noscript><img height="1" width="1" style="display:none"
387
+ src="https://www.facebook.com/tr?id=#{analytics['facebookPixelId']}&ev=PageView&noscript=1"
388
+ /></noscript>
389
+ <!-- End Facebook Pixel Code -->
390
+ _EOT
391
+ script
392
+ end
393
+ end
274
394
  end
275
395
  end
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module AttendeasePlugin
3
- VERSION = '0.6.40.1'
3
+ VERSION = '0.6.43a'
4
4
  end
5
5
  end
@@ -85,6 +85,7 @@ RSpec.describe "Jekyll Attendease tags" do
85
85
  subject { render("{% attendease_block_renderer %}") }
86
86
 
87
87
  it { is_expected.to match(/locale: "en"/) }
88
+ it { is_expected.to match(/siteName: "My Attendease Test Event"/) }
88
89
  it { is_expected.to match(/eventApiEndpoint: "https:\/\/foobar\/api"/) }
89
90
  it { is_expected.to match(/eventId: "foobar"/) }
90
91
  it { is_expected.to match(/orgURL: "https:\/\/foobar.org\/"/) }
@@ -104,16 +105,46 @@ RSpec.describe "Jekyll Attendease tags" do
104
105
  subject { org_render("{% attendease_block_renderer %}") }
105
106
 
106
107
  it { is_expected.to match(/locale: "en"/) }
108
+ it { is_expected.to match(/siteName: "Foo Bar Widgets"/) }
107
109
  it { is_expected.to match(/orgURL: "https:\/\/foobar\/"/) }
108
110
  it { is_expected.to match(/orgId: "foobar"/) }
109
111
  it { is_expected.to match(/authApiEndpoint: "https:\/\/foobar.auth\/api"/) }
110
112
  it { is_expected.to match(/dashboard.attendease.com\/webpack_assets\/blockrenderer.bundle.js/) }
111
- it { is_expected.to match(/orgLocales: \["en", "fr", "it", "es", "de"\]/) }
113
+ it { is_expected.to match(/orgLocales: \["en","fr","it","es","de"\]/) }
112
114
 
113
115
  it { is_expected.to_not match(/eventApiEndpoint/) }
114
116
  it { is_expected.to_not match(/eventId/) }
115
117
  end
116
118
 
119
+ describe "{% attendease_analytics_gtm_head %}" do
120
+ subject { cms_render("{% attendease_analytics_gtm_head %}") }
121
+
122
+ it { is_expected.to match(/Google Tag Manager/) }
123
+ end
124
+
125
+ describe "{% attendease_analytics_gtm_body %}" do
126
+ subject { cms_render("{% attendease_analytics_gtm_body %}") }
127
+
128
+ it { is_expected.to match(/Google Tag Manager \(noscript\)/) }
129
+ end
130
+
131
+ describe "{% attendease_analytics_ga_gtag %}" do
132
+ subject { cms_render("{% attendease_analytics_ga_gtag %}") }
133
+
134
+ it { is_expected.to match(/Global Site Tag \(gtag.js\)/) }
135
+ end
136
+
137
+ describe "{% attendease_analytics_linked_in %}" do
138
+ subject { cms_render("{% attendease_analytics_linkedin %}") }
139
+
140
+ it { is_expected.to match(/_linkedin_partner_id = "foo";/) }
141
+ end
142
+
143
+ describe "{% attendease_analytics_fackebook %}" do
144
+ subject { cms_render("{% attendease_analytics_facebook %}") }
145
+
146
+ it { is_expected.to match(/Facebook Pixel Code/) }
147
+ end
117
148
  end
118
149
 
119
150
  def schedule_widget_data
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.40.1
4
+ version: 0.6.43a
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: 2018-10-11 00:00:00.000000000 Z
14
+ date: 2018-11-22 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: httparty
@@ -233,27 +233,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
233
233
  version: '0'
234
234
  required_rubygems_version: !ruby/object:Gem::Requirement
235
235
  requirements:
236
- - - ">="
236
+ - - ">"
237
237
  - !ruby/object:Gem::Version
238
- version: '0'
238
+ version: 1.3.1
239
239
  requirements: []
240
240
  rubyforge_project:
241
- rubygems_version: 2.7.7
241
+ rubygems_version: 2.2.5
242
242
  signing_key:
243
243
  specification_version: 4
244
244
  summary: Attendease event helper for Jekyll
245
245
  test_files:
246
- - spec/lib/jekyll/attendease_plugin/event_data_generator_spec.rb
247
- - spec/lib/jekyll/attendease_plugin/event_layout_generator_spec.rb
248
- - spec/lib/jekyll/attendease_plugin/event_template_generator_spec.rb
249
- - spec/lib/jekyll/attendease_plugin/filters_spec.rb
250
- - spec/lib/jekyll/attendease_plugin/helpers_spec.rb
251
- - spec/lib/jekyll/attendease_plugin/organization_data_generator_spec.rb
246
+ - spec/spec_helper.rb
247
+ - spec/support/fixtures_helpers.rb
252
248
  - spec/lib/jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator_spec.rb
253
- - spec/lib/jekyll/attendease_plugin/schedule_generator_spec.rb
249
+ - spec/lib/jekyll/attendease_plugin/sponsor_generator_spec.rb
254
250
  - spec/lib/jekyll/attendease_plugin/site_page_spec.rb
255
251
  - spec/lib/jekyll/attendease_plugin/site_pages_generator_spec.rb
256
- - spec/lib/jekyll/attendease_plugin/sponsor_generator_spec.rb
252
+ - spec/lib/jekyll/attendease_plugin/event_layout_generator_spec.rb
253
+ - spec/lib/jekyll/attendease_plugin/helpers_spec.rb
254
+ - spec/lib/jekyll/attendease_plugin/organization_data_generator_spec.rb
257
255
  - spec/lib/jekyll/attendease_plugin/tags_spec.rb
258
- - spec/spec_helper.rb
259
- - spec/support/fixtures_helpers.rb
256
+ - spec/lib/jekyll/attendease_plugin/event_template_generator_spec.rb
257
+ - spec/lib/jekyll/attendease_plugin/filters_spec.rb
258
+ - spec/lib/jekyll/attendease_plugin/schedule_generator_spec.rb
259
+ - spec/lib/jekyll/attendease_plugin/event_data_generator_spec.rb