contentful_middleman 1.0.3 → 1.0.4

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: 8cfeacffa7586cbc65d3822d9b4b02484b7c8ca6
4
- data.tar.gz: 03d6f48d7678eaa561ce7b1c68df617038e303f7
3
+ metadata.gz: e9139679962d383306d6e3bc2ac41003499bad3c
4
+ data.tar.gz: 7775dbb392e95e021cf9fa8adfb9a97a5e722ad2
5
5
  SHA512:
6
- metadata.gz: d99a7a9e1f17201f4a0e6fb2e0e4c29c0e60a35700057161917695dc6228c71a7eb360051ec73b173a2c215736e2b7fc02037cdeacd0d8f9e96f85bd596bc158
7
- data.tar.gz: 522fda1018a1713ccdfd20d7ce77b40c2cfe6b2fa0826da8658d48100c6faf90584d9c106e4f8c55d5c71fc4c6d64ef5a185a42c59ce682fa28bdb8575c2fa0d
6
+ metadata.gz: f89ab95709e0510226915f0e3991d4561c193b80cb419a2f830206725c1a71c038852eb81d3e56bded678913e99f820b306700e4ddcd842c7ac7e57ff8e5b8fd
7
+ data.tar.gz: 118262ec63062c0962fce52c1ff643a40376c95668bf7fa219cc5ec8b8aee37313549e66d4cb3e9f4530f667facc2bcce7e041e11ac6d70bc18c12f54523277e
@@ -1,9 +1,16 @@
1
1
  # Change Log
2
2
 
3
- ## Upcoming
3
+ ## 1.0.4
4
+ ### Fixed
5
+ * Typo in the require statements
6
+ * The importing of entries with fields containing a list of elements other that links to entries now works
7
+ * Handle non included links i.e. when the `include` query parameter is not present or its value doesn't cover a link
8
+
9
+ ## 1.0.3
4
10
  ## Fixed
5
11
  * The importing of entries including `Contentful::Location` fields now works
6
12
 
13
+
7
14
  ## 1.0.2
8
15
  ### Fixed
9
16
  * Include `middleman-blog` as dependency of the gem.
data/README.md CHANGED
@@ -48,7 +48,7 @@ Parameter | Description
48
48
  ---------- |------------
49
49
  space | Hash with an user choosen name for the space as key and the space id as value
50
50
  access_token | Contentful Delivery API access token
51
- cda_query | Hash describing query configuration. See [contentful.rb](https://github.com/contentful/contentful.rb) for more info
51
+ cda_query | Hash describing query configuration. See [contentful.rb](https://github.com/contentful/contentful.rb) for more info (look for filter options there)
52
52
  content_types | Hash describing the mapping applied to entries of the imported content types
53
53
 
54
54
  You can activate the extension multiple times to import entries from different spaces.
@@ -5,7 +5,7 @@ require 'digest'
5
5
  require 'contentful_middleman/commands/context'
6
6
  require 'contentful_middleman/tools/backup'
7
7
  require 'contentful_middleman/version_hash'
8
- require 'Contentful_middleman/import_task'
8
+ require 'contentful_middleman/import_task'
9
9
  require 'contentful_middleman/local_data/store'
10
10
  require 'contentful_middleman/local_data/file'
11
11
 
@@ -1,14 +1,13 @@
1
1
  module ContentfulMiddleman
2
2
  class Context < BasicObject
3
3
  def initialize
4
- @variables = {}
5
- @nexted_contexts = []
4
+ @variables = {}
6
5
  end
7
6
 
8
7
  def method_missing(symbol, *args, &block)
9
8
  if symbol =~ /\A.+=\z/
10
- variable_name = symbol.to_s.gsub('=','')
11
- variable_value = args.first
9
+ variable_name = symbol.to_s.gsub('=','')
10
+ variable_value = args.first
12
11
 
13
12
  set variable_name, variable_value
14
13
  else
@@ -16,25 +15,6 @@ module ContentfulMiddleman
16
15
  end
17
16
  end
18
17
 
19
- def nest(field_name)
20
- @nexted_contexts << field_name
21
- new_context = Context.new
22
- yield new_context
23
-
24
- set field_name, new_context
25
- end
26
-
27
- def map(field_name, elements)
28
- @nexted_contexts << field_name
29
- new_contexts = elements.map do |element|
30
- new_context = Context.new
31
- yield element, new_context
32
- new_context
33
- end
34
-
35
- set field_name, new_contexts
36
- end
37
-
38
18
  def set(name, value)
39
19
  @variables[name.to_sym] = value
40
20
  end
@@ -47,30 +27,27 @@ module ContentfulMiddleman
47
27
  Context == klass
48
28
  end
49
29
 
50
- def to_hash
51
- @variables
30
+ def to_yaml
31
+ hashize.to_yaml
52
32
  end
53
33
 
54
- def to_yaml
34
+ def hashize
55
35
  variables = @variables.dup
56
36
  variables.update(variables) do |variable_name, variable_value|
57
- if @nexted_contexts.include? variable_name
58
- hashize_nested_context(variable_value)
59
- else
60
- variable_value
61
- end
37
+ ensure_primitive_data_types(variable_value)
62
38
  end
63
-
64
- variables.to_yaml
65
39
  end
66
40
 
67
- def hashize_nested_context(nested_context)
68
- case nested_context
41
+ def ensure_primitive_data_types(value)
42
+ case value
43
+ when Context
44
+ value.hashize
69
45
  when ::Array
70
- nested_context.map {|e| e.to_hash}
46
+ value.map {|element| ensure_primitive_data_types(element)}
71
47
  else
72
- nested_context.to_hash
48
+ value
73
49
  end
74
50
  end
51
+
75
52
  end
76
53
  end
@@ -1,44 +1,66 @@
1
+ require_relative '../commands/context'
2
+
1
3
  module ContentfulMiddleman
2
4
  module Mapper
3
5
  class Base
4
6
  def map(context, entry)
5
- map_entry(context, entry)
6
- end
7
-
8
- private
9
- def map_entry(context, entry)
10
7
  context.id = entry.id
11
8
  entry.fields.each {|k, v| map_field context, k, v}
12
9
  end
13
10
 
11
+ private
12
+
14
13
  def map_field(context, field_name, field_value)
15
- case field_value
14
+ value_mapping = map_value(field_value)
15
+ context.set(field_name, value_mapping)
16
+ end
17
+
18
+ def map_value(value)
19
+ case value
16
20
  when Contentful::Asset
17
- map_asset(context, field_name, field_value)
21
+ map_asset(value)
18
22
  when Contentful::Location
19
- map_location(context, field_name, field_value)
23
+ map_location(value)
24
+ when Contentful::Link
25
+ map_link(value)
26
+ when Contentful::DynamicEntry
27
+ map_entry(value)
20
28
  when Array
21
- map_array(context, field_name, field_value)
29
+ map_array(value)
22
30
  else
23
- context.set(field_name, field_value)
31
+ value
24
32
  end
25
33
  end
26
34
 
27
- def map_asset(context, field_name, field_value)
28
- context.nest(field_name) do |nested_context|
29
- nested_context.title = field_value.title
30
- nested_context.url = field_value.file.url
31
- end
35
+ def map_asset(asset)
36
+ context = Context.new
37
+ context.title = asset.title
38
+ context.url = asset.file.url
39
+
40
+ context
32
41
  end
33
42
 
34
- def map_array(context, field_name, field_value)
35
- context.map(field_name, field_value) do |element, new_context|
36
- map_entry(new_context, element)
37
- end
43
+ def map_entry(entry)
44
+ context = Context.new
45
+ context.id = entry.id
46
+ entry.fields.each {|k, v| map_field context, k, v}
47
+
48
+ context
49
+ end
50
+
51
+ def map_location(location)
52
+ location.properties
53
+ end
54
+
55
+ def map_link(link)
56
+ context = Context.new
57
+ context.id = link.id
58
+
59
+ context
38
60
  end
39
61
 
40
- def map_location(context, field_name, field_value)
41
- context.set(field_name, field_value.properties)
62
+ def map_array(array)
63
+ array.map {|element| map_value(element)}
42
64
  end
43
65
  end
44
66
  end
@@ -1,3 +1,3 @@
1
1
  module ContentfulMiddleman
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contentful_middleman
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sascha Konietzke
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-02-16 00:00:00.000000000 Z
12
+ date: 2015-03-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: middleman-core