imp_exp 1.0.0 → 1.0.2

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
  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