parent
dcfb1529ea
commit
abc54e11cc
@ -40,7 +40,7 @@ class AlgoliaSearchRecordExtractor
|
|||||||
|
|
||||||
# In Jekyll v3, Post are actually a specific type of Documents
|
# In Jekyll v3, Post are actually a specific type of Documents
|
||||||
if type == 'document'
|
if type == 'document'
|
||||||
collection_name = @file.collection.instance_variable_get('@label')
|
collection_name = @file.collection.label
|
||||||
return 'post' if collection_name == 'posts'
|
return 'post' if collection_name == 'posts'
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -108,6 +108,18 @@ class AlgoliaSearchRecordExtractor
|
|||||||
@file.date.to_time.to_i
|
@file.date.to_time.to_i
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Get the collection name of a document
|
||||||
|
def collection
|
||||||
|
return nil unless @file.respond_to?(:collection)
|
||||||
|
|
||||||
|
collection_name = @file.collection.label
|
||||||
|
|
||||||
|
# In Jekyll v3, posts are actually a collection
|
||||||
|
return nil if collection_name == 'posts'
|
||||||
|
collection_name
|
||||||
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
# Get a hash of all front-matter data
|
# Get a hash of all front-matter data
|
||||||
def front_matter
|
def front_matter
|
||||||
@ -153,8 +165,13 @@ class AlgoliaSearchRecordExtractor
|
|||||||
title: title,
|
title: title,
|
||||||
slug: slug,
|
slug: slug,
|
||||||
date: date,
|
date: date,
|
||||||
|
collection: collection,
|
||||||
tags: tags
|
tags: tags
|
||||||
}
|
}
|
||||||
|
# Remove empty attributes
|
||||||
|
shared_attributes = shared_attributes.delete_if do |_, value|
|
||||||
|
value.nil?
|
||||||
|
end
|
||||||
|
|
||||||
# Enriching with page metadata
|
# Enriching with page metadata
|
||||||
items = []
|
items = []
|
||||||
|
|||||||
@ -264,6 +264,41 @@ describe(AlgoliaSearchRecordExtractor) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'collection' do
|
||||||
|
it 'should get the collection name for documents' do
|
||||||
|
# Given
|
||||||
|
input = fixture_document
|
||||||
|
|
||||||
|
# When
|
||||||
|
actual = input.collection
|
||||||
|
|
||||||
|
# Then
|
||||||
|
expect(actual).to eq 'my-collection'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should be nil for pages' do
|
||||||
|
# Given
|
||||||
|
input = fixture_page
|
||||||
|
|
||||||
|
# When
|
||||||
|
actual = input.collection
|
||||||
|
|
||||||
|
# Then
|
||||||
|
expect(actual).to eq nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should be nil for posts' do
|
||||||
|
# Given
|
||||||
|
input = fixture_post
|
||||||
|
|
||||||
|
# When
|
||||||
|
actual = input.collection
|
||||||
|
|
||||||
|
# Then
|
||||||
|
expect(actual).to eq nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'front_matter' do
|
describe 'front_matter' do
|
||||||
it 'should get a hash of all front matter data' do
|
it 'should get a hash of all front matter data' do
|
||||||
# Given
|
# Given
|
||||||
@ -411,6 +446,50 @@ describe(AlgoliaSearchRecordExtractor) do
|
|||||||
expect(actual[0][:weight][:heading]).to eq 90
|
expect(actual[0][:weight][:heading]).to eq 90
|
||||||
expect(actual[0][:weight][:position]).to eq 0
|
expect(actual[0][:weight][:position]).to eq 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should not contain a collection key for pages' do
|
||||||
|
# Given
|
||||||
|
input = fixture_page
|
||||||
|
|
||||||
|
# When
|
||||||
|
actual = input.extract
|
||||||
|
|
||||||
|
# Then
|
||||||
|
expect(actual[0]).not_to have_key(:collection)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not contain a collection key for posts' do
|
||||||
|
# Given
|
||||||
|
input = fixture_post
|
||||||
|
|
||||||
|
# When
|
||||||
|
actual = input.extract
|
||||||
|
|
||||||
|
# Then
|
||||||
|
expect(actual[0]).not_to have_key(:collection)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should contain the collection name for documents' do
|
||||||
|
# Given
|
||||||
|
page = fixture_document
|
||||||
|
|
||||||
|
# When
|
||||||
|
page_data = page.extract
|
||||||
|
|
||||||
|
# Then
|
||||||
|
expect(page_data[0][:collection]).to eq 'my-collection'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not contain a date key for pages' do
|
||||||
|
# Given
|
||||||
|
input = fixture_page
|
||||||
|
|
||||||
|
# When
|
||||||
|
actual = input.extract
|
||||||
|
|
||||||
|
# Then
|
||||||
|
expect(actual[0]).not_to have_key(:date)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'custom_hook_each' do
|
describe 'custom_hook_each' do
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user