active_admin_simple_import 0.0.2 → 0.0.3

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