imp_exp 1.0.0 → 1.0.2

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
  SHA256:
3
- metadata.gz: b947ce095504a9bc4f41b60310670a169259363d84af4518b281b099590770fa
4
- data.tar.gz: d959c36041d86fee8c74190434ccc2d23f93259b29ce627ceaabc72a002454eb
3
+ metadata.gz: e7f2b63cfa24b1f1d1b210c163843a6fda15a4eee82fd8f875e3944f438bb0ec
4
+ data.tar.gz: d42e8694afc0653e5c9f9a7a4e9345bb1375e515a4c97b28100b8109f7aa78d4
5
5
  SHA512:
6
- metadata.gz: 361153041533b315f3e2277366511738aade7726a802652b19da6a54590f3f2d36b4bd6ff7a13e28fd1690c13791e6e8e3bb6355e425ac299d6f829fe3ddee71
7
- data.tar.gz: 4129a1910c806240b85dfbb1d5bf0e0cf07afe8321d23b47dac4da37da9361ee2189ee2427c6122147302553e2f9571ec17cc040f40518f6a652a29d35e8829b
6
+ metadata.gz: 05ad19e47c62b9fa6b0cf2a2522215c4e6bed74955c243788ef2745e4f97809db4fb3f89c8b75c6dd8dd5b8f8331a77676c38899ad1e4c8b5d5b314b852b7482
7
+ data.tar.gz: cc8de48c25302a940800a8095c9ce03f2eb913e2d7ee0a9782828c9927d9ffbbb9c37a2b8d973b60e0ccc910ff24a34c784b4aa4f34e33b4e4306a37cc7e625d
@@ -50,7 +50,7 @@ module ImpExp
50
50
  { imported: imported, import_errors: errors }
51
51
  end
52
52
 
53
- def import_model_data(model, model_data, files_directory_path)
53
+ def import_model_data(model, model_data, files_directory_path) # rubocop:disable Metrics/MethodLength
54
54
  model_data.each_with_index do |row, i|
55
55
  line = ROW_OFFSET + i + 1
56
56
  model_name = model.model_name
@@ -76,6 +76,7 @@ module ImpExp
76
76
  attach_files(record, files_directory_path, model, row, line) if files_directory_path.present?
77
77
 
78
78
  if record.save(context: :import)
79
+ after_save(record)
79
80
  @imported[model.model_name] += 1
80
81
  next
81
82
  end
@@ -86,6 +87,8 @@ module ImpExp
86
87
 
87
88
  private
88
89
 
90
+ def after_save(_record); end
91
+
89
92
  def raise_rescued_standard_error?
90
93
  Rails.env.test? || Rails.env.development?
91
94
  end
@@ -99,25 +99,29 @@ module ImpExp
99
99
  def rows(scoping_parent)
100
100
  rows = []
101
101
  preload_associations(order(scoped(scoping_parent))).each do |record|
102
- data = record.slice(attribute_names)
103
- attribute_names.each do |attribute_name|
104
- serializer = attribute_options(attribute_name)[:serializer]
105
- data[attribute_name] = serializer.dump(record, attribute_name) if serializer
106
- end
107
- data = data.values
108
- relation_names.each do |relation_name|
109
- serializer = relation_options(relation_name)[:serializer]
110
- data << serializer.dump(record, relation_name)
111
- end
112
- data.concat(file_attribute_names.map do |file_attribute_name|
113
- file = record.send(file_attribute_name)
114
- "#{files_directory_path}/#{filename(file)}" if file.attached?
115
- end)
116
- rows << data
102
+ rows << row(record)
117
103
  end
118
104
  rows
119
105
  end
120
106
 
107
+ def row(record)
108
+ data = record.slice(attribute_names)
109
+ attribute_names.each do |attribute_name|
110
+ serializer = attribute_options(attribute_name)[:serializer]
111
+ data[attribute_name] = serializer.dump(record, attribute_name) if serializer
112
+ end
113
+ data = data.values
114
+ relation_names.each do |relation_name|
115
+ serializer = relation_options(relation_name)[:serializer]
116
+ data << serializer.dump(record, relation_name)
117
+ end
118
+ data.concat(file_attribute_names.map do |file_attribute_name|
119
+ file = record.send(file_attribute_name)
120
+ "#{files_directory_path}/#{filename(file)}" if file.attached?
121
+ end)
122
+ data
123
+ end
124
+
121
125
  def files(scoping_parent)
122
126
  scoped(scoping_parent).flat_map do |record|
123
127
  record.slice(file_attribute_names).values.select(&:attached?)
@@ -7,4 +7,4 @@ fr:
7
7
  wrong_format: "Erreur de format : %{message}."
8
8
  model_errors: "Feuille %{model_name} - Ligne %{line} : %{messages}"
9
9
  data_validation_error: "Feuille %{model_name} - Ligne %{line} - Colonne \"%{column}\" : valeur \"%{value}\" incorrecte, valeur attendue : %{expected}"
10
- file_not_found: "Fichier %{file_path} non trouvé."
10
+ file_not_found: "Fichier %{file_path} non trouvé."
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ImpExp
4
- VERSION = "1.0.0"
4
+ VERSION = "1.0.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imp_exp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
- - Nicolas Florentin
7
+ - Dev team Nerya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-31 00:00:00.000000000 Z
11
+ date: 2024-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caxlsx
@@ -69,7 +69,7 @@ dependencies:
69
69
  description: Import data from xlsx into a rails app and export data to xlsx from a
70
70
  rails app
71
71
  email:
72
- - nicolas@sleede.com
72
+ - dev@nerya.fr
73
73
  executables: []
74
74
  extensions: []
75
75
  extra_rdoc_files: []
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  requirements: []
125
- rubygems_version: 3.4.10
125
+ rubygems_version: 3.4.19
126
126
  signing_key:
127
127
  specification_version: 4
128
128
  summary: Import data from xlsx into a rails app and export data to xlsx from a rails