jekyll-contentful-data-import 1.5.1 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d3f3bfe77c63cdbb2428c0e4ad7ec8ce5fcd85d7
4
- data.tar.gz: 6b611233877a8275d952ec8ac49a1aecc55ff2fb
3
+ metadata.gz: 6240e01bd316ec09f91d3ec93de0886cb6b550fb
4
+ data.tar.gz: a77e6bb3f7234b2d7aec8816251a23c627a27db7
5
5
  SHA512:
6
- metadata.gz: a51238cb49f031d904ac24b87e2ca9ba102a73d617cba54f756aea1315682ff737c1bfe67f3f47c0475048b6f8a1f134d4ededc3128dfcb19cbe99e80fcf608e
7
- data.tar.gz: 1a8f633a2f9b6dfa747137778f46a724f0dbc63435705c70580b1fe0ab4cac5a5207337dc2711b964aaad380686f918c425aba143d9fefe0c57a247079fd0767
6
+ metadata.gz: 479b3306559697cd362e4a371365c671b644c00f62cecc82d8eb3207a542fc999d547f800f421e3603fdea1b4107079233b42db81318ebfcacab93f5c9db07ca
7
+ data.tar.gz: 7cbae4efc303ff3b88cfa62227ad4c19ec828db56eab9f84424d084cad8d5eaa66ea066e1db89beb842acf52a1286f12cdebdf8f5f6da5eac77fe631f6aecfd9
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 1.6.0
6
+
7
+ ### Added
8
+ * Independent file per entry [#45](https://github.com/contentful/jekyll-contentful-data-import/pull/45) [#10](https://github.com/contentful/jekyll-contentful-data-import/issues/10) [#23](https://github.com/contentful/jekyll-contentful-data-import/pull/23) [#25](https://github.com/contentful/jekyll-contentful-data-import/issues/25)
9
+ * Added User Agent Integration Headers
10
+
5
11
  ## v1.5.1
6
12
  ### Fixed
7
13
  * Fixed wrong serialization for Location fields
@@ -10,6 +16,7 @@
10
16
 
11
17
  ### Changed
12
18
  * Updated CDA SDK to 2.0
19
+ * Field IDs will now be `snake_cased` following the 2.0.1 Ruby CDA SDK Upgrade
13
20
 
14
21
  ### Added
15
22
  * Added more metadata to `sys` attributes in entries
data/README.md CHANGED
@@ -55,19 +55,21 @@ contentful:
55
55
  api_url: 'preview.contentful.com' # Defaults to 'api.contentful.com' which is Production
56
56
  base_path: app_path # Optional - Defaults to Current directory
57
57
  destination: destination_in_data # Optional - Defaults to _data/contentful/spaces
58
+ individual_entry_files: true # Optional - Defaults to false
58
59
  ```
59
60
 
60
- Parameter | Description
61
- ---------- | ------------
62
- space | Contentful Space ID
63
- access_token | Contentful Delivery API access token
64
- cda_query | Hash describing query configuration. See [contentful.rb](https://github.com/contentful/contentful.rb) for more info (look for filter options there). Note that by default only 100 entries will be fetched, this can be configured to up to 1000 entries using the `limit` option.
65
- all_entries | Boolean, if true will run multiple queries to the API until it fetches all entries for the space
66
- all_entries_page_size | Integer, the amount of maximum entries per CDA Request when fetching :all_entries
67
- content_types | Hash describing the mapping applied to entries of the imported content types
68
- client_options | Hash describing Contentful::Client configuration. See [contentful.rb](https://github.com/contentful/contentful.rb) for more info.
69
- base_path | String with path to your Jekyll Application, defaults to current directory. Path is relative to your current location.
70
- destination | String with path within `_data` under which to store the output yaml file. Defaults to contentful/spaces
61
+ Parameter | Description
62
+ ---------- | ------------
63
+ space | Contentful Space ID
64
+ access_token | Contentful Delivery API access token
65
+ cda_query | Hash describing query configuration. See [contentful.rb](https://github.com/contentful/contentful.rb) for more info (look for filter options there). Note that by default only 100 entries will be fetched, this can be configured to up to 1000 entries using the `limit` option.
66
+ all_entries | Boolean, if true will run multiple queries to the API until it fetches all entries for the space
67
+ all_entries_page_size | Integer, the amount of maximum entries per CDA Request when fetching :all_entries
68
+ content_types | Hash describing the mapping applied to entries of the imported content types
69
+ client_options | Hash describing Contentful::Client configuration. See [contentful.rb](https://github.com/contentful/contentful.rb) for more info.
70
+ base_path | String with path to your Jekyll Application, defaults to current directory. Path is relative to your current location.
71
+ destination | String with path within `_data` under which to store the output yaml file. Defaults to contentful/spaces
72
+ individual_entry_files | Boolean, if true will create an individual file per entry separated in folders by content type, file path will be `{space_alias}/{content_type_id}/{entry_id}.yaml`. Default behavior is to create a file per space. Usage is affected when this is set to true, please look in the section below.
71
73
 
72
74
  You can add multiple spaces to your configuration
73
75
 
@@ -157,6 +159,26 @@ therefore you can do the following:
157
159
  This way, it is safe to share your code without having to worry
158
160
  about your credentials.
159
161
 
162
+ ### Using Multiple Entry Files
163
+
164
+ When setting the `individual_entry_files` flag to true, the usage pattern changes a little,
165
+ as Jekyll does not allow for variable unpacking when iterating.
166
+
167
+ A usage example is as follows:
168
+
169
+ ```html
170
+ <ul class="cat-list">
171
+ <!-- Each element in the array of entries for a content type is an array of the form ['entry_id', { ... entry_data ...}] -->
172
+ {% for cat_data in site.data.contentful.spaces.example.cat %}
173
+ {% assign cat_id = cat_data[0] %} <!-- Entry ID is the first element of the array -->
174
+ {% assign cat = cat_data[1] %} <!-- Entry data is the second element of the array -->
175
+ <li>
176
+ <p>{{ cat_id }}: {{ cat.name }}</p>
177
+ </li>
178
+ {% endfor %}
179
+ </ul>
180
+ ```
181
+
160
182
  ## Examples
161
183
 
162
184
  You can find working examples of multiple uses [here](https://github.com/contentful/contentful_jekyll_examples).
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.add_dependency("jekyll", ">= 2.5.0", "< 4")
23
23
 
24
24
  # Additional dependencies
25
- s.add_dependency("contentful", '>= 2.0.1', '~> 2.0')
25
+ s.add_dependency("contentful", '~> 2.1')
26
26
 
27
27
  s.add_development_dependency 'rubygems-tasks', '~> 0.2'
28
28
  s.add_development_dependency "guard"
@@ -2,14 +2,10 @@ require 'jekyll-contentful-data-import/serializer'
2
2
 
3
3
  module Jekyll
4
4
  module Contentful
5
- # Data Exporter Class
5
+ # Base Data Exporter Class
6
6
  #
7
- # Serializes Contentful data into YAML files
8
- class DataExporter
9
- DATA_FOLDER = '_data'.freeze
10
- CONTENTFUL_FOLDER = 'contentful'.freeze
11
- SPACES_FOLDER = 'spaces'.freeze
12
-
7
+ # Generic Data Exporter Implementation
8
+ class BaseDataExporter
13
9
  attr_reader :name, :entries, :config
14
10
 
15
11
  def initialize(name, entries, config = {})
@@ -19,16 +15,7 @@ module Jekyll
19
15
  end
20
16
 
21
17
  def run
22
- setup_directory
23
-
24
- File.open(destination_file, 'w') do |file|
25
- file.write(
26
- ::Jekyll::Contentful::Serializer.new(
27
- entries,
28
- config
29
- ).to_yaml
30
- )
31
- end
18
+ raise 'must implement'
32
19
  end
33
20
 
34
21
  def base_directory
@@ -45,24 +32,34 @@ module Jekyll
45
32
 
46
33
  def destination_directory
47
34
  destination_dir = File.join(
48
- base_directory, DATA_FOLDER,
49
- CONTENTFUL_FOLDER, SPACES_FOLDER
35
+ base_directory, data_folder,
36
+ contentful_folder, spaces_folder
50
37
  )
51
38
  if config.key?('destination')
52
39
  destination_dir = File.join(
53
- base_directory, DATA_FOLDER, config['destination']
40
+ base_directory, data_folder, config['destination']
54
41
  )
55
42
  end
56
43
 
57
44
  destination_dir
58
45
  end
59
46
 
60
- def destination_file
61
- File.join(destination_directory, "#{name}.yaml")
47
+ def setup_directory(directory)
48
+ FileUtils.mkdir_p(directory)
49
+ end
50
+
51
+ protected
52
+
53
+ def data_folder
54
+ '_data'
55
+ end
56
+
57
+ def contentful_folder
58
+ 'contentful'
62
59
  end
63
60
 
64
- def setup_directory
65
- FileUtils.mkdir_p destination_directory
61
+ def spaces_folder
62
+ 'spaces'
66
63
  end
67
64
  end
68
65
  end
@@ -1,5 +1,6 @@
1
1
  require 'contentful'
2
- require 'jekyll-contentful-data-import/data_exporter'
2
+ require 'jekyll-contentful-data-import/single_file_data_exporter'
3
+ require 'jekyll-contentful-data-import/multi_file_data_exporter'
3
4
 
4
5
  module Jekyll
5
6
  module Contentful
@@ -26,9 +27,35 @@ module Jekyll
26
27
  end
27
28
 
28
29
  def export_data(name, space_client, options)
29
- Jekyll::Contentful::DataExporter.new(
30
+ entries = get_entries(space_client, options)
31
+
32
+ if options.fetch('individual_entry_files', false)
33
+ export_data_multiple_files(
34
+ name,
35
+ entries,
36
+ options
37
+ )
38
+ else
39
+ export_data_single_file(
40
+ name,
41
+ entries,
42
+ options
43
+ )
44
+ end
45
+ end
46
+
47
+ def export_data_single_file(name, entries, options)
48
+ Jekyll::Contentful::SingleFileDataExporter.new(
49
+ name,
50
+ entries,
51
+ options
52
+ ).run
53
+ end
54
+
55
+ def export_data_multiple_files(name, entries, options)
56
+ Jekyll::Contentful::MultiFileDataExporter.new(
30
57
  name,
31
- get_entries(space_client, options),
58
+ entries,
32
59
  options
33
60
  ).run
34
61
  end
@@ -68,7 +95,9 @@ module Jekyll
68
95
  space: space,
69
96
  access_token: access_token,
70
97
  dynamic_entries: :auto,
71
- raise_errors: true
98
+ raise_errors: true,
99
+ integration_name: 'jekyll',
100
+ integration_version: Jekyll::Contentful::VERSION
72
101
  }.merge(options)
73
102
 
74
103
  ::Contentful::Client.new(options)
@@ -0,0 +1,35 @@
1
+ require 'jekyll-contentful-data-import/base_data_exporter'
2
+ require 'yaml'
3
+
4
+ module Jekyll
5
+ module Contentful
6
+ # Single File Data Exporter Class
7
+ #
8
+ # Serializes Contentful data into a multiple YAML files
9
+ class MultiFileDataExporter < BaseDataExporter
10
+ def run
11
+ data = ::Jekyll::Contentful::Serializer.new(
12
+ entries,
13
+ config
14
+ ).serialize
15
+
16
+ data.each do |content_type, entries|
17
+ content_type_directory = File.join(destination_directory, name, content_type.to_s)
18
+ setup_directory(content_type_directory)
19
+
20
+ entries.each do |entry|
21
+ yaml_entry = YAML.dump(entry)
22
+
23
+ File.open(destination_file(content_type_directory, entry), 'w') do |file|
24
+ file.write(yaml_entry)
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ def destination_file(content_type_directory, entry)
31
+ File.join(content_type_directory, "#{entry['sys']['id']}.yaml")
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,27 @@
1
+ require 'jekyll-contentful-data-import/base_data_exporter'
2
+
3
+ module Jekyll
4
+ module Contentful
5
+ # Single File Data Exporter Class
6
+ #
7
+ # Serializes Contentful data into a single YAML file
8
+ class SingleFileDataExporter < BaseDataExporter
9
+ def run
10
+ setup_directory(destination_directory)
11
+
12
+ File.open(destination_file, 'w') do |file|
13
+ file.write(
14
+ ::Jekyll::Contentful::Serializer.new(
15
+ entries,
16
+ config
17
+ ).to_yaml
18
+ )
19
+ end
20
+ end
21
+
22
+ def destination_file
23
+ File.join(destination_directory, "#{name}.yaml")
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Contentful
3
- VERSION = '1.5.1'.freeze
3
+ VERSION = '1.6.0'.freeze
4
4
  end
5
5
  end
@@ -42,13 +42,27 @@ describe Jekyll::Contentful::Importer do
42
42
 
43
43
  describe '#client' do
44
44
  it 'creates client with some defaults' do
45
- expect(::Contentful::Client).to receive(:new).with(space: 'foo', access_token: 'foobar', dynamic_entries: :auto, raise_errors: true)
45
+ expect(::Contentful::Client).to receive(:new).with(
46
+ space: 'foo',
47
+ access_token: 'foobar',
48
+ dynamic_entries: :auto,
49
+ raise_errors: true,
50
+ integration_name: 'jekyll',
51
+ integration_version: Jekyll::Contentful::VERSION
52
+ )
46
53
 
47
54
  subject.client('foo', 'foobar')
48
55
  end
49
56
 
50
57
  it 'can override the defaults' do
51
- expect(::Contentful::Client).to receive(:new).with(space: 'foo', access_token: 'foobar', dynamic_entries: :auto, raise_errors: false)
58
+ expect(::Contentful::Client).to receive(:new).with(
59
+ space: 'foo',
60
+ access_token: 'foobar',
61
+ dynamic_entries: :auto,
62
+ raise_errors: false,
63
+ integration_name: 'jekyll',
64
+ integration_version: Jekyll::Contentful::VERSION
65
+ )
52
66
 
53
67
  subject.client('foo', 'foobar', raise_errors: false)
54
68
  end
@@ -70,7 +84,7 @@ describe Jekyll::Contentful::Importer do
70
84
  allow(subject).to receive(:spaces).and_return([['foo', {'space' => 'foo', 'access_token' => 'bar'}], ['bar', {'space' => 'bar', 'access_token' => 'foo'}]])
71
85
  allow(subject).to receive(:client).and_return(ClientDouble.new)
72
86
 
73
- expect(Jekyll::Contentful::DataExporter).to receive(:new).and_return(ExporterDouble.new).twice
87
+ expect(Jekyll::Contentful::SingleFileDataExporter).to receive(:new).and_return(ExporterDouble.new).twice
74
88
 
75
89
  subject.run
76
90
  end
@@ -78,7 +92,27 @@ describe Jekyll::Contentful::Importer do
78
92
  it 'runs exporter with correct arguments' do
79
93
  allow(subject).to receive(:client).and_return(ClientDouble.new)
80
94
 
81
- expect(Jekyll::Contentful::DataExporter).to receive(:new).with('example', [], config['spaces'].first['example']).and_return(ExporterDouble.new)
95
+ expect(Jekyll::Contentful::SingleFileDataExporter).to receive(:new).with('example', [], config['spaces'].first['example']).and_return(ExporterDouble.new)
96
+
97
+ subject.run
98
+ end
99
+
100
+ it 'runs multifile exporter when passed :individual_entry_files flag' do
101
+ config = {
102
+ 'spaces' => [
103
+ {
104
+ 'example' => {
105
+ 'space' => 'cfexampleapi',
106
+ 'access_token' => 'b4c0n73n7fu1',
107
+ 'individual_entry_files' => true
108
+ }
109
+ }
110
+ ]
111
+ }
112
+ subject = described_class.new(config)
113
+ allow(subject).to receive(:client).and_return(ClientDouble.new)
114
+
115
+ expect(Jekyll::Contentful::MultiFileDataExporter).to receive(:new).with('example', [], config['spaces'].first['example']).and_return(ExporterDouble.new)
82
116
 
83
117
  subject.run
84
118
  end
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+ require 'stringio'
3
+
4
+ describe Jekyll::Contentful::MultiFileDataExporter do
5
+ subject { described_class.new('foo', []) }
6
+
7
+ describe 'instance methods' do
8
+ describe '#base_directory' do
9
+ it 'default directory' do
10
+ expect(subject.base_directory).to eq(Dir.pwd)
11
+ end
12
+
13
+ it 'overridden directory' do
14
+ subject = described_class.new('foo', [], {'base_path' => 'foo_dir'})
15
+
16
+ expect(subject.base_directory).to eq(File.join(Dir.pwd, 'foo_dir'))
17
+ end
18
+ end
19
+
20
+ describe '#destination_directory' do
21
+ it 'default directory' do
22
+ expected = File.join(Dir.pwd, '_data', 'contentful', 'spaces')
23
+ expect(subject.destination_directory).to eq(expected)
24
+ end
25
+
26
+ it 'overridden directory' do
27
+ subject = described_class.new('foo', [], {'base_path' => 'foo_dir'})
28
+
29
+ expected = File.join(Dir.pwd, 'foo_dir', '_data', 'contentful', 'spaces')
30
+ expect(subject.destination_directory).to eq(expected)
31
+ end
32
+ end
33
+
34
+ it '#destination_file' do
35
+ entry_double = { 'sys' => { 'id' => 'bar' } }
36
+ expected = File.join('foo', 'bar.yaml')
37
+ expect(subject.destination_file('foo', entry_double)).to eq(expected)
38
+ end
39
+
40
+ describe '#setup_directory' do
41
+ it 'default directory' do
42
+ expected = File.join(Dir.pwd, '_data', 'contentful', 'spaces')
43
+ expect(FileUtils).to receive(:mkdir_p).with(expected)
44
+
45
+ subject.setup_directory(expected)
46
+ end
47
+
48
+ it 'overridden directory' do
49
+ subject = described_class.new('foo', [], {'base_path' => 'foo_dir'})
50
+
51
+ expected = File.join(Dir.pwd, 'foo_dir', '_data', 'contentful', 'spaces')
52
+ expect(FileUtils).to receive(:mkdir_p).with(expected)
53
+
54
+ subject.setup_directory(expected)
55
+ end
56
+ end
57
+
58
+ describe '#run' do
59
+ before do
60
+ allow(subject).to receive(:setup_directory)
61
+ end
62
+
63
+ it 'does nothing with no entries' do
64
+ subject.run
65
+ end
66
+
67
+ it 'serializes entries' do
68
+ expect_any_instance_of(::Jekyll::Contentful::Serializer).to receive(:serialize) { {} }
69
+
70
+ subject.run
71
+ end
72
+
73
+ it 'creates a file per entry' do
74
+ subject = described_class.new('foo', [EntryDouble.new('bar', ContentTypeDouble.new('bar_ct'))])
75
+
76
+ expected_directory_path = File.join(Dir.pwd, '_data', 'contentful', 'spaces', 'foo', 'bar_ct')
77
+ expect(FileUtils).to receive(:mkdir_p).with(expected_directory_path)
78
+ expect(File).to receive(:open).with(File.join(expected_directory_path, 'bar.yaml'), 'w')
79
+
80
+ subject.run
81
+ end
82
+ end
83
+ end
84
+ end
85
+
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'stringio'
3
3
 
4
- describe Jekyll::Contentful::DataExporter do
4
+ describe Jekyll::Contentful::SingleFileDataExporter do
5
5
  subject { described_class.new('foo', []) }
6
6
 
7
7
  describe 'instance methods' do
@@ -10,7 +10,7 @@ describe Jekyll::Contentful::DataExporter do
10
10
  expect(subject.base_directory).to eq(Dir.pwd)
11
11
  end
12
12
 
13
- it 'overriden directory' do
13
+ it 'overridden directory' do
14
14
  subject = described_class.new('foo', [], {'base_path' => 'foo_dir'})
15
15
 
16
16
  expect(subject.base_directory).to eq(File.join(Dir.pwd, 'foo_dir'))
@@ -57,7 +57,7 @@ describe Jekyll::Contentful::DataExporter do
57
57
  expected = File.join(Dir.pwd, '_data', 'contentful', 'spaces')
58
58
  expect(FileUtils).to receive(:mkdir_p).with(expected)
59
59
 
60
- subject.setup_directory
60
+ subject.setup_directory(expected)
61
61
  end
62
62
 
63
63
  it 'overridden directory' do
@@ -66,7 +66,7 @@ describe Jekyll::Contentful::DataExporter do
66
66
  expected = File.join(Dir.pwd, 'foo_dir', '_data', 'contentful', 'spaces')
67
67
  expect(FileUtils).to receive(:mkdir_p).with(expected)
68
68
 
69
- subject.setup_directory
69
+ subject.setup_directory(expected)
70
70
  end
71
71
  end
72
72
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-contentful-data-import
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Contentful GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-14 00:00:00.000000000 Z
11
+ date: 2017-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -34,22 +34,16 @@ dependencies:
34
34
  name: contentful
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 2.0.1
40
37
  - - "~>"
41
38
  - !ruby/object:Gem::Version
42
- version: '2.0'
39
+ version: '2.1'
43
40
  type: :runtime
44
41
  prerelease: false
45
42
  version_requirements: !ruby/object:Gem::Requirement
46
43
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 2.0.1
50
44
  - - "~>"
51
45
  - !ruby/object:Gem::Version
52
- version: '2.0'
46
+ version: '2.1'
53
47
  - !ruby/object:Gem::Dependency
54
48
  name: rubygems-tasks
55
49
  requirement: !ruby/object:Gem::Requirement
@@ -239,18 +233,21 @@ files:
239
233
  - Rakefile
240
234
  - jekyll-contentful.gemspec
241
235
  - lib/jekyll-contentful-data-import.rb
242
- - lib/jekyll-contentful-data-import/data_exporter.rb
236
+ - lib/jekyll-contentful-data-import/base_data_exporter.rb
243
237
  - lib/jekyll-contentful-data-import/importer.rb
244
238
  - lib/jekyll-contentful-data-import/mappers.rb
245
239
  - lib/jekyll-contentful-data-import/mappers/base.rb
240
+ - lib/jekyll-contentful-data-import/multi_file_data_exporter.rb
246
241
  - lib/jekyll-contentful-data-import/serializer.rb
242
+ - lib/jekyll-contentful-data-import/single_file_data_exporter.rb
247
243
  - lib/jekyll-contentful-data-import/version.rb
248
244
  - lib/jekyll/commands/contentful.rb
249
245
  - spec/fixtures/vcr_fixtures/entries.yml
250
- - spec/jekyll-contentful/data_exporter_spec.rb
251
246
  - spec/jekyll-contentful/importer_spec.rb
252
247
  - spec/jekyll-contentful/mappers/base_spec.rb
248
+ - spec/jekyll-contentful/multi_file_data_exporter_spec.rb
253
249
  - spec/jekyll-contentful/serializer_spec.rb
250
+ - spec/jekyll-contentful/single_file_data_exporter_spec.rb
254
251
  - spec/jekyll/commands/contentful_spec.rb
255
252
  - spec/spec_helper.rb
256
253
  homepage: https://www.contentful.com
@@ -280,9 +277,10 @@ summary: Include mangablable content from the Contentful CMS and API into your J
280
277
  projects
281
278
  test_files:
282
279
  - spec/fixtures/vcr_fixtures/entries.yml
283
- - spec/jekyll-contentful/data_exporter_spec.rb
284
280
  - spec/jekyll-contentful/importer_spec.rb
285
281
  - spec/jekyll-contentful/mappers/base_spec.rb
282
+ - spec/jekyll-contentful/multi_file_data_exporter_spec.rb
286
283
  - spec/jekyll-contentful/serializer_spec.rb
284
+ - spec/jekyll-contentful/single_file_data_exporter_spec.rb
287
285
  - spec/jekyll/commands/contentful_spec.rb
288
286
  - spec/spec_helper.rb