acts_as_importable 0.4.4 → 0.4.5
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.
- data/README.rdoc +11 -0
- data/VERSION +1 -1
- data/acts_as_importable.gemspec +3 -3
- data/lib/import_export.rb +11 -1
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -51,6 +51,17 @@ Another example of the method above:
|
|
51
51
|
self.category_id = category.id if category
|
52
52
|
end
|
53
53
|
|
54
|
+
=== Modify data before import:
|
55
|
+
|
56
|
+
class Product
|
57
|
+
acts_as_importable :import_fields => ["name", "price"], :before_import => :modify_data
|
58
|
+
self.modify_data data_row
|
59
|
+
data_row[0] = "Modified data"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
If before_import is supplied, the given method (in this case 'modify_data') will be called on each row. Current row from csv file is passed to the given method as parameter, which can be modified here before object is created. The 'data_row' parameter is an array which represent a row in csv file.
|
64
|
+
|
54
65
|
==== Customizing the export fields:
|
55
66
|
|
56
67
|
You can specify a different list of fields to export if you want them to be different from the import fields e.g.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.5
|
data/acts_as_importable.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{acts_as_importable}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jagdeep Singh"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-22}
|
13
13
|
s.description = %q{Use this gem to add import/export to .csv functionality to your activerecord models}
|
14
14
|
s.email = %q{jagdeepkh@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -35,7 +35,7 @@ Gem::Specification.new do |s|
|
|
35
35
|
s.homepage = %q{https://github.com/Ennova/acts_as_importable}
|
36
36
|
s.licenses = ["MIT"]
|
37
37
|
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = %q{1.
|
38
|
+
s.rubygems_version = %q{1.6.1}
|
39
39
|
s.summary = %q{Makes your model importable from .csv and exportable to .csv}
|
40
40
|
|
41
41
|
if s.respond_to? :specification_version then
|
data/lib/import_export.rb
CHANGED
@@ -10,9 +10,10 @@ module ModelMethods
|
|
10
10
|
module ClassMethods
|
11
11
|
# any method placed here will apply to classes
|
12
12
|
def acts_as_importable(options = {})
|
13
|
-
cattr_accessor :import_fields, :export_fields
|
13
|
+
cattr_accessor :import_fields, :export_fields, :before_import
|
14
14
|
self.import_fields = options[:import_fields]
|
15
15
|
self.export_fields = options[:export_fields]
|
16
|
+
self.before_import = options[:before_import]
|
16
17
|
send :include, InstanceMethods
|
17
18
|
end
|
18
19
|
|
@@ -25,6 +26,15 @@ module ModelMethods
|
|
25
26
|
data.each_with_index do |data_row, index|
|
26
27
|
data_row.map{|d| d.strip! if d}
|
27
28
|
|
29
|
+
# method to modify data_row before import
|
30
|
+
if self.before_import
|
31
|
+
if self.respond_to? self.before_import
|
32
|
+
self.send(self.before_import, data_row)
|
33
|
+
else
|
34
|
+
raise "undefined before_import method '#{self.before_import}' for #{self} class"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
28
38
|
begin
|
29
39
|
class_or_association = scope_object ? scope_object.send(self.table_name) : self
|
30
40
|
if key_field = context[:find_existing_by]
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: acts_as_importable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.4.
|
5
|
+
version: 0.4.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jagdeep Singh
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-03-
|
13
|
+
date: 2011-03-22 00:00:00 +05:30
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -106,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
107
107
|
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
hash:
|
109
|
+
hash: -4426842945027895887
|
110
110
|
segments:
|
111
111
|
- 0
|
112
112
|
version: "0"
|
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements: []
|
120
120
|
|
121
121
|
rubyforge_project:
|
122
|
-
rubygems_version: 1.
|
122
|
+
rubygems_version: 1.6.1
|
123
123
|
signing_key:
|
124
124
|
specification_version: 3
|
125
125
|
summary: Makes your model importable from .csv and exportable to .csv
|