datashift 0.10.1 → 0.10.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.
- data/Rakefile +6 -1
- data/VERSION +1 -1
- data/datashift.gemspec +13 -6
- data/lib/datashift.rb +2 -20
- data/lib/datashift/exceptions.rb +2 -0
- data/lib/datashift/method_detail.rb +15 -29
- data/lib/datashift/method_dictionary.rb +36 -21
- data/lib/datashift/method_mapper.rb +56 -16
- data/lib/datashift/populator.rb +23 -0
- data/lib/datashift/querying.rb +86 -0
- data/lib/generators/csv_generator.rb +1 -4
- data/lib/generators/excel_generator.rb +28 -11
- data/lib/generators/generator_base.rb +12 -0
- data/lib/loaders/csv_loader.rb +9 -3
- data/lib/loaders/excel_loader.rb +14 -6
- data/lib/loaders/loader_base.rb +38 -125
- data/lib/loaders/paperclip/attachment_loader.rb +130 -62
- data/lib/loaders/paperclip/datashift_paperclip.rb +46 -12
- data/lib/loaders/paperclip/image_loading.rb +25 -41
- data/lib/thor/generate.thor +16 -6
- data/lib/thor/paperclip.thor +25 -5
- data/spec/Gemfile +3 -2
- data/spec/MissingAttachmentRecords/DEMO_001_ror_bag.jpeg +0 -0
- data/spec/{fixtures/images/DEMO_002_Powerstation.jpg → MissingAttachmentRecords/DEMO_002_Powerstation.jpeg} +0 -0
- data/spec/MissingAttachmentRecords/DEMO_002_Powerstation.jpg +0 -0
- data/spec/MissingAttachmentRecords/DEMO_003_ror_mug.jpeg +0 -0
- data/spec/MissingAttachmentRecords/DEMO_004_ror_ringer.jpeg +0 -0
- data/spec/excel_generator_spec.rb +28 -0
- data/spec/excel_loader_spec.rb +12 -17
- data/spec/fixtures/config/database.yml +1 -1
- data/spec/fixtures/db/datashift_test_models_db.sqlite +0 -0
- data/spec/fixtures/db/migrate/20121009161700_add_digitals.rb +24 -0
- data/spec/fixtures/images/DEMO_002_Powerstation.jpeg +0 -0
- data/spec/fixtures/models/digital.rb +14 -0
- data/spec/fixtures/models/owner.rb +5 -3
- data/spec/fixtures/test_model_defs.rb +4 -62
- data/spec/loader_spec.rb +42 -50
- data/spec/method_dictionary_spec.rb +3 -10
- data/spec/method_mapper_spec.rb +79 -20
- data/spec/paperclip_loader_spec.rb +95 -0
- data/spec/spec_helper.rb +44 -8
- metadata +236 -224
- data/lib/helpers/rake_utils.rb +0 -42
- data/spec/fixtures/models/test_model_defs.rb +0 -67
data/spec/method_mapper_spec.rb
CHANGED
@@ -7,37 +7,96 @@
|
|
7
7
|
# MethodMapper provides the bridge between 'strings' e.g column headings
|
8
8
|
# and a classes different types of assignment operators
|
9
9
|
#
|
10
|
-
require File.dirname(__FILE__)
|
10
|
+
require File.join(File.dirname(__FILE__), 'spec_helper')
|
11
11
|
|
12
|
-
|
12
|
+
require 'method_mapper'
|
13
13
|
|
14
|
-
|
14
|
+
describe 'Method Mapper' do
|
15
|
+
|
16
|
+
include_context "ActiveRecordTestModelsConnected"
|
17
|
+
|
18
|
+
before(:each) do
|
19
|
+
DataShift::MethodDictionary.clear
|
15
20
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
21
|
+
@method_mapper = DataShift::MethodMapper.new
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should find a set of methods based on a list of column symbols" do
|
25
|
+
|
26
|
+
headers = [:value_as_string, :owner, :value_as_boolean, :value_as_double]
|
27
|
+
|
28
|
+
method_details = @method_mapper.map_inbound_headers_to_methods( Project, headers )
|
29
|
+
|
30
|
+
method_details.should have_exactly(4).items
|
31
|
+
end
|
20
32
|
|
21
|
-
|
33
|
+
it "should leave nil in set of methods when no such operator" do
|
34
|
+
|
35
|
+
headers = [:value_as_string, :owner, :bad_no_such_column, :value_as_boolean, :value_as_double, :more_rubbish_as_nil]
|
36
|
+
|
37
|
+
method_details = @method_mapper.map_inbound_headers_to_methods( Project, headers )
|
38
|
+
|
39
|
+
method_details.should have_exactly(6).items
|
40
|
+
|
41
|
+
method_details[2].should be_nil
|
42
|
+
method_details[5].should be_nil
|
43
|
+
|
44
|
+
method_details[0].should be_a DataShift::MethodDetail
|
45
|
+
|
22
46
|
end
|
23
47
|
|
24
|
-
|
25
|
-
|
48
|
+
it "should map a list of column names to a set of method details" do
|
49
|
+
|
50
|
+
headers = %w{ value_as_double value_as_string bad_no_such_column value_as_boolean }
|
26
51
|
|
27
|
-
|
28
|
-
MethodDictionary.find_operators( Milestone )
|
52
|
+
@method_mapper.map_inbound_headers_to_methods( Project, headers )
|
29
53
|
|
54
|
+
method_details = @method_mapper.map_inbound_headers_to_methods( Project, headers )
|
30
55
|
|
31
|
-
|
32
|
-
MethodDictionary.build_method_details( Milestone )
|
56
|
+
method_details.should have_exactly(4).items
|
33
57
|
|
58
|
+
method_details[2].should be_nil
|
59
|
+
|
60
|
+
method_details[0].should be_a DataShift::MethodDetail
|
61
|
+
method_details.last.should be_a DataShift::MethodDetail
|
34
62
|
end
|
35
|
-
|
36
|
-
it "should
|
37
|
-
pending("key API - map column headers to set of methods")
|
63
|
+
|
64
|
+
it "should populate a method detail instance based on column and database info" do
|
38
65
|
|
39
|
-
|
66
|
+
headers = [:value_as_string, :owner, :value_as_boolean, :value_as_double]
|
67
|
+
|
68
|
+
method_details = @method_mapper.map_inbound_headers_to_methods( Project, headers )
|
69
|
+
|
70
|
+
method_details.should have_exactly(4).items
|
71
|
+
|
72
|
+
method_details[0].should be_a DataShift::MethodDetail
|
73
|
+
|
74
|
+
headers.each_with_index do |c, i|
|
75
|
+
method_details[i].column_index.should == i
|
76
|
+
end
|
77
|
+
|
40
78
|
end
|
41
|
-
|
42
|
-
|
79
|
+
|
80
|
+
it "should map between user name and real class operator and store in method detail instance" do
|
81
|
+
|
82
|
+
headers = [ "Value as string", 'owner', "value_as boolean", 'Value_As_Double']
|
83
|
+
|
84
|
+
operators = %w{ value_as_string owner value_as_boolean value_as_double }
|
85
|
+
|
86
|
+
method_details = @method_mapper.map_inbound_headers_to_methods( Project, headers )
|
87
|
+
|
88
|
+
method_details.should have_exactly(4).items
|
89
|
+
|
90
|
+
method_details.should_not include nil
|
91
|
+
|
92
|
+
headers.each_with_index do |c, i|
|
93
|
+
method_details[i].column_index.should == i
|
94
|
+
method_details[i].name.should == c
|
95
|
+
method_details[i].operator.should == operators[i]
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
|
43
102
|
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# Copyright:: (c) Autotelik Media Ltd 2011
|
2
|
+
# Author :: Tom Statter
|
3
|
+
# Date :: Aug 2011
|
4
|
+
# License:: MIT
|
5
|
+
#
|
6
|
+
# Details:: Specs for base class Loader
|
7
|
+
#
|
8
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
9
|
+
|
10
|
+
require 'paperclip/attachment_loader'
|
11
|
+
|
12
|
+
Paperclip.options[:command_path] = "/usr/local/bin/"
|
13
|
+
|
14
|
+
describe 'PaperClip Bulk Loader' do
|
15
|
+
|
16
|
+
include_context "ActiveRecordTestModelsConnected"
|
17
|
+
|
18
|
+
include_context "ClearAndPopulateProject"
|
19
|
+
|
20
|
+
include DataShift::Logging
|
21
|
+
|
22
|
+
module Paperclip
|
23
|
+
module Interpolations
|
24
|
+
|
25
|
+
# Returns the Rails.root constant.
|
26
|
+
def rails_root attachment, style_name
|
27
|
+
'.'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
before(:each) do
|
33
|
+
@attachment_klass = Digital
|
34
|
+
|
35
|
+
@common_options = {:verbose => true }
|
36
|
+
|
37
|
+
@attachment_path = File.join(fixtures_path, 'images')
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should create a new paperclip loader and define attachment class" do
|
41
|
+
loader = DataShift::Paperclip::AttachmentLoader.new(@attachment_klass, nil, @common_options)
|
42
|
+
|
43
|
+
loader.load_object_class.should == Digital
|
44
|
+
loader.load_object.should be_a Digital
|
45
|
+
|
46
|
+
loader.attach_to_klass.should == nil
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should create loader,define attachment class and define class to attach to" do
|
50
|
+
|
51
|
+
opts = { :attach_to_klass => Owner }.merge(@common_options)
|
52
|
+
|
53
|
+
loader = DataShift::Paperclip::AttachmentLoader.new(@attachment_klass, nil, opts)
|
54
|
+
|
55
|
+
loader.attach_to_klass.should == Owner
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should bulk load from a directory file system", :fail => true do
|
59
|
+
|
60
|
+
# these names should be included in the attachment file name somewhere
|
61
|
+
["DEMO_001", "DEMO_002", "DEMO_003", "DEMO_004"].each do |n|
|
62
|
+
Owner.create( :name => n )
|
63
|
+
end
|
64
|
+
|
65
|
+
opts = { :attach_to_klass => Owner,
|
66
|
+
:attach_to_find_by_field => :name,
|
67
|
+
:attach_to_field => :digitals,
|
68
|
+
:split_file_name_on => '_'
|
69
|
+
}.merge(@common_options)
|
70
|
+
|
71
|
+
loader = DataShift::Paperclip::AttachmentLoader.new(@attachment_klass, nil, opts)
|
72
|
+
|
73
|
+
loader.process_from_filesystem(@attachment_path, opts)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should handle not beign able to find matching record" do
|
77
|
+
|
78
|
+
# these names should be included in the attachment file name somewhere
|
79
|
+
names = ["DEMO_001", "DEMO_002", "DEMO_003", "DEMO_004"]
|
80
|
+
|
81
|
+
names.each do |n|
|
82
|
+
Owner.create( :name => n )
|
83
|
+
end
|
84
|
+
|
85
|
+
opts = { :attach_to_klass => Owner, :attach_to_find_by_field => :name }.merge(@common_options)
|
86
|
+
|
87
|
+
|
88
|
+
loader = DataShift::Paperclip::AttachmentLoader.new(@attachment_klass, nil, opts)
|
89
|
+
|
90
|
+
loader.process_from_filesystem(@attachment_path, opts)
|
91
|
+
|
92
|
+
Dir.glob("MissingAttachmentRecords/*.jpeg", File::FNM_CASEFOLD).should have_exactly(names.size).items
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -13,16 +13,53 @@ require 'active_record'
|
|
13
13
|
require 'thor/actions'
|
14
14
|
require 'bundler'
|
15
15
|
require 'stringio'
|
16
|
+
require 'paperclip'
|
17
|
+
|
18
|
+
$:.unshift '.' # 1.9.3 quite strict, '.' must be in load path for relative paths to work from here
|
19
|
+
|
20
|
+
datashift_spec_base = File.expand_path( File.join(File.dirname(__FILE__), '..') )
|
21
|
+
|
22
|
+
require File.join(datashift_spec_base, 'lib/datashift')
|
16
23
|
|
17
|
-
require File.dirname(__FILE__) + '/../lib/datashift'
|
18
24
|
|
19
25
|
RSpec.configure do |config|
|
20
26
|
config.before do
|
21
27
|
ARGV.replace []
|
22
28
|
end
|
23
29
|
|
30
|
+
shared_context "ActiveRecordTestModelsConnected" do
|
31
|
+
|
32
|
+
before(:all) do
|
33
|
+
bundler_setup()
|
34
|
+
|
35
|
+
# load all test model definitions - Project etc
|
36
|
+
require ifixture_file('test_model_defs')
|
37
|
+
|
38
|
+
db_connect( 'test_file' ) # , test_memory, test_mysql
|
24
39
|
|
40
|
+
migrate_up
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
shared_context "ClearAndPopulateProject" do
|
46
|
+
|
47
|
+
before(:each) do
|
48
|
+
|
49
|
+
Project.delete_all
|
50
|
+
Owner.delete_all
|
51
|
+
|
52
|
+
DataShift::MethodDictionary.clear
|
25
53
|
|
54
|
+
DataShift::MethodDictionary.find_operators( Project )
|
55
|
+
|
56
|
+
DataShift::MethodDictionary.build_method_details( Project )
|
57
|
+
|
58
|
+
DataShift::MethodDictionary.for?(Project).should == true
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
26
63
|
def run_in(dir )
|
27
64
|
puts "RSpec .. running test in path [#{dir}]"
|
28
65
|
original_dir = Dir.pwd
|
@@ -45,8 +82,8 @@ RSpec.configure do |config|
|
|
45
82
|
end
|
46
83
|
|
47
84
|
result
|
48
|
-
end
|
49
|
-
|
85
|
+
end
|
86
|
+
|
50
87
|
alias :silence :capture
|
51
88
|
|
52
89
|
def fixtures_path()
|
@@ -79,7 +116,7 @@ RSpec.configure do |config|
|
|
79
116
|
def set_logger( name = 'datashift_spec.log')
|
80
117
|
|
81
118
|
require 'logger'
|
82
|
-
logdir = File.dirname(__FILE__)
|
119
|
+
logdir = File.join(File.dirname(__FILE__), 'log')
|
83
120
|
FileUtils.mkdir_p(logdir) unless File.exists?(logdir)
|
84
121
|
ActiveRecord::Base.logger = Logger.new( File.join(logdir, name) )
|
85
122
|
|
@@ -88,7 +125,8 @@ RSpec.configure do |config|
|
|
88
125
|
@dslog = ActiveRecord::Base.logger
|
89
126
|
end
|
90
127
|
|
91
|
-
def bundler_setup(gemfile)
|
128
|
+
def bundler_setup(gemfile = File.join(DataShift::root_path, 'spec', 'Gemfile') )
|
129
|
+
|
92
130
|
$stderr.puts "No Such Gemfile #{gemfile}" unless File.exists?(gemfile)
|
93
131
|
|
94
132
|
ENV['BUNDLE_GEMFILE'] = gemfile
|
@@ -112,9 +150,7 @@ RSpec.configure do |config|
|
|
112
150
|
end
|
113
151
|
|
114
152
|
def db_connect( env = 'test_file')
|
115
|
-
|
116
|
-
bundler_setup( File.join(DataShift::root_path, 'spec', 'Gemfile') )
|
117
|
-
|
153
|
+
|
118
154
|
# Some active record stuff seems to rely on the RAILS_ENV being set ?
|
119
155
|
|
120
156
|
ENV['RAILS_ENV'] = env
|
metadata
CHANGED
@@ -1,244 +1,256 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: datashift
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.10.2
|
4
5
|
prerelease:
|
5
|
-
version: 0.10.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
|
7
|
+
authors:
|
8
|
+
- Thomas Statter
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
12
|
+
date: 2012-10-21 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: spreadsheet
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rubyzip
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: Comprehensive tools to import/export between Excel/CSV and ActiveRecord
|
47
|
+
databases, Rails apps, and any Ruby project.
|
38
48
|
email: rubygems@autotelik.co.uk
|
39
49
|
executables: []
|
40
|
-
|
41
50
|
extensions: []
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
51
|
+
extra_rdoc_files:
|
52
|
+
- LICENSE.txt
|
53
|
+
- README.markdown
|
54
|
+
- README.rdoc
|
55
|
+
files:
|
56
|
+
- .document
|
57
|
+
- LICENSE.txt
|
58
|
+
- README.markdown
|
59
|
+
- README.rdoc
|
60
|
+
- Rakefile
|
61
|
+
- VERSION
|
62
|
+
- datashift.gemspec
|
63
|
+
- lib/applications/apache_poi_extensions.rb
|
64
|
+
- lib/applications/excel.rb
|
65
|
+
- lib/applications/excel_base.rb
|
66
|
+
- lib/applications/jexcel_file.rb
|
67
|
+
- lib/applications/jexcel_file_extensions.rb
|
68
|
+
- lib/applications/jruby/old_pre_proxy_jexcel_file.rb
|
69
|
+
- lib/applications/jruby/word.rb
|
70
|
+
- lib/applications/ruby_poi_translations.rb
|
71
|
+
- lib/applications/spreadsheet_extensions.rb
|
72
|
+
- lib/datashift.rb
|
73
|
+
- lib/datashift/delimiters.rb
|
74
|
+
- lib/datashift/exceptions.rb
|
75
|
+
- lib/datashift/file_definitions.rb
|
76
|
+
- lib/datashift/logging.rb
|
77
|
+
- lib/datashift/mapping_file_definitions.rb
|
78
|
+
- lib/datashift/method_detail.rb
|
79
|
+
- lib/datashift/method_details_manager.rb
|
80
|
+
- lib/datashift/method_dictionary.rb
|
81
|
+
- lib/datashift/method_mapper.rb
|
82
|
+
- lib/datashift/model_mapper.rb
|
83
|
+
- lib/datashift/populator.rb
|
84
|
+
- lib/datashift/querying.rb
|
85
|
+
- lib/exporters/csv_exporter.rb
|
86
|
+
- lib/exporters/excel_exporter.rb
|
87
|
+
- lib/exporters/exporter_base.rb
|
88
|
+
- lib/generators/csv_generator.rb
|
89
|
+
- lib/generators/excel_generator.rb
|
90
|
+
- lib/generators/generator_base.rb
|
91
|
+
- lib/guards.rb
|
92
|
+
- lib/helpers/core_ext/to_b.rb
|
93
|
+
- lib/java/poi-3.7/._poi-3.7-20101029.jar5645100390082102460.tmp
|
94
|
+
- lib/java/poi-3.7/LICENSE
|
95
|
+
- lib/java/poi-3.7/NOTICE
|
96
|
+
- lib/java/poi-3.7/RELEASE_NOTES.txt
|
97
|
+
- lib/java/poi-3.7/lib/commons-logging-1.1.jar
|
98
|
+
- lib/java/poi-3.7/lib/junit-3.8.1.jar
|
99
|
+
- lib/java/poi-3.7/lib/log4j-1.2.13.jar
|
100
|
+
- lib/java/poi-3.7/ooxml-lib/dom4j-1.6.1.jar
|
101
|
+
- lib/java/poi-3.7/ooxml-lib/geronimo-stax-api_1.0_spec-1.0.jar
|
102
|
+
- lib/java/poi-3.7/ooxml-lib/xmlbeans-2.3.0.jar
|
103
|
+
- lib/java/poi-3.7/poi-3.7-20101029.jar
|
104
|
+
- lib/java/poi-3.7/poi-examples-3.7-20101029.jar
|
105
|
+
- lib/java/poi-3.7/poi-ooxml-3.7-20101029.jar
|
106
|
+
- lib/java/poi-3.7/poi-ooxml-schemas-3.7-20101029.jar
|
107
|
+
- lib/java/poi-3.7/poi-scratchpad-3.7-20101029.jar
|
108
|
+
- lib/loaders/csv_loader.rb
|
109
|
+
- lib/loaders/excel_loader.rb
|
110
|
+
- lib/loaders/loader_base.rb
|
111
|
+
- lib/loaders/paperclip/attachment_loader.rb
|
112
|
+
- lib/loaders/paperclip/datashift_paperclip.rb
|
113
|
+
- lib/loaders/paperclip/image_loading.rb
|
114
|
+
- lib/thor/export.thor
|
115
|
+
- lib/thor/generate.thor
|
116
|
+
- lib/thor/import.thor
|
117
|
+
- lib/thor/paperclip.thor
|
118
|
+
- lib/thor/tools.thor
|
119
|
+
- spec/Gemfile
|
120
|
+
- spec/MissingAttachmentRecords/DEMO_001_ror_bag.jpeg
|
121
|
+
- spec/MissingAttachmentRecords/DEMO_002_Powerstation.jpeg
|
122
|
+
- spec/MissingAttachmentRecords/DEMO_002_Powerstation.jpg
|
123
|
+
- spec/MissingAttachmentRecords/DEMO_003_ror_mug.jpeg
|
124
|
+
- spec/MissingAttachmentRecords/DEMO_004_ror_ringer.jpeg
|
125
|
+
- spec/csv_exporter_spec.rb
|
126
|
+
- spec/csv_loader_spec.rb
|
127
|
+
- spec/datashift_spec.rb
|
128
|
+
- spec/excel_exporter_spec.rb
|
129
|
+
- spec/excel_generator_spec.rb
|
130
|
+
- spec/excel_loader_spec.rb
|
131
|
+
- spec/excel_spec.rb
|
132
|
+
- spec/file_definitions.rb
|
133
|
+
- spec/fixtures/BadAssociationName.xls
|
134
|
+
- spec/fixtures/DemoNegativeTesting.xls
|
135
|
+
- spec/fixtures/ProjectsDefaults.yml
|
136
|
+
- spec/fixtures/ProjectsMultiCategories.xls
|
137
|
+
- spec/fixtures/ProjectsMultiCategoriesHeaderLookup.xls
|
138
|
+
- spec/fixtures/ProjectsSingleCategories.xls
|
139
|
+
- spec/fixtures/SimpleProjects.xls
|
140
|
+
- spec/fixtures/config/database.yml
|
141
|
+
- spec/fixtures/db/datashift_test_models_db.sqlite
|
142
|
+
- spec/fixtures/db/migrate/20110803201325_create_test_bed.rb
|
143
|
+
- spec/fixtures/db/migrate/20121009161700_add_digitals.rb
|
144
|
+
- spec/fixtures/images/DEMO_001_ror_bag.jpeg
|
145
|
+
- spec/fixtures/images/DEMO_002_Powerstation.jpeg
|
146
|
+
- spec/fixtures/images/DEMO_003_ror_mug.jpeg
|
147
|
+
- spec/fixtures/images/DEMO_004_ror_ringer.jpeg
|
148
|
+
- spec/fixtures/load_datashift.thor
|
149
|
+
- spec/fixtures/models/category.rb
|
150
|
+
- spec/fixtures/models/digital.rb
|
151
|
+
- spec/fixtures/models/empty.rb
|
152
|
+
- spec/fixtures/models/loader_release.rb
|
153
|
+
- spec/fixtures/models/long_and_complex_table_linked_to_version.rb
|
154
|
+
- spec/fixtures/models/milestone.rb
|
155
|
+
- spec/fixtures/models/owner.rb
|
156
|
+
- spec/fixtures/models/project.rb
|
157
|
+
- spec/fixtures/models/version.rb
|
158
|
+
- spec/fixtures/simple_export_spec.xls
|
159
|
+
- spec/fixtures/simple_template_spec.xls
|
160
|
+
- spec/fixtures/test_model_defs.rb
|
161
|
+
- spec/loader_spec.rb
|
162
|
+
- spec/method_dictionary_spec.rb
|
163
|
+
- spec/method_mapper_spec.rb
|
164
|
+
- spec/paperclip_loader_spec.rb
|
165
|
+
- spec/rails_sandbox/.gitignore
|
166
|
+
- spec/rails_sandbox/Gemfile
|
167
|
+
- spec/rails_sandbox/README.rdoc
|
168
|
+
- spec/rails_sandbox/Rakefile
|
169
|
+
- spec/rails_sandbox/app/assets/images/rails.png
|
170
|
+
- spec/rails_sandbox/app/assets/javascripts/application.js
|
171
|
+
- spec/rails_sandbox/app/assets/stylesheets/application.css
|
172
|
+
- spec/rails_sandbox/app/controllers/application_controller.rb
|
173
|
+
- spec/rails_sandbox/app/helpers/application_helper.rb
|
174
|
+
- spec/rails_sandbox/app/mailers/.gitkeep
|
175
|
+
- spec/rails_sandbox/app/models/.gitkeep
|
176
|
+
- spec/rails_sandbox/app/models/category.rb
|
177
|
+
- spec/rails_sandbox/app/models/empty.rb
|
178
|
+
- spec/rails_sandbox/app/models/loader_release.rb
|
179
|
+
- spec/rails_sandbox/app/models/long_and_complex_table_linked_to_version.rb
|
180
|
+
- spec/rails_sandbox/app/models/milestone.rb
|
181
|
+
- spec/rails_sandbox/app/models/owner.rb
|
182
|
+
- spec/rails_sandbox/app/models/project.rb
|
183
|
+
- spec/rails_sandbox/app/models/test_model_defs.rb
|
184
|
+
- spec/rails_sandbox/app/models/version.rb
|
185
|
+
- spec/rails_sandbox/app/views/layouts/application.html.erb
|
186
|
+
- spec/rails_sandbox/config.ru
|
187
|
+
- spec/rails_sandbox/config/application.rb
|
188
|
+
- spec/rails_sandbox/config/boot.rb
|
189
|
+
- spec/rails_sandbox/config/database.yml
|
190
|
+
- spec/rails_sandbox/config/environment.rb
|
191
|
+
- spec/rails_sandbox/config/environments/development.rb
|
192
|
+
- spec/rails_sandbox/config/environments/production.rb
|
193
|
+
- spec/rails_sandbox/config/environments/test.rb
|
194
|
+
- spec/rails_sandbox/config/initializers/backtrace_silencers.rb
|
195
|
+
- spec/rails_sandbox/config/initializers/inflections.rb
|
196
|
+
- spec/rails_sandbox/config/initializers/mime_types.rb
|
197
|
+
- spec/rails_sandbox/config/initializers/secret_token.rb
|
198
|
+
- spec/rails_sandbox/config/initializers/session_store.rb
|
199
|
+
- spec/rails_sandbox/config/initializers/wrap_parameters.rb
|
200
|
+
- spec/rails_sandbox/config/locales/en.yml
|
201
|
+
- spec/rails_sandbox/config/routes.rb
|
202
|
+
- spec/rails_sandbox/db/migrate/20110803201325_create_test_bed.rb
|
203
|
+
- spec/rails_sandbox/db/schema.rb
|
204
|
+
- spec/rails_sandbox/db/seeds.rb
|
205
|
+
- spec/rails_sandbox/lib/assets/.gitkeep
|
206
|
+
- spec/rails_sandbox/lib/tasks/.gitkeep
|
207
|
+
- spec/rails_sandbox/log/.gitkeep
|
208
|
+
- spec/rails_sandbox/public/404.html
|
209
|
+
- spec/rails_sandbox/public/422.html
|
210
|
+
- spec/rails_sandbox/public/500.html
|
211
|
+
- spec/rails_sandbox/public/favicon.ico
|
212
|
+
- spec/rails_sandbox/public/index.html
|
213
|
+
- spec/rails_sandbox/public/robots.txt
|
214
|
+
- spec/rails_sandbox/script/rails
|
215
|
+
- spec/rails_sandbox/test/fixtures/.gitkeep
|
216
|
+
- spec/rails_sandbox/test/functional/.gitkeep
|
217
|
+
- spec/rails_sandbox/test/integration/.gitkeep
|
218
|
+
- spec/rails_sandbox/test/performance/browsing_test.rb
|
219
|
+
- spec/rails_sandbox/test/test_helper.rb
|
220
|
+
- spec/rails_sandbox/test/unit/.gitkeep
|
221
|
+
- spec/rails_sandbox/vendor/assets/javascripts/.gitkeep
|
222
|
+
- spec/rails_sandbox/vendor/assets/stylesheets/.gitkeep
|
223
|
+
- spec/rails_sandbox/vendor/plugins/.gitkeep
|
224
|
+
- spec/spec_helper.rb
|
225
|
+
- spec/thor_spec.rb
|
226
|
+
- tasks/config/seed_fu_product_template.erb
|
227
|
+
- tasks/config/tidy_config.txt
|
228
|
+
- tasks/db_tasks.rake
|
229
|
+
- tasks/file_tasks.rake
|
230
|
+
- tasks/word_to_seedfu.rake
|
216
231
|
homepage: http://github.com/autotelik/datashift
|
217
|
-
licenses:
|
218
|
-
|
232
|
+
licenses:
|
233
|
+
- MIT
|
219
234
|
post_install_message:
|
220
235
|
rdoc_options: []
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
236
|
+
require_paths:
|
237
|
+
- lib
|
238
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
225
239
|
none: false
|
226
|
-
requirements:
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ! '>='
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
231
245
|
none: false
|
232
|
-
requirements:
|
233
|
-
|
234
|
-
|
235
|
-
|
246
|
+
requirements:
|
247
|
+
- - ! '>='
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: '0'
|
236
250
|
requirements: []
|
237
|
-
|
238
251
|
rubyforge_project:
|
239
|
-
rubygems_version: 1.8.
|
252
|
+
rubygems_version: 1.8.24
|
240
253
|
signing_key:
|
241
254
|
specification_version: 3
|
242
255
|
summary: Shift data betwen Excel/CSV and any Ruby app
|
243
256
|
test_files: []
|
244
|
-
|