datashift 0.15.0 → 0.16.0
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 +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
|