jekyll-attendease 0.6.43.3 → 0.6.44b

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
  SHA1:
3
- metadata.gz: 1fd982ba5a7fab63d1dd6c4fedc02de729f5b22e
4
- data.tar.gz: f40d85fcabf1092cfd65ef5e39812764c570002a
3
+ metadata.gz: e03d31c7ddea1090c096541f92f9a3689449431a
4
+ data.tar.gz: 3016f4e2680178023dbcc678ea14e5b583c750f2
5
5
  SHA512:
6
- metadata.gz: 9c484e974e21529b3cbc326b8af17fe10c236ee22746ae550a063f1eeeb44e22eb901d8e78c56f1096c1b4c6c88cbb032e1224cb4d8f826ed1bcd8fd6ee4477a
7
- data.tar.gz: f5787c010552bef0e81779f2200db19e0a48f57a9060c49a9a2f09f5afcbeefdea17f9e567887d1b700bb9342bef8ab72a0fbf29259a1657011d9f16e90defc6
6
+ metadata.gz: 9ca2980db60b358afb8e18fef67b2983e64e86b0827401584a2a261a3bee3549beece2cf06eb470dc2ad3b527f2d5e64477a68f6876e5a6c679c49460a6eb8da
7
+ data.tar.gz: 4aa473baa8f564fec7085feaa28e467f1a3cc8f0914c5121ff0454d5f30d6c5e9ff4d628323f2f65d8d246ae3385253c9161ad63617cc0aa24373e9f9b00bc2d
@@ -35,7 +35,27 @@ module Jekyll
35
35
  'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u',
36
36
  'ý' => 'y', 'ÿ' => 'y' }
37
37
  s.encode('ASCII',
38
- fallback: lambda { |c| fallback.key?(c) ? fallback[c] : undefined })
38
+ fallback: lambda { |c| fallback.key?(c) ? fallback[c] : undefined })
39
+ end
40
+
41
+ PAGE_KEYS = %w[id name href weight root children parent].freeze
42
+
43
+ # filter the raw pages for what's safe to make public
44
+ def self.public_pages(pages)
45
+ pages
46
+ .select { |p| p['root'] }
47
+ .reject { |p| p['hidden'] && (p['slug'] != '' || p['external'] == true) }
48
+ .map do |page|
49
+ page = page.select { |key| PAGE_KEYS.include?(key) }
50
+
51
+ page['children'] = page['children']
52
+ .reject { |p| p['hidden'] }
53
+ .map { |child| child.select { |key| PAGE_KEYS.include?(key) } }
54
+ .sort_by { |p| p['weight'] }
55
+
56
+ page
57
+ end
58
+ .sort_by { |p| p['weight'] }
39
59
  end
40
60
  end
41
61
  end
@@ -163,43 +163,9 @@ module Jekyll
163
163
 
164
164
  parent_pages_are_clickable = config['parent_pages_are_clickable']
165
165
 
166
- page_keys = %w[id name href weight active root children parent]
167
-
168
- pages = {}
169
- pages = context.registers[:site].data['pages']
170
- .select { |p| p['root'] }
171
- .reject { |p| p['hidden'] }
172
- .map do |page|
173
- page = page.select { |key| page_keys.include?(key) }
174
-
175
- page['children'] = page['children']
176
- .reject { |p| p['hidden'] }
177
- .map { |child| child.select { |key| page_keys.include?(key) } }
178
- .sort_by { |p| p['weight'] }
179
-
180
- page
181
- end
182
- .sort_by { |p| p['weight'] }
183
-
184
- portal_pages = {}
185
- if (context.registers[:site].data['portal_pages'])
186
- portal_pages = context.registers[:site].data['portal_pages']
187
- .select { |p| p['root'] }
188
- .reject { |p| p['hidden'] }
189
- .map do |page|
190
- page = page.select { |key| page_keys.include?(key) }
191
-
192
- page['children'] = page['children']
193
- .reject { |p| p['hidden'] }
194
- .map { |child| child.select { |key| page_keys.include?(key) } }
195
- .sort_by { |p| p['weight'] }
196
-
197
- page
198
- end
199
- .sort_by { |p| p['weight'] }
200
- end
201
-
166
+ pages = Helpers.public_pages(context.registers[:site].data['pages'])
202
167
 
168
+ portal_pages = Helpers.public_pages(context.registers[:site].data['portal_pages']) || []
203
169
  env = config['environment']
204
170
 
205
171
  # IMPORTANT NOTE: The script variables below must NOT be changed without making sure that blockrenderer.js and other
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module AttendeasePlugin
3
- VERSION = '0.6.43.3'
3
+ VERSION = '0.6.44b'
4
4
  end
5
5
  end
@@ -2,7 +2,7 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  RSpec.describe Jekyll::AttendeasePlugin::Helpers do
5
- context '#parameterize' do
5
+ describe '#parameterize' do
6
6
  it 'converts a typical filter item into a predictable CSS-friendly class name' do
7
7
  expect(Jekyll::AttendeasePlugin::Helpers.parameterize('Super Hyper Advanced', '-')).to eq('super-hyper-advanced')
8
8
  end
@@ -23,4 +23,47 @@ RSpec.describe Jekyll::AttendeasePlugin::Helpers do
23
23
  expect(Jekyll::AttendeasePlugin::Helpers.parameterize('-, What--the--hell? ::')).to eq('what_the_hell')
24
24
  end
25
25
  end
26
+
27
+ describe '#convert_to_ascii' do
28
+ it 'converts accented characters to plain letters' do
29
+ expect(Jekyll::AttendeasePlugin::Helpers.convert_to_ascii('café')).to eq('cafe')
30
+ end
31
+ end
32
+
33
+ describe '#public_pages' do
34
+ let(:pages) { JSON.parse(File.read(fixtures_path.join('_attendease', 'data', 'pages.json'))) }
35
+ let(:public_pages) { Jekyll::AttendeasePlugin::Helpers.public_pages(pages) }
36
+ let(:all_pages_hidden) do
37
+ hidden_pages = pages.map { |p| p['hidden'] = true; p }
38
+ Jekyll::AttendeasePlugin::Helpers.public_pages(hidden_pages)
39
+ end
40
+
41
+ it 'sorts pages by weight' do
42
+ expect(public_pages[0]['weight']).to eq(0)
43
+ expect(public_pages[0]['href']).to eq('/')
44
+
45
+ expect(public_pages[1]['weight']).to eq(1)
46
+ expect(public_pages[1]['href']).to eq('/product/')
47
+
48
+ expect(public_pages[2]['weight']).to eq(2)
49
+ expect(public_pages[2]['href']).to eq('/agenda/')
50
+
51
+ expect(public_pages[3]['weight']).to eq(3)
52
+ expect(public_pages[3]['href']).to eq('/sponsors/')
53
+ end
54
+
55
+ it 'sorts children by weight' do
56
+ expect(public_pages[1]['children'][0]['name']).to eq('Product Child 2')
57
+ expect(public_pages[1]['children'][1]['name']).to eq('Product Child 1')
58
+ end
59
+
60
+ it 'publishes the home page regardless of hidden status' do
61
+ expect(all_pages_hidden.length).to eq(1)
62
+ expect(all_pages_hidden[0]['href']).to eq('/')
63
+ end
64
+
65
+ it 'only has the declared keys in each page object' do
66
+ expect(public_pages[0].keys.length).to eq(7)
67
+ end
68
+ end
26
69
  end
@@ -83,16 +83,22 @@ RSpec.describe "Jekyll Attendease tags" do
83
83
 
84
84
  context "{% attendease_block_renderer %} for event" do
85
85
  subject { render("{% attendease_block_renderer %}") }
86
-
87
- it { is_expected.to match(/locale: "en"/) }
88
- it { is_expected.to match(/siteName: "My Attendease Test Event"/) }
89
- it { is_expected.to match(/eventApiEndpoint: "https:\/\/foobar\/api"/) }
90
- it { is_expected.to match(/eventId: "foobar"/) }
91
- it { is_expected.to match(/orgURL: "https:\/\/foobar.org\/"/) }
92
- it { is_expected.to match(/orgId: "batbaz"/) }
93
- it { is_expected.to match(/authApiEndpoint: "https:\/\/foobar.auth\/api"/) }
94
- it { is_expected.to match(/dashboard.attendease.com\/webpack_assets\/blockrenderer.bundle.js/) }
95
- it { is_expected.to_not match(/orgLocales/) }
86
+ let(:foo) { render("{% attendease_block_renderer %}") }
87
+
88
+ describe 'expected output' do
89
+ require 'pry'
90
+
91
+
92
+ it { binding.pry; is_expected.to match(/locale: "en"/) }
93
+ it { is_expected.to match(/siteName: "My Attendease Test Event"/) }
94
+ it { is_expected.to match(/eventApiEndpoint: "https:\/\/foobar\/api"/) }
95
+ it { is_expected.to match(/eventId: "foobar"/) }
96
+ it { is_expected.to match(/orgURL: "https:\/\/foobar.org\/"/) }
97
+ it { is_expected.to match(/orgId: "batbaz"/) }
98
+ it { is_expected.to match(/authApiEndpoint: "https:\/\/foobar.auth\/api"/) }
99
+ it { is_expected.to match(/dashboard.attendease.com\/webpack_assets\/blockrenderer.bundle.js/) }
100
+ it { is_expected.to_not match(/orgLocales/) }
101
+ end
96
102
  end
97
103
 
98
104
  context "{% attendease_block_renderer %} with custom bundle URL" do
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.43.3
4
+ version: 0.6.44b
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Wood
@@ -234,12 +234,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
234
  version: '0'
235
235
  required_rubygems_version: !ruby/object:Gem::Requirement
236
236
  requirements:
237
- - - ">="
237
+ - - ">"
238
238
  - !ruby/object:Gem::Version
239
- version: '0'
239
+ version: 1.3.1
240
240
  requirements: []
241
241
  rubyforge_project:
242
- rubygems_version: 2.2.5
242
+ rubygems_version: 2.5.2
243
243
  signing_key:
244
244
  specification_version: 4
245
245
  summary: Attendease event helper for Jekyll