active_admin_simple_import 0.0.2 → 0.0.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: 52158899ac1762aca159b57c88b7673965235ba9
4
- data.tar.gz: 14b0f5a519867f8a8e3a1a31c6f95154dbfbab84
3
+ metadata.gz: 502c74ea4b01efe146f79e7c99d5bf431da2a067
4
+ data.tar.gz: 276f877405ae5f42077d302cd98242ec47eff7b7
5
5
  SHA512:
6
- metadata.gz: d4cb86bd8786c01d237bee94b86e86e9a07320befd1a58dacef423081e61e74894e173ef2f2a3cf5deb5dc486cc41e0d5530eda98977e9408df82af25cf14f02
7
- data.tar.gz: 8f6d40e9e53c1270367a5ef11ce3a9b55518d1e6ad1565c4bd0d2169428f32de091c59c17019cc3f9236b6cb53ea0cea923ce9941b86daf655a0c9c45b0e0198
6
+ metadata.gz: 6c3c3012d3eb31be65a46113d88d1800ac8c35473675a5c6c4153a01c9c104f6b3c7847671676f7d19c34593662b22ea6c05811065577515b3f600dab804b845
7
+ data.tar.gz: 309f2d68652d04a39acd191ca5833869ddd155d6a82568e6391375e4410e57463306d218784ca219a26c9ae2f732c2015c108f33d4c8298a494070a4317bcb4a
@@ -1,41 +1,5 @@
1
1
  require 'active_admin'
2
- require 'rails'
3
- require "active_support/dependencies"
2
+ require 'active_admin_import/engine'
3
+ require 'active_admin_import/dsl'
4
4
 
5
- module ActiveAdminSimpleImport
6
- class Engine < Rails::Engine
7
- initialize "active_admin_simple_import.load_app_instance_data" do |app|
8
- ActiveAdminSimpleImport.setup do |config|
9
- config.app_root = app.root
10
- end
11
- end
12
-
13
- config.mount_at = '/'
14
- end
15
-
16
- module DSL
17
- def active_admin_import(options)
18
- options = { exclusion_list: [], after_update: nil }
19
- .merge options
20
-
21
- collection_action :import, method: :get do
22
- render template: 'admin/import'
23
- end
24
-
25
- collection_action :do_import, method: :post do
26
- rows = CSV.read params[:csv][:file].tempfile
27
- attrs = rows.shift.map{ |a| a.parameterize('_').to_sym }
28
- object_class = controller_name.singularize.camelize.constantize
29
- objects = rows.map{ |row| Hash[*attrs.zip(row).flatten] }
30
- objects.each do |object|
31
- edited_object = object_class.find object.delete :id
32
- edited_object.update_attributes object.except(*options[:exclusion_list])
33
- next if options[:after_update].nil? || !options[:after_update].is_a?(Proc)
34
- options[:after_update].call(edited_object, object)
35
- end
36
- redirect_to collection_path, notice: 'Zaimportowana plik CSV!'
37
- end
38
- end
39
- end
40
- end
41
5
  ::ActiveAdmin::DSL.send(:include, ActiveAdminSimpleImport::DSL)
@@ -0,0 +1,26 @@
1
+ module ActiveAdminSimpleImport
2
+ module DSL
3
+ def active_admin_import(options)
4
+ options = { exclusion_list: [], after_update: nil }
5
+ .merge options
6
+
7
+ collection_action :import, method: :get do
8
+ render template: 'admin/import'
9
+ end
10
+
11
+ collection_action :do_import, method: :post do
12
+ rows = CSV.read params[:csv][:file].tempfile
13
+ attrs = rows.shift.map{ |a| a.parameterize('_').to_sym }
14
+ object_class = controller_name.singularize.camelize.constantize
15
+ objects = rows.map{ |row| Hash[*attrs.zip(row).flatten] }
16
+ objects.each do |object|
17
+ edited_object = object_class.find object.delete :id
18
+ edited_object.update_attributes object.except(*options[:exclusion_list])
19
+ next if options[:after_update].nil? || !options[:after_update].is_a?(Proc)
20
+ options[:after_update].call(edited_object, object)
21
+ end
22
+ redirect_to collection_path, notice: 'Zaimportowana plik CSV!'
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,8 @@
1
+ require 'rails'
2
+ require "active_support/dependencies"
3
+
4
+ module ActiveAdminSimpleImport
5
+ class Engine < Rails::Engine
6
+ config.mount_at = '/'
7
+ end
8
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_admin_simple_import
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Romanów
@@ -17,6 +17,8 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/active_admin_simple_import.rb
20
+ - lib/active_admin_simple_import/dsl.rb
21
+ - lib/active_admin_simple_import/engine.rb
20
22
  homepage: https://github.com/HarenBroog/active_admin_simple_import
21
23
  licenses:
22
24
  - MIT