contentful-management 0.0.1.pre → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/CHANGELOG.md +8 -0
  2. data/LICENSE.txt +17 -18
  3. data/README.md +10 -19
  4. data/examples/blog.rb +2 -0
  5. data/examples/create_space.rb +1 -1
  6. data/lib/contentful/management.rb +0 -8
  7. data/lib/contentful/management/asset.rb +41 -38
  8. data/lib/contentful/management/client.rb +8 -1
  9. data/lib/contentful/management/content_type.rb +44 -6
  10. data/lib/contentful/management/entry.rb +61 -29
  11. data/lib/contentful/management/field.rb +1 -1
  12. data/lib/contentful/management/file.rb +1 -0
  13. data/lib/contentful/management/link.rb +1 -1
  14. data/lib/contentful/management/locale.rb +24 -8
  15. data/lib/contentful/management/location.rb +1 -1
  16. data/lib/contentful/management/resource/asset_fields.rb +17 -0
  17. data/lib/contentful/management/resource/entry_fields.rb +13 -0
  18. data/lib/contentful/management/resource/fields.rb +1 -0
  19. data/lib/contentful/management/resource_builder.rb +0 -1
  20. data/lib/contentful/management/space.rb +38 -10
  21. data/lib/contentful/management/support.rb +3 -1
  22. data/lib/contentful/management/version.rb +1 -1
  23. data/spec/fixtures/vcr_cassettes/asset/publish_after_create.yml +268 -0
  24. data/spec/fixtures/vcr_cassettes/content_type/entry/all.yml +777 -0
  25. data/spec/fixtures/vcr_cassettes/entry/content_type_entires.yml +156 -0
  26. data/spec/fixtures/vcr_cassettes/entry/create_with_custom_id.yml +287 -0
  27. data/spec/fixtures/vcr_cassettes/space/{asset/assets.yml → entry/content_type_entires.yml} +369 -367
  28. data/spec/lib/contentful/management/asset_spec.rb +32 -23
  29. data/spec/lib/contentful/management/content_type_spec.rb +31 -6
  30. data/spec/lib/contentful/management/entry_spec.rb +21 -3
  31. data/spec/lib/contentful/management/space_spec.rb +26 -37
  32. metadata +22 -17
  33. data/spec/fixtures/vcr_cassettes/asset/image_url.yml +0 -133
  34. data/spec/fixtures/vcr_cassettes/space/content_type/content_types.yml +0 -341
  35. data/spec/fixtures/vcr_cassettes/space/entry/entries.yml +0 -498
  36. data/spec/fixtures/vcr_cassettes/space/locale/locales.yml +0 -480
data/CHANGELOG.md CHANGED
@@ -1,2 +1,10 @@
1
+ ### 0.0.1
2
+ * Fix: Headers not properly cleared between requests
3
+ * Fix: Create entries with custom identifier
4
+ * Code cleanup
5
+ * Adding rdoc
6
+ * Adding filter by content_type id
7
+
8
+
1
9
  ### 0.0.1-pre
2
10
  * alpha pre-release
data/LICENSE.txt CHANGED
@@ -1,22 +1,21 @@
1
- Copyright (c) 2014 Andreas Tiefenthaler
1
+ The MIT License (MIT)
2
2
 
3
- MIT License
3
+ Copyright (c) 2014 Contentful GmbH
4
4
 
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
12
11
 
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
15
14
 
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
+
1
2
  # Contentful::Management
3
+ [![Gem Version](https://badge.fury.io/rb/contentful-management.svg)](http://badge.fury.io/rb/contentful-management) [![Build Status](https://travis-ci.org/contentful/contentful-management.rb.svg)](https://travis-ci.org/contentful/contentful-management.rb)
2
4
 
3
5
  Ruby client for the Contentful Content Management API.
4
6
 
@@ -79,12 +81,6 @@ blog_space.save
79
81
 
80
82
  Retrieving all content types from a space:
81
83
 
82
- ```ruby
83
- blog_post_content_types = blog_space.content_types
84
- ```
85
-
86
- or
87
-
88
84
  ```ruby
89
85
  blog_post_content_types = blog_space.content_types.all
90
86
  ```
@@ -170,12 +166,6 @@ blog_post_content_type.update(name: 'Post', description: 'Post Description', fie
170
166
 
171
167
  Retrieving all locales from the space:
172
168
 
173
- ```ruby
174
- blog_post_locales = blog_space.locales
175
- ```
176
-
177
- or
178
-
179
169
  ```ruby
180
170
  blog_post_locales = blog_space.locales.all
181
171
  ```
@@ -200,11 +190,6 @@ blog_post_locale.update(name: 'German', code: 'de-DE')
200
190
 
201
191
  Retrieving all assets from the space:
202
192
 
203
- ```ruby
204
- blog_post_assets = blog_space.assets
205
- ```
206
-
207
- or
208
193
 
209
194
  ```ruby
210
195
  blog_post_assets = blog_space.assets.all
@@ -308,13 +293,19 @@ my_image_asset.published?
308
293
  Retrieving all entries from the space:
309
294
 
310
295
  ```ruby
311
- entries = blog_space.entries
296
+ entries = blog_space.entries.all
297
+ ```
298
+
299
+ Retrieving all entries from the space with given content type:
300
+
301
+ ```ruby
302
+ entries = blog_space.entries.all(content_type_id: content_type.id)
312
303
  ```
313
304
 
314
305
  or
315
306
 
316
307
  ```ruby
317
- entries = blog_space.entries.all
308
+ entries = content_type.entries.all
318
309
  ```
319
310
 
320
311
  Retrieving an entry by id:
data/examples/blog.rb CHANGED
@@ -27,11 +27,13 @@ blog_space.locales.create(name: 'German', code: 'de-DE')
27
27
  category_type = blog_space.content_types.create(name: 'Category')
28
28
  category_type.fields.create(id: 'category_name', name: 'Category Name', type: 'Text', localized: true)
29
29
  category_type.fields.create(id: 'category_description', name: 'Category Description', type: 'Text', localized: true)
30
+ category_type.update(displayField: 'category_name')
30
31
 
31
32
  post_type = blog_space.content_types.create(name: 'Post')
32
33
  post_type.fields.create(id: 'post_title', name: 'Post Title', type: 'Text', localized: true)
33
34
  post_type.fields.create(id: 'post_author', name: 'Post Author', type: 'Text', localized: true)
34
35
  post_type.fields.create(id: 'post_body', name: 'Post Body', type: 'Text', localized: true)
36
+ post_type.update(displayField: 'post_title')
35
37
 
36
38
  categories = Contentful::Management::Field.new
37
39
  categories.id = 'post_category'
@@ -18,7 +18,7 @@ dat_space = Contentful::Management::Space.find(my_space.id)
18
18
 
19
19
  dat_space.locales.create(name: 'English', code: 'en-US')
20
20
 
21
- locales = dat_space.locales
21
+ locales = dat_space.locales.all
22
22
  # locales.map(&:destroy) # not implemented yet?
23
23
 
24
24
  dat_space.destroy
@@ -1,12 +1,4 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'contentful/management/version'
3
3
  require 'contentful/management/support'
4
- require 'contentful/management/resource'
5
4
  require 'contentful/management/client'
6
- require 'contentful/management/space'
7
-
8
- module Contentful
9
- module Management
10
- # Your code goes here...
11
- end
12
- end
@@ -1,26 +1,23 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require_relative 'resource'
3
+ require_relative 'resource/asset_fields'
3
4
  require_relative 'resource/fields'
4
5
 
5
6
  module Contentful
6
7
  module Management
8
+ # Resource class for Asset.
9
+ # https://www.contentful.com/developers/documentation/content-management-api/#resources-assets
7
10
  class Asset
8
11
 
9
- FIELDS_COERCIONS = {
10
- title: :hash,
11
- description: :hash,
12
- file: Contentful::Management::File
13
- }
14
-
15
- def self.fields_coercions
16
- FIELDS_COERCIONS
17
- end
18
-
19
12
  include Contentful::Management::Resource
13
+ extend Contentful::Management::Resource::AssetFields
20
14
  include Contentful::Management::Resource::Fields
21
15
  include Contentful::Management::Resource::SystemProperties
22
16
  include Contentful::Management::Resource::Refresher
23
17
 
18
+ # Gets a collection of assets.
19
+ # Takes an id of space.
20
+ # Returns a Contentful::Management::Array of Contentful::Management::Asset.
24
21
  def self.all(space_id)
25
22
  request = Request.new("/#{ space_id }/assets")
26
23
  response = request.get
@@ -28,6 +25,9 @@ module Contentful
28
25
  result.run
29
26
  end
30
27
 
28
+ # Gets a specific asset.
29
+ # Takes an id of space and asset.
30
+ # Returns a Contentful::Management::Asset.
31
31
  def self.find(space_id, asset_id)
32
32
  request = Request.new("/#{ space_id }/assets/#{ asset_id }")
33
33
  response = request.get
@@ -35,47 +35,60 @@ module Contentful
35
35
  result.run
36
36
  end
37
37
 
38
+ # Creates an asset.
39
+ # Takes a space id and hash with attributes (title, description, file)
40
+ # Returns a Contentful::Management::Asset.
38
41
  def self.create(space_id, attributes)
39
- asset = self.new
42
+ asset = new
40
43
  asset.instance_variable_set(:@fields, attributes[:fields] || {})
41
44
  asset.locale = attributes[:locale] if attributes[:locale]
42
45
  asset.title = attributes[:title] if attributes[:title]
43
46
  asset.description = attributes[:description] if attributes[:description]
44
47
  asset.file = attributes[:file] if attributes[:file]
45
48
 
46
- request = Request.new("/#{ space_id }/assets/#{ attributes[:id] || ''}", { fields: asset.fields_for_query })
49
+ request = Request.new("/#{ space_id }/assets/#{ attributes[:id] || ''}", {fields: asset.fields_for_query})
47
50
  response = attributes[:id].nil? ? request.post : request.put
48
51
  result = ResourceBuilder.new(self, response, {}, {}).run
49
52
  result.process_files if result.is_a? self
50
53
  result
51
54
  end
52
55
 
56
+ # This method is used only when an asset is created. Processes the uploaded file.
53
57
  def process_files
54
58
  instance_variable_get(:@fields).keys.each do |locale|
55
59
  request = Request.new("/#{ space.id }/assets/#{ id }/files/#{ locale }/process", {}, id = nil, version: sys[:version])
56
60
  request.put
57
61
  end
62
+ sys[:version] += 1
63
+ self
58
64
  end
59
65
 
66
+ # Updates an asset.
67
+ # Takes hash with attributes (title, description, file)
68
+ # Returns a Contentful::Management::Asset.
60
69
  def update(attributes)
61
70
  self.title = attributes[:title] if attributes[:title]
62
71
  self.description = attributes[:description] if attributes[:description]
63
72
  self.file = attributes[:file] if attributes[:file]
64
- request = Request.new("/#{ space.id }/assets/#{ id }", { fields: fields_for_query }, id = nil, version: sys[:version])
73
+ request = Request.new("/#{ space.id }/assets/#{ id }", {fields: fields_for_query}, id = nil, version: sys[:version])
65
74
  response = request.put
66
75
  result = ResourceBuilder.new(self, response, {}, {}).run
67
76
  refresh_data(result)
68
77
  end
69
78
 
79
+ # If an asset is a new object gets created in the Contentful, otherwise the existing asset gets updated.
80
+ # See README for details.
70
81
  def save
71
82
  if id.nil?
72
- new_instance = self.class.create(self.sys[:space].id, { fields: instance_variable_get(:@fields) })
83
+ new_instance = self.class.create(self.sys[:space].id, {fields: instance_variable_get(:@fields)})
73
84
  refresh_data(new_instance)
74
85
  else
75
86
  update(title: title, description: description, file: file)
76
87
  end
77
88
  end
78
89
 
90
+ # Destroys an asset.
91
+ # Returns true if succeed.
79
92
  def destroy
80
93
  request = Request.new("/#{ space.id }/assets/#{ id }")
81
94
  response = request.delete
@@ -87,6 +100,8 @@ module Contentful
87
100
  end
88
101
  end
89
102
 
103
+ # Publishes an asset.
104
+ # Returns a Contentful::Management::Asset.
90
105
  def publish
91
106
  request = Request.new("/#{ space.id }/assets/#{ id }/published", {}, id = nil, version: sys[:version])
92
107
  response = request.put
@@ -94,6 +109,8 @@ module Contentful
94
109
  refresh_data(result)
95
110
  end
96
111
 
112
+ # Unpublishes an asset.
113
+ # Returns a Contentful::Management::Asset.
97
114
  def unpublish
98
115
  request = Request.new("/#{ space.id }/assets/#{ id }/published", {}, id = nil, version: sys[:version])
99
116
  response = request.delete
@@ -101,6 +118,8 @@ module Contentful
101
118
  refresh_data(result)
102
119
  end
103
120
 
121
+ # Archive an asset.
122
+ # Returns a Contentful::Management::Asset.
104
123
  def archive
105
124
  request = Request.new("/#{ space.id }/assets/#{ id }/archived", {}, id = nil, version: sys[:version])
106
125
  response = request.put
@@ -108,6 +127,8 @@ module Contentful
108
127
  refresh_data(result)
109
128
  end
110
129
 
130
+ # Unarchvie an asset.
131
+ # Returns a Contentful::Management::Asset.
111
132
  def unarchive
112
133
  request = Request.new("/#{ space.id }/assets/#{ id }/archived", {}, id = nil, version: sys[:version])
113
134
  response = request.delete
@@ -115,18 +136,24 @@ module Contentful
115
136
  refresh_data(result)
116
137
  end
117
138
 
139
+ # Checks if an asset is published.
140
+ # Returns true if published.
118
141
  def published?
119
142
  !sys[:publishedAt].nil?
120
143
  end
121
144
 
145
+ # Checks if an asset is archvied.
146
+ # Returns true if archived.
122
147
  def archived?
123
148
  !sys[:archivedAt].nil?
124
149
  end
125
150
 
151
+ # Returns currently supported local or default locale.
126
152
  def locale
127
153
  sys && sys[:locale] ? sys[:locale] : default_locale
128
154
  end
129
155
 
156
+ # Parser for assets attributes, creates appropriate form of request.
130
157
  def fields_for_query
131
158
  self.class.fields_coercions.keys.each_with_object({}) do |field_name, results|
132
159
  results[field_name] = @fields.each_with_object({}) do |(locale, fields), field_results|
@@ -134,30 +161,6 @@ module Contentful
134
161
  end
135
162
  end
136
163
  end
137
-
138
- # Returns the image url of an asset
139
- # Allows you to pass in the following options for image resizing:
140
- # :width
141
- # :height
142
- # :format
143
- # :quality
144
- # See https://www.contentful.com/developers/documentation/content-delivery-api/#image-asset-resizing
145
- def image_url(options = {})
146
- query = {
147
- w: options[:w] || options[:width],
148
- h: options[:h] || options[:height],
149
- fm: options[:fm] || options[:format],
150
- q: options[:q] || options[:quality]
151
- }.reject { |_k, v| v.nil? }
152
-
153
- if query.empty?
154
- file.url
155
- else
156
- "#{ file.url }?#{ URI.encode_www_form(query) }"
157
- end
158
- end
159
-
160
164
  end
161
165
  end
162
166
  end
163
-
@@ -42,7 +42,7 @@ module Contentful
42
42
  # Use this method together with the client's :dynamic_entries configuration.
43
43
  # See README for details.
44
44
  def update_dynamic_entry_cache_for_space!(space)
45
- update_dynamic_entry_cache!(space.content_types)
45
+ update_dynamic_entry_cache!(space.content_types.all)
46
46
  end
47
47
 
48
48
  def update_dynamic_entry_cache!(content_types)
@@ -72,9 +72,16 @@ module Contentful
72
72
  request_url = request.url
73
73
  url = request.absolute? ? request_url : base_url + request_url
74
74
  raw_response = yield(url)
75
+ clear_headers
75
76
  Response.new(raw_response, request)
76
77
  end
77
78
 
79
+ def clear_headers
80
+ self.content_type_id = nil
81
+ self.version = nil
82
+ self.organization_id = nil
83
+ end
84
+
78
85
  def delete(request)
79
86
  execute_request(request) do |url|
80
87
  self.class.delete_http(url, {}, request_headers)
@@ -4,8 +4,9 @@ require_relative 'field'
4
4
 
5
5
  module Contentful
6
6
  module Management
7
+ # Resource class for ContentType.
8
+ # https://www.contentful.com/developers/documentation/content-management-api/#resources-content-types
7
9
  class ContentType
8
-
9
10
  FIELD_TYPES = [
10
11
  SYMBOL = 'Symbol',
11
12
  TEXT = 'Text',
@@ -26,8 +27,10 @@ module Contentful
26
27
  property :name, :string
27
28
  property :description, :string
28
29
  property :fields, Field
29
- property :displayField, :string
30
30
 
31
+ # Gets a collection of content types.
32
+ # Takes an id of space.
33
+ # Returns a Contentful::Management::Array of Contentful::Management::ContentType.
31
34
  def self.all(space_id)
32
35
  request = Request.new("/#{ space_id }/content_types")
33
36
  response = request.get
@@ -37,6 +40,9 @@ module Contentful
37
40
  content_types
38
41
  end
39
42
 
43
+ # Gets a specific entry.
44
+ # Takes an id of space and content type.
45
+ # Returns a Contentful::Management::ContentType.
40
46
  def self.find(space_id, content_type_id)
41
47
  request = Request.new("/#{ space_id }/content_types/#{ content_type_id }")
42
48
  response = request.get
@@ -46,6 +52,8 @@ module Contentful
46
52
  content_type
47
53
  end
48
54
 
55
+ # Destroys a content type.
56
+ # Returns true if succeed.
49
57
  def destroy
50
58
  request = Request.new("/#{ space.id }/content_types/#{ id }")
51
59
  response = request.delete
@@ -57,6 +65,8 @@ module Contentful
57
65
  end
58
66
  end
59
67
 
68
+ # Activates a content type.
69
+ # Returns a Contentful::Management::ContentType.
60
70
  def activate
61
71
  request = Request.new("/#{ space.id }/content_types/#{ id }/published", {}, id = nil, version: sys[:version])
62
72
  response = request.put
@@ -64,6 +74,9 @@ module Contentful
64
74
  refresh_data(result)
65
75
  end
66
76
 
77
+ # Deactivates a content type.
78
+ # Only content type that has no entries can be deactivated.
79
+ # Returns a Contentful::Management::ContentType.
67
80
  def deactivate
68
81
  request = Request.new("/#{ space.id }/content_types/#{ id }/published")
69
82
  response = request.delete
@@ -71,10 +84,15 @@ module Contentful
71
84
  refresh_data(result)
72
85
  end
73
86
 
87
+ # Checks if a content type is active.
88
+ # Returns true if active.
74
89
  def active?
75
90
  !sys[:publishedAt].nil?
76
91
  end
77
92
 
93
+ # Creates a content type.
94
+ # Takes an id of space and hash with attributes.
95
+ # Returns a Contentful::Management::ContentType.
78
96
  def self.create(space_id, attributes)
79
97
  fields = fields_to_nested_properties_hash(attributes[:fields] || [])
80
98
  request = Request.new("/#{ space_id }/content_types/#{ attributes[:id] || ''}", { name: attributes.fetch(:name),
@@ -86,8 +104,12 @@ module Contentful
86
104
  result
87
105
  end
88
106
 
107
+ # Updates a content type.
108
+ # Takes a hash with attributes.
109
+ # Returns a Contentful::Management::ContentType.
89
110
  def update(attributes)
90
111
  parameters = {}
112
+ parameters.merge!(displayField: attributes[:displayField]) if attributes[:displayField]
91
113
  parameters.merge!(name: (attributes[:name] || name))
92
114
  parameters.merge!(description: (attributes[:description] || description))
93
115
  parameters.merge!(fields: self.class.fields_to_nested_properties_hash(attributes[:fields] || fields))
@@ -97,6 +119,8 @@ module Contentful
97
119
  refresh_data(result)
98
120
  end
99
121
 
122
+ # If a content type is a new object gets created in the Contentful, otherwise the existing entry gets updated.
123
+ # See README for details.
100
124
  def save
101
125
  if id.nil?
102
126
  new_instance = self.class.create(space.id, @properties)
@@ -106,6 +130,7 @@ module Contentful
106
130
  end
107
131
  end
108
132
 
133
+ # This method merges existing fields with new one, when adding, creating or updating new fields.
109
134
  def merged_fields(new_field)
110
135
  field_ids = []
111
136
  merged_fields = fields.each_with_object([]) do |field, fields|
@@ -119,6 +144,10 @@ module Contentful
119
144
 
120
145
  alias_method :orig_fields, :fields
121
146
 
147
+ # Use this method only in the context of content type.
148
+ # Allows you to add and create a field with specified attributes or destroy by pass field id.
149
+ # Returns a Contentful::Management::ContentType.
150
+ # See README for details.
122
151
  def fields
123
152
  fields = orig_fields
124
153
 
@@ -150,15 +179,25 @@ module Contentful
150
179
  fields
151
180
  end
152
181
 
153
- #TODO refactor and move
182
+ # Use this method only in the context of content type.
183
+ # Allows you to create an entry.
184
+ # Returns a Contentful::Management::Entry.
185
+ # See README for details.
154
186
  def entries
155
- entries = []
187
+ entries = nil
188
+
156
189
  entries.instance_exec(self) do |content_type|
190
+
191
+ define_singleton_method(:all) do
192
+ Contentful::Management::Entry.all(content_type.space.id, content_type_id: content_type.id)
193
+ end
194
+
157
195
  define_singleton_method(:create) do |params|
158
196
  Entry.create(content_type, params)
159
197
  end
198
+
160
199
  define_singleton_method(:new) do
161
- dynamic_entry_class = Contentful::Management::Client.shared_instance.register_dynamic_entry(content_type.id, DynamicEntry.create(content_type))
200
+ dynamic_entry_class = Contentful::Management::Client.shared_instance.register_dynamic_entry(content_type.id, DynamicEntry.create(content_type))
162
201
  dynamic_entry = dynamic_entry_class.new
163
202
  dynamic_entry.content_type = content_type
164
203
  dynamic_entry
@@ -174,7 +213,6 @@ module Contentful
174
213
  field.properties.replace(field.properties_to_hash)
175
214
  end
176
215
  end
177
-
178
216
  end
179
217
  end
180
218
  end