datashift 0.15.0 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.markdown +91 -55
- data/VERSION +1 -1
- data/datashift.gemspec +8 -23
- data/lib/applications/jexcel_file.rb +1 -2
- data/lib/datashift.rb +34 -15
- data/lib/datashift/column_packer.rb +98 -34
- data/lib/datashift/data_transforms.rb +83 -0
- data/lib/datashift/delimiters.rb +58 -10
- data/lib/datashift/excel_base.rb +123 -0
- data/lib/datashift/exceptions.rb +45 -7
- data/lib/datashift/load_object.rb +25 -0
- data/lib/datashift/mapping_service.rb +91 -0
- data/lib/datashift/method_detail.rb +40 -62
- data/lib/datashift/method_details_manager.rb +18 -2
- data/lib/datashift/method_dictionary.rb +27 -10
- data/lib/datashift/method_mapper.rb +49 -41
- data/lib/datashift/model_mapper.rb +42 -22
- data/lib/datashift/populator.rb +258 -143
- data/lib/datashift/thor_base.rb +38 -0
- data/lib/exporters/csv_exporter.rb +57 -145
- data/lib/exporters/excel_exporter.rb +73 -60
- data/lib/generators/csv_generator.rb +65 -5
- data/lib/generators/generator_base.rb +69 -3
- data/lib/generators/mapping_generator.rb +112 -0
- data/lib/helpers/core_ext/csv_file.rb +33 -0
- data/lib/loaders/csv_loader.rb +41 -39
- data/lib/loaders/excel_loader.rb +130 -116
- data/lib/loaders/loader_base.rb +190 -146
- data/lib/loaders/paperclip/attachment_loader.rb +4 -4
- data/lib/loaders/paperclip/datashift_paperclip.rb +5 -3
- data/lib/loaders/paperclip/image_loading.rb +9 -7
- data/lib/loaders/reporter.rb +17 -8
- data/lib/thor/export.thor +12 -13
- data/lib/thor/generate.thor +1 -9
- data/lib/thor/import.thor +13 -24
- data/lib/thor/mapping.thor +65 -0
- data/spec/Gemfile +13 -11
- data/spec/Gemfile.lock +98 -93
- data/spec/csv_exporter_spec.rb +104 -99
- data/spec/csv_generator_spec.rb +159 -0
- data/spec/csv_loader_spec.rb +197 -16
- data/spec/datashift_spec.rb +9 -0
- data/spec/excel_exporter_spec.rb +149 -58
- data/spec/excel_generator_spec.rb +35 -44
- data/spec/excel_loader_spec.rb +196 -178
- data/spec/excel_spec.rb +8 -5
- data/spec/loader_base_spec.rb +47 -7
- data/spec/mapping_spec.rb +117 -0
- data/spec/method_dictionary_spec.rb +24 -11
- data/spec/method_mapper_spec.rb +5 -7
- data/spec/model_mapper_spec.rb +41 -0
- data/spec/paperclip_loader_spec.rb +3 -6
- data/spec/populator_spec.rb +48 -14
- data/spec/spec_helper.rb +85 -73
- data/spec/thor_spec.rb +40 -5
- metadata +93 -86
- data/lib/applications/excel_base.rb +0 -63
data/spec/spec_helper.rb
CHANGED
@@ -9,58 +9,74 @@
|
|
9
9
|
# We are not setup as a Rails project so need to mimic an active record database setup so
|
10
10
|
# we have some AR models to test against. Create an in memory database from scratch.
|
11
11
|
#
|
12
|
+
|
13
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
14
|
+
ENV["RAILS_ENV"] ||= 'test'
|
15
|
+
|
12
16
|
require 'active_record'
|
13
17
|
require 'thor/actions'
|
14
18
|
require 'bundler'
|
15
19
|
require 'stringio'
|
16
20
|
require 'paperclip'
|
21
|
+
require 'factory_girl_rails'
|
22
|
+
require 'database_cleaner'
|
17
23
|
|
18
24
|
$:.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')
|
23
25
|
|
26
|
+
require File.expand_path("../../lib/datashift", __FILE__)
|
24
27
|
|
25
28
|
RSpec.configure do |config|
|
29
|
+
|
26
30
|
config.before do
|
27
31
|
ARGV.replace []
|
32
|
+
FactoryGirl.reload # fixes factories not autoloading
|
28
33
|
end
|
29
34
|
|
30
|
-
|
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
|
35
|
+
config.include FactoryGirl::Syntax::Methods
|
39
36
|
|
40
|
-
|
41
|
-
|
37
|
+
config.before(:suite) do
|
38
|
+
|
39
|
+
FileUtils.mkdir_p(results_path()) unless File.exists?(results_path)
|
40
|
+
|
41
|
+
bundler_setup()
|
42
|
+
|
43
|
+
rails_sandbox
|
44
|
+
|
45
|
+
# load all test model definitions - Project etc
|
46
|
+
require ifixture_file('test_model_defs')
|
47
|
+
|
48
|
+
db_connect( 'test_file' ) # , test_memory, test_mysql
|
49
|
+
|
50
|
+
migrate_up
|
51
|
+
|
52
|
+
DatabaseCleaner.clean_with(:truncation)
|
53
|
+
|
54
|
+
DataShift::MethodDictionary.clear
|
55
|
+
|
56
|
+
#TODO this is bad here - remove
|
57
|
+
DataShift::MethodDictionary.find_operators( Project )
|
58
|
+
|
59
|
+
DataShift::MethodDictionary.build_method_details( Project )
|
42
60
|
end
|
43
|
-
|
44
|
-
|
61
|
+
|
62
|
+
config.before(:each) do
|
63
|
+
DatabaseCleaner.strategy = :transaction
|
64
|
+
|
65
|
+
DatabaseCleaner.start
|
66
|
+
end
|
67
|
+
|
68
|
+
config.after(:each) do
|
69
|
+
DatabaseCleaner.clean
|
70
|
+
end
|
71
|
+
|
72
|
+
=begin
|
45
73
|
shared_context "ClearAndPopulateProject" do
|
46
|
-
|
47
74
|
before(:each) do
|
48
|
-
|
49
|
-
Project.delete_all
|
50
|
-
Owner.delete_all
|
51
|
-
|
52
|
-
DataShift::MethodDictionary.clear
|
53
|
-
|
54
|
-
DataShift::MethodDictionary.find_operators( Project )
|
55
|
-
|
56
|
-
DataShift::MethodDictionary.build_method_details( Project )
|
57
|
-
|
58
|
-
DataShift::MethodDictionary.for?(Project).should == true
|
59
75
|
end
|
60
76
|
end
|
61
|
-
|
62
|
-
|
63
|
-
def run_in(dir
|
77
|
+
=end
|
78
|
+
|
79
|
+
def run_in(dir)
|
64
80
|
puts "RSpec .. running test in path [#{dir}]"
|
65
81
|
original_dir = Dir.pwd
|
66
82
|
begin
|
@@ -85,7 +101,11 @@ RSpec.configure do |config|
|
|
85
101
|
end
|
86
102
|
|
87
103
|
alias :silence :capture
|
88
|
-
|
104
|
+
|
105
|
+
def rspec_datashift_root()
|
106
|
+
File.expand_path("../../", __FILE__)
|
107
|
+
end
|
108
|
+
|
89
109
|
def fixtures_path()
|
90
110
|
File.expand_path(File.dirname(__FILE__) + '/fixtures')
|
91
111
|
end
|
@@ -107,10 +127,14 @@ RSpec.configure do |config|
|
|
107
127
|
expect
|
108
128
|
end
|
109
129
|
|
110
|
-
def results_clear
|
111
|
-
|
112
|
-
|
113
|
-
|
130
|
+
def results_clear( glob = nil )
|
131
|
+
if(glob)
|
132
|
+
begin FileUtils.rm_rf( File.join(results_path, glob) ); rescue; end
|
133
|
+
else
|
134
|
+
begin FileUtils.rm_rf(results_path); rescue; end
|
135
|
+
|
136
|
+
FileUtils.mkdir(results_path) unless File.exists?(results_path);
|
137
|
+
end
|
114
138
|
end
|
115
139
|
|
116
140
|
def set_logger( name = 'datashift_spec.log')
|
@@ -119,10 +143,6 @@ RSpec.configure do |config|
|
|
119
143
|
logdir = File.join(File.dirname(__FILE__), 'log')
|
120
144
|
FileUtils.mkdir_p(logdir) unless File.exists?(logdir)
|
121
145
|
ActiveRecord::Base.logger = Logger.new( File.join(logdir, name) )
|
122
|
-
|
123
|
-
# Anyway to direct one logger to another ????? ... Logger.new(STDOUT)
|
124
|
-
|
125
|
-
@dslog = ActiveRecord::Base.logger
|
126
146
|
end
|
127
147
|
|
128
148
|
def bundler_setup(gemfile = File.join(DataShift::root_path, 'spec', 'Gemfile') )
|
@@ -132,7 +152,8 @@ RSpec.configure do |config|
|
|
132
152
|
ENV['BUNDLE_GEMFILE'] = gemfile
|
133
153
|
#Bundler.setup
|
134
154
|
begin
|
135
|
-
Bundler.setup(:default, :development)
|
155
|
+
#Bundler.setup(:default, :development)
|
156
|
+
Bundler.setup(:default, :test)
|
136
157
|
rescue Bundler::BundlerError => e
|
137
158
|
$stderr.puts e.message
|
138
159
|
$stderr.puts "Run `bundle install` to install missing gems"
|
@@ -154,7 +175,9 @@ RSpec.configure do |config|
|
|
154
175
|
# Some active record stuff seems to rely on the RAILS_ENV being set ?
|
155
176
|
|
156
177
|
ENV['RAILS_ENV'] = env
|
157
|
-
|
178
|
+
|
179
|
+
puts "Load DB Config for Env : #{env}"
|
180
|
+
|
158
181
|
# We have multiple schemas and hence connections tested in single spec directory
|
159
182
|
db_clear_connections
|
160
183
|
|
@@ -163,24 +186,11 @@ RSpec.configure do |config|
|
|
163
186
|
configuration[:database_configuration] = YAML::load( ERB.new( IO.read(database_yml_path) ).result )
|
164
187
|
db = configuration[:database_configuration][ env ]
|
165
188
|
|
166
|
-
puts "Setting DB Config:", db.inspect
|
167
|
-
ActiveRecord::Base.configurations = db
|
168
|
-
|
169
|
-
#dbtype = Rails.configuration.database_configuration[Rails.env]['adapter'].to_sym
|
170
|
-
|
171
189
|
set_logger
|
172
190
|
|
173
|
-
puts "Connecting to DB"
|
191
|
+
puts "Connecting to DB", db.inspect
|
174
192
|
|
175
193
|
ActiveRecord::Base.establish_connection( db )
|
176
|
-
|
177
|
-
# See errors #<NameError: uninitialized constant RAILS_CACHE> when doing save (AR without Rails)
|
178
|
-
# so copied this from ... Rails::Initializer.initialize_cache
|
179
|
-
#Object.const_set "RAILS_CACHE", ActiveSupport::Cache.lookup_store( :memory_store ) unless defined?(RAILS_CACHE)
|
180
|
-
|
181
|
-
puts "Connected to DB"
|
182
|
-
|
183
|
-
@dslog.info "Connected to DB - #{ActiveRecord::Base.connection.inspect}"
|
184
194
|
end
|
185
195
|
|
186
196
|
# These are our test models with associations
|
@@ -204,37 +214,39 @@ RSpec.configure do |config|
|
|
204
214
|
|
205
215
|
def rails_sandbox( force = false)
|
206
216
|
|
207
|
-
|
217
|
+
sandbox = rails_sandbox_path
|
208
218
|
|
209
|
-
if(force == true && File.exists?(
|
210
|
-
FileUtils::rm_rf(
|
219
|
+
if(force == true && File.exists?(sandbox))
|
220
|
+
FileUtils::rm_rf(sandbox)
|
211
221
|
end
|
212
222
|
|
213
|
-
unless(File.exists?(
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
223
|
+
unless(File.exists?(sandbox))
|
224
|
+
|
225
|
+
sandbox_exe_path = File.expand_path( "#{sandbox}/.." )
|
226
|
+
|
227
|
+
puts "Creating new Rails sandbox in : #{sandbox_exe_path}"
|
228
|
+
|
229
|
+
run_in( sandbox_exe_path ) do |path|
|
218
230
|
|
219
|
-
name = File.basename(
|
220
|
-
|
221
|
-
puts "Creating new Rails sandbox in : #{path}"
|
231
|
+
name = File.basename(rails_sandbox_path)
|
232
|
+
|
222
233
|
system('rails new ' + name)
|
223
234
|
|
224
235
|
puts "Copying over models :", Dir.glob(File.join(fixtures_path, 'models', '*.rb')).inspect
|
225
236
|
|
226
237
|
FileUtils::cp_r( Dir.glob(File.join(fixtures_path, 'models', '*.rb')), File.join(name, 'app/models'))
|
227
238
|
|
228
|
-
migrations = File.expand_path('
|
239
|
+
migrations = File.expand_path(File.join(fixtures_path, 'db', 'migrate'), __FILE__)
|
229
240
|
|
230
|
-
FileUtils::cp_r( migrations, File.join(
|
241
|
+
FileUtils::cp_r( migrations, File.join(rails_sandbox_path, 'db'))
|
231
242
|
|
232
243
|
puts "Running db:migrate"
|
233
|
-
|
234
|
-
run_in(rails_sandbox) { system('bundle exec rake db:migrate') }
|
235
244
|
end
|
245
|
+
|
246
|
+
run_in(rails_sandbox_path) { system('bundle exec rake db:migrate') }
|
247
|
+
|
236
248
|
end
|
237
|
-
|
249
|
+
return sandbox
|
238
250
|
end
|
239
251
|
|
240
252
|
end
|
data/spec/thor_spec.rb
CHANGED
@@ -31,17 +31,21 @@ describe 'Thor high level command line tasks' do
|
|
31
31
|
#thor datashift:tools:zip -p, --path=PATH -r, --results=RESULTS ...
|
32
32
|
|
33
33
|
it "should list available datashift thor tasks" do
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
x
|
34
|
+
|
35
|
+
skip "better understanding of testign thor"
|
36
|
+
|
37
|
+
#x = capture(:stdout){ Thor::Runner.start(["list"]) }
|
38
|
+
#x.should start_with("datashift\n--------")
|
39
|
+
#x.should =~ / csv -i/
|
40
|
+
#x.should =~ / excel -i/
|
38
41
|
end
|
39
42
|
|
40
43
|
# N.B Tasks that fire up Rails application need to be run in own Thread or else get
|
41
44
|
# ... You cannot have more than one Rails::Application
|
42
45
|
|
43
46
|
it "should be able to import a model from a complex excel through import CLI" do
|
44
|
-
|
47
|
+
skip "How to run once rails already initialzed .. error : database configuration does not specify adapter"
|
48
|
+
|
45
49
|
x = Thread.new {
|
46
50
|
run_in(rails_sandbox()) do
|
47
51
|
stdout = capture(:stdout){
|
@@ -52,4 +56,35 @@ describe 'Thor high level command line tasks' do
|
|
52
56
|
}
|
53
57
|
x.join
|
54
58
|
end
|
59
|
+
|
60
|
+
|
61
|
+
it "should attach Images to a specified Class from a directory" do
|
62
|
+
|
63
|
+
skip "better understanding of testign thor"
|
64
|
+
|
65
|
+
# Owner has_many :digitals of type Digital
|
66
|
+
|
67
|
+
# Owner has a name by which we can id/look it up
|
68
|
+
|
69
|
+
args = [
|
70
|
+
'--attachment-klass', 'Digital',
|
71
|
+
'--attach-to-klass', 'Owner',
|
72
|
+
'--attach-to-find-by-field', 'name',
|
73
|
+
'--attach-to-field', 'digitals']
|
74
|
+
|
75
|
+
# which boils down to
|
76
|
+
#
|
77
|
+
# Digital.find_by_name( abc ).digitals << :Digital.new( File.read('abc_001.jpg') )
|
78
|
+
|
79
|
+
args << '--input' << File.join(fixtures_path(), 'images')
|
80
|
+
|
81
|
+
puts "Running attach with: #{args}"
|
82
|
+
|
83
|
+
x = capture(:stdout){ Thor::Runner.start(["datashift:paperclip:attach", [], args]) }
|
84
|
+
|
85
|
+
expect(x).to include ("datashift\n--------")
|
86
|
+
#x.should =~ / csv -i/
|
87
|
+
#x.should =~ / excel -i/
|
88
|
+
|
89
|
+
end
|
55
90
|
end
|
metadata
CHANGED
@@ -1,50 +1,45 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datashift
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.16.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Thomas Statter
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-03-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: spreadsheet
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rubyzip
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
|
-
description: Comprehensive
|
47
|
-
|
41
|
+
description: Comprehensive import/export tools between Excel/CSV & ActiveRecord Databases,
|
42
|
+
Rails apps, and any Ruby project.
|
48
43
|
email: rubygems@autotelik.co.uk
|
49
44
|
executables: []
|
50
45
|
extensions: []
|
@@ -59,125 +54,137 @@ files:
|
|
59
54
|
- Rakefile
|
60
55
|
- VERSION
|
61
56
|
- datashift.gemspec
|
62
|
-
- tasks/config/seed_fu_product_template.erb
|
63
|
-
- tasks/config/tidy_config.txt
|
64
|
-
- tasks/db_tasks.rake
|
65
|
-
- tasks/file_tasks.rake
|
66
|
-
- tasks/word_to_seedfu.rake
|
67
|
-
- lib/applications/ruby_poi_translations.rb
|
68
|
-
- lib/applications/jexcel_file_extensions.rb
|
69
|
-
- lib/applications/spreadsheet_extensions.rb
|
70
|
-
- lib/applications/excel.rb
|
71
57
|
- lib/applications/apache_poi_extensions.rb
|
72
|
-
- lib/applications/
|
58
|
+
- lib/applications/excel.rb
|
59
|
+
- lib/applications/jexcel_file.rb
|
60
|
+
- lib/applications/jexcel_file_extensions.rb
|
73
61
|
- lib/applications/jruby/old_pre_proxy_jexcel_file.rb
|
74
62
|
- lib/applications/jruby/word.rb
|
75
|
-
- lib/applications/
|
63
|
+
- lib/applications/ruby_poi_translations.rb
|
64
|
+
- lib/applications/spreadsheet_extensions.rb
|
65
|
+
- lib/datashift.rb
|
66
|
+
- lib/datashift/column_packer.rb
|
67
|
+
- lib/datashift/data_transforms.rb
|
68
|
+
- lib/datashift/delimiters.rb
|
69
|
+
- lib/datashift/excel_base.rb
|
70
|
+
- lib/datashift/exceptions.rb
|
71
|
+
- lib/datashift/file_definitions.rb
|
72
|
+
- lib/datashift/guards.rb
|
73
|
+
- lib/datashift/load_object.rb
|
74
|
+
- lib/datashift/logging.rb
|
75
|
+
- lib/datashift/mapping_file_definitions.rb
|
76
|
+
- lib/datashift/mapping_service.rb
|
77
|
+
- lib/datashift/method_detail.rb
|
78
|
+
- lib/datashift/method_details_manager.rb
|
79
|
+
- lib/datashift/method_dictionary.rb
|
80
|
+
- lib/datashift/method_mapper.rb
|
81
|
+
- lib/datashift/model_mapper.rb
|
82
|
+
- lib/datashift/populator.rb
|
83
|
+
- lib/datashift/querying.rb
|
84
|
+
- lib/datashift/thor_base.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/generators/mapping_generator.rb
|
92
|
+
- lib/helpers/core_ext/csv_file.rb
|
93
|
+
- lib/helpers/core_ext/to_b.rb
|
94
|
+
- lib/java/poi-3.7/LICENSE
|
76
95
|
- lib/java/poi-3.7/NOTICE
|
77
|
-
- lib/java/poi-3.7/poi-examples-3.7-20101029.jar
|
78
96
|
- lib/java/poi-3.7/RELEASE_NOTES.txt
|
79
|
-
- lib/java/poi-3.7/ooxml-lib/geronimo-stax-api_1.0_spec-1.0.jar
|
80
|
-
- lib/java/poi-3.7/ooxml-lib/xmlbeans-2.3.0.jar
|
81
|
-
- lib/java/poi-3.7/ooxml-lib/dom4j-1.6.1.jar
|
82
|
-
- lib/java/poi-3.7/LICENSE
|
83
|
-
- lib/java/poi-3.7/lib/junit-3.8.1.jar
|
84
97
|
- lib/java/poi-3.7/lib/commons-logging-1.1.jar
|
98
|
+
- lib/java/poi-3.7/lib/junit-3.8.1.jar
|
85
99
|
- lib/java/poi-3.7/lib/log4j-1.2.13.jar
|
86
|
-
- lib/java/poi-3.7/
|
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
|
87
103
|
- lib/java/poi-3.7/poi-3.7-20101029.jar
|
88
|
-
- lib/java/poi-3.7/poi-
|
104
|
+
- lib/java/poi-3.7/poi-examples-3.7-20101029.jar
|
89
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
|
90
108
|
- lib/loaders/csv_loader.rb
|
91
109
|
- lib/loaders/excel_loader.rb
|
92
|
-
- lib/loaders/reporter.rb
|
93
110
|
- lib/loaders/loader_base.rb
|
94
|
-
- lib/loaders/paperclip/datashift_paperclip.rb
|
95
111
|
- lib/loaders/paperclip/attachment_loader.rb
|
112
|
+
- lib/loaders/paperclip/datashift_paperclip.rb
|
96
113
|
- lib/loaders/paperclip/image_loading.rb
|
97
|
-
- lib/
|
98
|
-
- lib/exporters/excel_exporter.rb
|
99
|
-
- lib/exporters/csv_exporter.rb
|
100
|
-
- lib/datashift/populator.rb
|
101
|
-
- lib/datashift/querying.rb
|
102
|
-
- lib/datashift/method_detail.rb
|
103
|
-
- lib/datashift/column_packer.rb
|
104
|
-
- lib/datashift/method_details_manager.rb
|
105
|
-
- lib/datashift/model_mapper.rb
|
106
|
-
- lib/datashift/guards.rb
|
107
|
-
- lib/datashift/method_mapper.rb
|
108
|
-
- lib/datashift/mapping_file_definitions.rb
|
109
|
-
- lib/datashift/logging.rb
|
110
|
-
- lib/datashift/exceptions.rb
|
111
|
-
- lib/datashift/method_dictionary.rb
|
112
|
-
- lib/datashift/file_definitions.rb
|
113
|
-
- lib/datashift/delimiters.rb
|
114
|
-
- lib/datashift.rb
|
115
|
-
- lib/generators/generator_base.rb
|
116
|
-
- lib/generators/csv_generator.rb
|
117
|
-
- lib/generators/excel_generator.rb
|
114
|
+
- lib/loaders/reporter.rb
|
118
115
|
- lib/thor/export.thor
|
116
|
+
- lib/thor/generate.thor
|
117
|
+
- lib/thor/import.thor
|
118
|
+
- lib/thor/mapping.thor
|
119
119
|
- lib/thor/paperclip.thor
|
120
120
|
- lib/thor/tools.thor
|
121
|
-
- lib/thor/import.thor
|
122
|
-
- lib/thor/generate.thor
|
123
|
-
- lib/helpers/core_ext/to_b.rb
|
124
|
-
- spec/csv_exporter_spec.rb
|
125
|
-
- spec/excel_generator_spec.rb
|
126
|
-
- spec/spec_helper.rb
|
127
121
|
- spec/Gemfile
|
128
|
-
- spec/
|
122
|
+
- spec/Gemfile.lock
|
123
|
+
- spec/csv_exporter_spec.rb
|
124
|
+
- spec/csv_generator_spec.rb
|
125
|
+
- spec/csv_loader_spec.rb
|
129
126
|
- spec/datashift_spec.rb
|
130
|
-
- spec/populator_spec.rb
|
131
|
-
- spec/excel_loader_spec.rb
|
132
|
-
- spec/method_dictionary_spec.rb
|
133
127
|
- spec/excel_exporter_spec.rb
|
134
|
-
- spec/
|
128
|
+
- spec/excel_generator_spec.rb
|
129
|
+
- spec/excel_loader_spec.rb
|
130
|
+
- spec/excel_spec.rb
|
135
131
|
- spec/file_definitions.rb
|
136
132
|
- spec/loader_base_spec.rb
|
137
|
-
- spec/
|
138
|
-
- spec/
|
133
|
+
- spec/mapping_spec.rb
|
134
|
+
- spec/method_dictionary_spec.rb
|
139
135
|
- spec/method_mapper_spec.rb
|
140
|
-
- spec/
|
136
|
+
- spec/model_mapper_spec.rb
|
137
|
+
- spec/paperclip_loader_spec.rb
|
138
|
+
- spec/populator_spec.rb
|
139
|
+
- spec/spec_helper.rb
|
140
|
+
- spec/thor_spec.rb
|
141
|
+
- tasks/config/seed_fu_product_template.erb
|
142
|
+
- tasks/config/tidy_config.txt
|
143
|
+
- tasks/db_tasks.rake
|
144
|
+
- tasks/file_tasks.rake
|
145
|
+
- tasks/word_to_seedfu.rake
|
141
146
|
homepage: http://github.com/autotelik/datashift
|
142
147
|
licenses:
|
143
148
|
- MIT
|
149
|
+
metadata: {}
|
144
150
|
post_install_message:
|
145
151
|
rdoc_options: []
|
146
152
|
require_paths:
|
147
153
|
- lib
|
148
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
149
|
-
none: false
|
150
155
|
requirements:
|
151
|
-
- -
|
156
|
+
- - ">="
|
152
157
|
- !ruby/object:Gem::Version
|
153
158
|
version: '0'
|
154
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
|
-
none: false
|
156
160
|
requirements:
|
157
|
-
- -
|
161
|
+
- - ">="
|
158
162
|
- !ruby/object:Gem::Version
|
159
163
|
version: '0'
|
160
164
|
requirements: []
|
161
165
|
rubyforge_project:
|
162
|
-
rubygems_version:
|
166
|
+
rubygems_version: 2.4.8
|
163
167
|
signing_key:
|
164
|
-
specification_version:
|
168
|
+
specification_version: 4
|
165
169
|
summary: Shift data betwen Excel/CSV and any Ruby app
|
166
170
|
test_files:
|
167
|
-
- spec/csv_exporter_spec.rb
|
168
|
-
- spec/excel_generator_spec.rb
|
169
|
-
- spec/spec_helper.rb
|
170
171
|
- spec/Gemfile
|
171
|
-
- spec/
|
172
|
+
- spec/Gemfile.lock
|
173
|
+
- spec/csv_exporter_spec.rb
|
174
|
+
- spec/csv_generator_spec.rb
|
175
|
+
- spec/csv_loader_spec.rb
|
172
176
|
- spec/datashift_spec.rb
|
173
|
-
- spec/populator_spec.rb
|
174
|
-
- spec/excel_loader_spec.rb
|
175
|
-
- spec/method_dictionary_spec.rb
|
176
177
|
- spec/excel_exporter_spec.rb
|
177
|
-
- spec/
|
178
|
+
- spec/excel_generator_spec.rb
|
179
|
+
- spec/excel_loader_spec.rb
|
180
|
+
- spec/excel_spec.rb
|
178
181
|
- spec/file_definitions.rb
|
179
182
|
- spec/loader_base_spec.rb
|
180
|
-
- spec/
|
181
|
-
- spec/
|
183
|
+
- spec/mapping_spec.rb
|
184
|
+
- spec/method_dictionary_spec.rb
|
182
185
|
- spec/method_mapper_spec.rb
|
183
|
-
- spec/
|
186
|
+
- spec/model_mapper_spec.rb
|
187
|
+
- spec/paperclip_loader_spec.rb
|
188
|
+
- spec/populator_spec.rb
|
189
|
+
- spec/spec_helper.rb
|
190
|
+
- spec/thor_spec.rb
|