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.
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