datashift 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/README.markdown +91 -55
  3. data/VERSION +1 -1
  4. data/datashift.gemspec +8 -23
  5. data/lib/applications/jexcel_file.rb +1 -2
  6. data/lib/datashift.rb +34 -15
  7. data/lib/datashift/column_packer.rb +98 -34
  8. data/lib/datashift/data_transforms.rb +83 -0
  9. data/lib/datashift/delimiters.rb +58 -10
  10. data/lib/datashift/excel_base.rb +123 -0
  11. data/lib/datashift/exceptions.rb +45 -7
  12. data/lib/datashift/load_object.rb +25 -0
  13. data/lib/datashift/mapping_service.rb +91 -0
  14. data/lib/datashift/method_detail.rb +40 -62
  15. data/lib/datashift/method_details_manager.rb +18 -2
  16. data/lib/datashift/method_dictionary.rb +27 -10
  17. data/lib/datashift/method_mapper.rb +49 -41
  18. data/lib/datashift/model_mapper.rb +42 -22
  19. data/lib/datashift/populator.rb +258 -143
  20. data/lib/datashift/thor_base.rb +38 -0
  21. data/lib/exporters/csv_exporter.rb +57 -145
  22. data/lib/exporters/excel_exporter.rb +73 -60
  23. data/lib/generators/csv_generator.rb +65 -5
  24. data/lib/generators/generator_base.rb +69 -3
  25. data/lib/generators/mapping_generator.rb +112 -0
  26. data/lib/helpers/core_ext/csv_file.rb +33 -0
  27. data/lib/loaders/csv_loader.rb +41 -39
  28. data/lib/loaders/excel_loader.rb +130 -116
  29. data/lib/loaders/loader_base.rb +190 -146
  30. data/lib/loaders/paperclip/attachment_loader.rb +4 -4
  31. data/lib/loaders/paperclip/datashift_paperclip.rb +5 -3
  32. data/lib/loaders/paperclip/image_loading.rb +9 -7
  33. data/lib/loaders/reporter.rb +17 -8
  34. data/lib/thor/export.thor +12 -13
  35. data/lib/thor/generate.thor +1 -9
  36. data/lib/thor/import.thor +13 -24
  37. data/lib/thor/mapping.thor +65 -0
  38. data/spec/Gemfile +13 -11
  39. data/spec/Gemfile.lock +98 -93
  40. data/spec/csv_exporter_spec.rb +104 -99
  41. data/spec/csv_generator_spec.rb +159 -0
  42. data/spec/csv_loader_spec.rb +197 -16
  43. data/spec/datashift_spec.rb +9 -0
  44. data/spec/excel_exporter_spec.rb +149 -58
  45. data/spec/excel_generator_spec.rb +35 -44
  46. data/spec/excel_loader_spec.rb +196 -178
  47. data/spec/excel_spec.rb +8 -5
  48. data/spec/loader_base_spec.rb +47 -7
  49. data/spec/mapping_spec.rb +117 -0
  50. data/spec/method_dictionary_spec.rb +24 -11
  51. data/spec/method_mapper_spec.rb +5 -7
  52. data/spec/model_mapper_spec.rb +41 -0
  53. data/spec/paperclip_loader_spec.rb +3 -6
  54. data/spec/populator_spec.rb +48 -14
  55. data/spec/spec_helper.rb +85 -73
  56. data/spec/thor_spec.rb +40 -5
  57. metadata +93 -86
  58. data/lib/applications/excel_base.rb +0 -63
@@ -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
- 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
35
+ config.include FactoryGirl::Syntax::Methods
39
36
 
40
- migrate_up
41
- end
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
- begin FileUtils.rm_rf(results_path); rescue; end
112
-
113
- FileUtils.mkdir(results_path) unless File.exists?(results_path);
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
- rails_sandbox = rails_sandbox_path
217
+ sandbox = rails_sandbox_path
208
218
 
209
- if(force == true && File.exists?(rails_sandbox))
210
- FileUtils::rm_rf(rails_sandbox)
219
+ if(force == true && File.exists?(sandbox))
220
+ FileUtils::rm_rf(sandbox)
211
221
  end
212
222
 
213
- unless(File.exists?(rails_sandbox))
214
-
215
- puts "Creating new Rails sandbox : ", File.expand_path( "#{rails_sandbox}/.." )
216
-
217
- run_in( File.expand_path("#{rails_sandbox}/..") ) do |path|
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(DataShift::sandbox)
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('../../spec/db/migrate', __FILE__)
239
+ migrations = File.expand_path(File.join(fixtures_path, 'db', 'migrate'), __FILE__)
229
240
 
230
- FileUtils::cp_r( migrations, File.join(rails_sandbox, 'db'))
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
- rails_sandbox
249
+ return sandbox
238
250
  end
239
251
 
240
252
  end
@@ -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
- x = capture(:stdout){ Thor::Runner.start(["list"]) }
35
- x.should start_with("datashift\n--------")
36
- x.should =~ / csv -i/
37
- x.should =~ / excel -i/
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
- pending "How to run once rails already initialzed .. error : database configuration does not specify adapter"
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.15.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: 2014-06-16 00:00:00.000000000 Z
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 tools to import/export between Excel/CSV and ActiveRecord
47
- databases, Rails apps, and any Ruby project.
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/excel_base.rb
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/jexcel_file.rb
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/poi-scratchpad-3.7-20101029.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
87
103
  - lib/java/poi-3.7/poi-3.7-20101029.jar
88
- - lib/java/poi-3.7/poi-ooxml-schemas-3.7-20101029.jar
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/exporters/exporter_base.rb
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/thor_spec.rb
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/Gemfile.lock
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/csv_loader_spec.rb
138
- - spec/paperclip_loader_spec.rb
133
+ - spec/mapping_spec.rb
134
+ - spec/method_dictionary_spec.rb
139
135
  - spec/method_mapper_spec.rb
140
- - spec/excel_spec.rb
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: 1.8.25
166
+ rubygems_version: 2.4.8
163
167
  signing_key:
164
- specification_version: 3
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/thor_spec.rb
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/Gemfile.lock
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/csv_loader_spec.rb
181
- - spec/paperclip_loader_spec.rb
183
+ - spec/mapping_spec.rb
184
+ - spec/method_dictionary_spec.rb
182
185
  - spec/method_mapper_spec.rb
183
- - spec/excel_spec.rb
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