contentful-database-importer 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b17382659fb9cb37caad7dcc726b1d8b1bf8e832
4
- data.tar.gz: 6991bbcd25ed0283426a4fdcb08de456ec712189
3
+ metadata.gz: 9abdc777c01f879523c6f4aa2bb1d395e2d42eaf
4
+ data.tar.gz: 179fc5d6250c71c34baf4ec663d3281ef6802d46
5
5
  SHA512:
6
- metadata.gz: f22eb2bf0b1a2c997130526d5e4e747f7e9ef2b1f6ac5aac2e7554516ad6b05127444828f2cf0d08480c328c3339f2f18893dd85cd91aa3b486062caf853715d
7
- data.tar.gz: d3ae25e2559afaa74439bad1e50ed450e165ea9ca5fd4ca58216b46dfef629b5aa104b6d0ff36d99ff405df16380b182e92b7faf8aa4059bd5b63915c751cdda
6
+ metadata.gz: bdd7697218f80a8a164de2382b381cfffb4d3411cbbf9c2b4dc284f6e57df414e46555935a3bc7608859224043899cf76a3f47027b348632e9bc6434075b569b
7
+ data.tar.gz: c867fe2cc5f53b8a2a573dfd1a48dc85ae548e0977111467cb6904a3033ff0773d5c0f7809602ce6ebb76dc5c6fdd9b49781e9321185aec94811015571c30a6f
data/.travis.yml CHANGED
@@ -1,5 +1,7 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
+ - 2.2.3
4
5
  - 2.3.1
6
+ - 2.4.0
5
7
  before_install: gem install bundler -v 1.12.5
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.3.3
6
+
7
+ ### Added
8
+ * Added notice on using Sequel `v5` when requiring string literals on queries or namespaces. [#12](https://github.com/contentful/contentful-database-importer.rb/issues/12)
9
+
10
+ ### Fixed
11
+ * Fixed Merge tables not properly working.
12
+
5
13
  ## 0.3.2
6
14
 
7
15
  ### Fixed
data/README.md CHANGED
@@ -98,6 +98,10 @@ class MyTable
98
98
  end
99
99
  ```
100
100
 
101
+ For specifying namespaces for your tables, use `self.table_name = :namespace__table_name`.
102
+
103
+ If planning to upgrade to Sequel `v5`, and require namespaces, at the beggining of your file add: `Sequel.split_symbols = true`. This will allow to properly handle the namespaces.
104
+
101
105
  #### Overriding Table and Content Type ID
102
106
 
103
107
  The methods `::table_name=` and `::content_type_id=` allow you to override the IDs for either the table or content type.
@@ -242,6 +246,8 @@ class MyResource
242
246
  end
243
247
  ```
244
248
 
249
+ If planning to upgrade to Sequel `v5`, use `self.query = Sequel.lit("foo = 'bar' AND baz > 2")`. Sequel is deprecating string literals and allowing only this new method.
250
+
245
251
  ### Configuration
246
252
 
247
253
  ```ruby
@@ -30,7 +30,9 @@ module Contentful
30
30
 
31
31
  if prev_ct_definition
32
32
  result[:contentTypes].delete(prev_ct_definition)
33
- content_type_definition.merge!(prev_ct_definition)
33
+ content_type_definition = Support.merge(
34
+ prev_ct_definition, content_type_definition
35
+ )
34
36
  end
35
37
 
36
38
  result[:contentTypes] << content_type_definition
@@ -56,16 +58,16 @@ module Contentful
56
58
  result
57
59
  )
58
60
 
59
- return unless prev_entry
61
+ return entry_definition unless prev_entry
60
62
 
61
63
  result[:entries][content_type_definition[:id]].delete(prev_entry)
62
- entry_definition.merge!(prev_entry)
64
+ Support.merge(prev_entry, entry_definition)
63
65
  end
64
66
 
65
67
  def self.create_entry(entry, content_type_definition, result)
66
68
  entry_definition = entry.to_bootstrap
67
69
 
68
- merge_entries(entry_definition, content_type_definition, result)
70
+ entry_definition = merge_entries(entry_definition, content_type_definition, result)
69
71
 
70
72
  result[:assets].concat(entry.associated_assets) unless entry.associated_assets.empty?
71
73
 
@@ -46,7 +46,7 @@ module Contentful
46
46
  def array_link?(field_data)
47
47
  (field_data[:type] == :array && field_data[:item_type] == :asset) ||
48
48
  (resource?(field_data[:type]) &&
49
- [:many, :through].include?(field_data[:relationship]))
49
+ %i[many through].include?(field_data[:relationship]))
50
50
  end
51
51
 
52
52
  def array_link_type(field_data)
@@ -61,7 +61,7 @@ module Contentful
61
61
  def array?(field_data)
62
62
  field_data[:type] == :array ||
63
63
  (resource?(field_data[:type]) &&
64
- [:many, :through].include?(field_data[:relationship]))
64
+ %i[many through].include?(field_data[:relationship]))
65
65
  end
66
66
 
67
67
  def resource?(other)
@@ -70,10 +70,16 @@ module Contentful
70
70
 
71
71
  def all
72
72
  entries = []
73
- rows = table.where(query).all
73
+ rows = if query.nil?
74
+ table.all
75
+ else
76
+ table.where(query).all
77
+ end
78
+
74
79
  rows.each_with_index do |row, index|
75
80
  entries << new(row, index)
76
81
  end
82
+
77
83
  entries
78
84
  end
79
85
  end
@@ -3,7 +3,7 @@ module Contentful
3
3
  # Relationship methods for Resource
4
4
  module ResourceRelationships
5
5
  def fetch_relations(relationship_field_definition)
6
- relations = [:many, :one, :through]
6
+ relations = %i[many one through]
7
7
  if relations.include?(relationship_field_definition[:relationship])
8
8
  return send(
9
9
  "fetch_#{relationship_field_definition[:relationship]}".to_sym,
@@ -9,6 +9,31 @@ module Contentful
9
9
  .tr('-', '_')
10
10
  .downcase
11
11
  end
12
+
13
+ def self.deep_hash_merge(hash1, hash2)
14
+ result = {}
15
+ hash1.each do |key, value|
16
+ value2 = hash2[key]
17
+ result[key] = merge(value, value2)
18
+ end
19
+
20
+ hash2.each do |key, value|
21
+ next if hash1.keys.include?(key)
22
+ result[key] = value
23
+ end
24
+
25
+ result
26
+ end
27
+
28
+ def self.merge(value, value2)
29
+ if value.is_a?(::Hash) && value2.is_a?(::Hash)
30
+ deep_hash_merge(value, value2)
31
+ elsif value.is_a?(::Array) && value2.is_a?(::Array)
32
+ value + value2
33
+ else
34
+ value || value2
35
+ end
36
+ end
12
37
  end
13
38
  end
14
39
  end
@@ -1,5 +1,5 @@
1
1
  module Contentful
2
2
  module DatabaseImporter
3
- VERSION = '0.3.2'.freeze
3
+ VERSION = '0.3.3'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contentful-database-importer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Contentful GmbH (David Litvak Bruno)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-12 00:00:00.000000000 Z
11
+ date: 2017-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: contentful_bootstrap
@@ -247,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  requirements: []
249
249
  rubyforge_project:
250
- rubygems_version: 2.5.1
250
+ rubygems_version: 2.6.11
251
251
  signing_key:
252
252
  specification_version: 4
253
253
  summary: Tool to import content from a Database to Contentful