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 +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +33 -11
- data/jekyll-contentful.gemspec +1 -1
- data/lib/jekyll-contentful-data-import/{data_exporter.rb → base_data_exporter.rb} +21 -24
- data/lib/jekyll-contentful-data-import/importer.rb +33 -4
- data/lib/jekyll-contentful-data-import/multi_file_data_exporter.rb +35 -0
- data/lib/jekyll-contentful-data-import/single_file_data_exporter.rb +27 -0
- data/lib/jekyll-contentful-data-import/version.rb +1 -1
- data/spec/jekyll-contentful/importer_spec.rb +38 -4
- data/spec/jekyll-contentful/multi_file_data_exporter_spec.rb +85 -0
- data/spec/jekyll-contentful/{data_exporter_spec.rb → single_file_data_exporter_spec.rb} +4 -4
- metadata +11 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6240e01bd316ec09f91d3ec93de0886cb6b550fb
|
4
|
+
data.tar.gz: a77e6bb3f7234b2d7aec8816251a23c627a27db7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 479b3306559697cd362e4a371365c671b644c00f62cecc82d8eb3207a542fc999d547f800f421e3603fdea1b4107079233b42db81318ebfcacab93f5c9db07ca
|
7
|
+
data.tar.gz: 7cbae4efc303ff3b88cfa62227ad4c19ec828db56eab9f84424d084cad8d5eaa66ea066e1db89beb842acf52a1286f12cdebdf8f5f6da5eac77fe631f6aecfd9
|
data/CHANGELOG.md
CHANGED
@@ -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
|
61
|
-
----------
|
62
|
-
space
|
63
|
-
access_token
|
64
|
-
cda_query
|
65
|
-
all_entries
|
66
|
-
all_entries_page_size
|
67
|
-
content_types
|
68
|
-
client_options
|
69
|
-
base_path
|
70
|
-
destination
|
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).
|
data/jekyll-contentful.gemspec
CHANGED
@@ -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", '
|
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
|
-
#
|
8
|
-
class
|
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
|
-
|
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,
|
49
|
-
|
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,
|
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
|
61
|
-
|
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
|
65
|
-
|
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/
|
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
|
-
|
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
|
-
|
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
|
@@ -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(
|
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(
|
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::
|
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::
|
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::
|
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 '
|
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.
|
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-
|
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.
|
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.
|
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/
|
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
|