datashift 0.9.0 → 0.10.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 (163) hide show
  1. data/README.markdown +63 -64
  2. data/Rakefile +4 -7
  3. data/VERSION +1 -1
  4. data/datashift.gemspec +92 -62
  5. data/lib/applications/apache_poi_extensions.rb +62 -0
  6. data/lib/applications/excel.rb +78 -0
  7. data/lib/applications/excel_base.rb +65 -0
  8. data/lib/applications/jexcel_file.rb +222 -0
  9. data/lib/applications/jexcel_file_extensions.rb +244 -0
  10. data/lib/applications/jruby/{jexcel_file.rb → old_pre_proxy_jexcel_file.rb} +0 -0
  11. data/lib/applications/ruby_poi_translations.rb +64 -0
  12. data/lib/applications/spreadsheet_extensions.rb +31 -0
  13. data/lib/datashift/method_details_manager.rb +4 -0
  14. data/lib/exporters/csv_exporter.rb +3 -1
  15. data/lib/exporters/excel_exporter.rb +59 -74
  16. data/lib/generators/excel_generator.rb +70 -74
  17. data/lib/guards.rb +57 -0
  18. data/lib/loaders/excel_loader.rb +105 -105
  19. data/lib/loaders/loader_base.rb +43 -21
  20. data/lib/loaders/paperclip/attachment_loader.rb +104 -0
  21. data/lib/loaders/paperclip/datashift_paperclip.rb +78 -0
  22. data/lib/loaders/paperclip/{image_loader.rb → image_loading.rb} +2 -18
  23. data/lib/thor/{generate_excel.thor → generate.thor} +48 -0
  24. data/lib/thor/paperclip.thor +85 -0
  25. data/lib/thor/tools.thor +23 -2
  26. data/spec/Gemfile +1 -7
  27. data/spec/csv_exporter_spec.rb +4 -4
  28. data/spec/csv_loader_spec.rb +1 -1
  29. data/spec/excel_exporter_spec.rb +43 -45
  30. data/spec/excel_generator_spec.rb +132 -60
  31. data/spec/excel_loader_spec.rb +134 -140
  32. data/spec/excel_spec.rb +179 -0
  33. data/spec/fixtures/ProjectsMultiCategoriesHeaderLookup.xls +0 -0
  34. data/spec/fixtures/config/database.yml +2 -2
  35. data/spec/fixtures/db/datashift_test_models_db.sqlite +0 -0
  36. data/spec/{db → fixtures/db}/migrate/20110803201325_create_test_bed.rb +0 -0
  37. data/spec/fixtures/load_datashift.thor +3 -0
  38. data/spec/fixtures/models/category.rb +7 -0
  39. data/spec/fixtures/models/empty.rb +2 -0
  40. data/spec/fixtures/models/loader_release.rb +10 -0
  41. data/spec/fixtures/models/long_and_complex_table_linked_to_version.rb +6 -0
  42. data/spec/fixtures/models/milestone.rb +8 -0
  43. data/spec/fixtures/models/owner.rb +5 -0
  44. data/spec/fixtures/models/project.rb +26 -0
  45. data/spec/fixtures/models/test_model_defs.rb +67 -0
  46. data/spec/fixtures/models/version.rb +7 -0
  47. data/spec/loader_spec.rb +4 -3
  48. data/spec/method_dictionary_spec.rb +7 -6
  49. data/spec/method_mapper_spec.rb +3 -2
  50. data/spec/rails_sandbox/.gitignore +15 -0
  51. data/spec/rails_sandbox/Gemfile +40 -0
  52. data/spec/rails_sandbox/README.rdoc +261 -0
  53. data/spec/rails_sandbox/Rakefile +7 -0
  54. data/spec/rails_sandbox/app/assets/images/rails.png +0 -0
  55. data/spec/rails_sandbox/app/assets/javascripts/application.js +15 -0
  56. data/spec/rails_sandbox/app/assets/stylesheets/application.css +13 -0
  57. data/spec/rails_sandbox/app/controllers/application_controller.rb +3 -0
  58. data/spec/rails_sandbox/app/helpers/application_helper.rb +2 -0
  59. data/spec/rails_sandbox/app/mailers/.gitkeep +0 -0
  60. data/spec/rails_sandbox/app/models/.gitkeep +0 -0
  61. data/spec/rails_sandbox/app/models/category.rb +7 -0
  62. data/spec/rails_sandbox/app/models/empty.rb +2 -0
  63. data/spec/rails_sandbox/app/models/loader_release.rb +10 -0
  64. data/spec/rails_sandbox/app/models/long_and_complex_table_linked_to_version.rb +6 -0
  65. data/spec/rails_sandbox/app/models/milestone.rb +8 -0
  66. data/spec/rails_sandbox/app/models/owner.rb +5 -0
  67. data/spec/rails_sandbox/app/models/project.rb +26 -0
  68. data/spec/rails_sandbox/app/models/test_model_defs.rb +67 -0
  69. data/spec/rails_sandbox/app/models/version.rb +7 -0
  70. data/spec/rails_sandbox/app/views/layouts/application.html.erb +14 -0
  71. data/spec/rails_sandbox/config.ru +4 -0
  72. data/spec/rails_sandbox/config/application.rb +62 -0
  73. data/spec/rails_sandbox/config/boot.rb +6 -0
  74. data/spec/rails_sandbox/config/database.yml +20 -0
  75. data/spec/rails_sandbox/config/environment.rb +5 -0
  76. data/spec/rails_sandbox/config/environments/development.rb +37 -0
  77. data/spec/rails_sandbox/config/environments/production.rb +67 -0
  78. data/spec/rails_sandbox/config/environments/test.rb +37 -0
  79. data/spec/rails_sandbox/config/initializers/backtrace_silencers.rb +7 -0
  80. data/spec/rails_sandbox/config/initializers/inflections.rb +15 -0
  81. data/spec/rails_sandbox/config/initializers/mime_types.rb +5 -0
  82. data/spec/rails_sandbox/config/initializers/secret_token.rb +7 -0
  83. data/spec/rails_sandbox/config/initializers/session_store.rb +8 -0
  84. data/spec/rails_sandbox/config/initializers/wrap_parameters.rb +14 -0
  85. data/spec/rails_sandbox/config/locales/en.yml +5 -0
  86. data/spec/rails_sandbox/config/routes.rb +58 -0
  87. data/spec/rails_sandbox/db/migrate/20110803201325_create_test_bed.rb +96 -0
  88. data/spec/rails_sandbox/db/schema.rb +81 -0
  89. data/spec/rails_sandbox/db/seeds.rb +7 -0
  90. data/spec/rails_sandbox/lib/assets/.gitkeep +0 -0
  91. data/spec/rails_sandbox/lib/tasks/.gitkeep +0 -0
  92. data/spec/rails_sandbox/log/.gitkeep +0 -0
  93. data/spec/rails_sandbox/public/404.html +26 -0
  94. data/spec/rails_sandbox/public/422.html +26 -0
  95. data/spec/rails_sandbox/public/500.html +25 -0
  96. data/spec/rails_sandbox/public/favicon.ico +0 -0
  97. data/spec/rails_sandbox/public/index.html +241 -0
  98. data/spec/rails_sandbox/public/robots.txt +5 -0
  99. data/spec/rails_sandbox/script/rails +6 -0
  100. data/spec/rails_sandbox/test/fixtures/.gitkeep +0 -0
  101. data/spec/rails_sandbox/test/functional/.gitkeep +0 -0
  102. data/spec/rails_sandbox/test/integration/.gitkeep +0 -0
  103. data/spec/rails_sandbox/test/performance/browsing_test.rb +12 -0
  104. data/spec/rails_sandbox/test/test_helper.rb +13 -0
  105. data/spec/rails_sandbox/test/unit/.gitkeep +0 -0
  106. data/spec/rails_sandbox/vendor/assets/javascripts/.gitkeep +0 -0
  107. data/spec/rails_sandbox/vendor/assets/stylesheets/.gitkeep +0 -0
  108. data/spec/rails_sandbox/vendor/plugins/.gitkeep +0 -0
  109. data/spec/spec_helper.rb +144 -121
  110. data/spec/thor_spec.rb +34 -14
  111. metadata +207 -194
  112. data/lib/helpers/spree_helper.rb +0 -213
  113. data/lib/loaders/spreadsheet_loader.rb +0 -144
  114. data/lib/loaders/spree/image_loader.rb +0 -90
  115. data/lib/loaders/spree/product_loader.rb +0 -354
  116. data/lib/thor/spree/bootstrap_cleanup.thor +0 -61
  117. data/lib/thor/spree/products_images.thor +0 -252
  118. data/lib/thor/spree/reports.thor +0 -56
  119. data/public/spree/products/large/DEMO_001_ror_bag.jpeg +0 -0
  120. data/public/spree/products/large/DEMO_002_Powerstation.jpg +0 -0
  121. data/public/spree/products/large/DEMO_003_ror_mug.jpeg +0 -0
  122. data/public/spree/products/mini/DEMO_001_ror_bag.jpeg +0 -0
  123. data/public/spree/products/mini/DEMO_002_Powerstation.jpg +0 -0
  124. data/public/spree/products/mini/DEMO_003_ror_mug.jpeg +0 -0
  125. data/public/spree/products/original/DEMO_001_ror_bag.jpeg +0 -0
  126. data/public/spree/products/original/DEMO_002_Powerstation.jpg +0 -0
  127. data/public/spree/products/original/DEMO_003_ror_mug.jpeg +0 -0
  128. data/public/spree/products/product/DEMO_001_ror_bag.jpeg +0 -0
  129. data/public/spree/products/product/DEMO_002_Powerstation.jpg +0 -0
  130. data/public/spree/products/product/DEMO_003_ror_mug.jpeg +0 -0
  131. data/public/spree/products/small/DEMO_001_ror_bag.jpeg +0 -0
  132. data/public/spree/products/small/DEMO_002_Powerstation.jpg +0 -0
  133. data/public/spree/products/small/DEMO_003_ror_mug.jpeg +0 -0
  134. data/spec/fixtures/datashift_Spree_db.sqlite +0 -0
  135. data/spec/fixtures/datashift_test_models_db.sqlite +0 -0
  136. data/spec/fixtures/negative/SpreeProdMiss1Mandatory.csv +0 -4
  137. data/spec/fixtures/negative/SpreeProdMiss1Mandatory.xls +0 -0
  138. data/spec/fixtures/negative/SpreeProdMissManyMandatory.csv +0 -4
  139. data/spec/fixtures/negative/SpreeProdMissManyMandatory.xls +0 -0
  140. data/spec/fixtures/spree/SpreeImages.xls +0 -0
  141. data/spec/fixtures/spree/SpreeMultiVariant.csv +0 -4
  142. data/spec/fixtures/spree/SpreeProducts.csv +0 -4
  143. data/spec/fixtures/spree/SpreeProducts.xls +0 -0
  144. data/spec/fixtures/spree/SpreeProductsDefaults.yml +0 -15
  145. data/spec/fixtures/spree/SpreeProductsMandatoryOnly.xls +0 -0
  146. data/spec/fixtures/spree/SpreeProductsMultiColumn.csv +0 -4
  147. data/spec/fixtures/spree/SpreeProductsMultiColumn.xls +0 -0
  148. data/spec/fixtures/spree/SpreeProductsSimple.csv +0 -4
  149. data/spec/fixtures/spree/SpreeProductsSimple.xls +0 -0
  150. data/spec/fixtures/spree/SpreeProductsWithImages.csv +0 -4
  151. data/spec/fixtures/spree/SpreeProductsWithImages.xls +0 -0
  152. data/spec/fixtures/spree/SpreeZoneExample.csv +0 -5
  153. data/spec/fixtures/spree/SpreeZoneExample.xls +0 -0
  154. data/spec/spree_exporter_spec.rb +0 -72
  155. data/spec/spree_generator_spec.rb +0 -96
  156. data/spec/spree_images_loader_spec.rb +0 -107
  157. data/spec/spree_loader_spec.rb +0 -375
  158. data/spec/spree_method_mapping_spec.rb +0 -226
  159. data/spec/spree_variants_loader_spec.rb +0 -189
  160. data/tasks/export/excel_generator.rake +0 -102
  161. data/tasks/import/excel.rake +0 -75
  162. data/test/helper.rb +0 -18
  163. data/test/test_interact.rb +0 -7
@@ -0,0 +1,13 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path('../../config/environment', __FILE__)
3
+ require 'rails/test_help'
4
+
5
+ class ActiveSupport::TestCase
6
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
7
+ #
8
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
9
+ # -- they do not yet inherit this setting
10
+ fixtures :all
11
+
12
+ # Add more helper methods to be used by all tests here...
13
+ end
File without changes
File without changes
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,3 @@
1
-
2
- require 'stringio'
3
-
4
- require File.dirname(__FILE__) + '/../lib/datashift'
5
-
6
- include DataShift
7
-
8
1
  # Copyright:: (c) Autotelik Media Ltd 2011
9
2
  # Author :: Tom Statter
10
3
  # Date :: Aug 2011
@@ -16,56 +9,144 @@ include DataShift
16
9
  # We are not setup as a Rails project so need to mimic an active record database setup so
17
10
  # we have some AR models to test against. Create an in memory database from scratch.
18
11
  #
19
- $DataShiftFixturePath = File.join(File.dirname(__FILE__), 'fixtures')
20
- $DataShiftDatabaseYml = File.join($DataShiftFixturePath, 'config/database.yml')
12
+ require 'active_record'
13
+ require 'thor/actions'
14
+ require 'bundler'
15
+ require 'stringio'
21
16
 
22
- module DataShift
23
-
24
- def db_connect( env = 'test_file')
25
-
26
- gemfile = File.join(DataShift::root_path, 'spec', 'Gemfile')
17
+ require File.dirname(__FILE__) + '/../lib/datashift'
27
18
 
28
- ENV['BUNDLE_GEMFILE'] = gemfile
29
- require 'bundler'
30
- Bundler.setup
19
+ RSpec.configure do |config|
20
+ config.before do
21
+ ARGV.replace []
22
+ end
31
23
 
32
- require 'active_record'
33
24
 
34
- # Some active record stuff seems to rely on the RAILS_ENV being set ?
25
+
26
+ def run_in(dir )
27
+ puts "RSpec .. running test in path [#{dir}]"
28
+ original_dir = Dir.pwd
29
+ begin
30
+ Dir.chdir dir
31
+ yield
32
+ ensure
33
+ Dir.chdir original_dir
34
+ end
35
+ end
36
+
37
+ def capture(stream)
38
+ begin
39
+ stream = stream.to_s
40
+ eval "$#{stream} = StringIO.new"
41
+ yield
42
+ result = eval("$#{stream}").string
43
+ ensure
44
+ eval("$#{stream} = #{stream.upcase}")
45
+ end
35
46
 
36
- ENV['RAILS_ENV'] = env
47
+ result
48
+ end
49
+
50
+ alias :silence :capture
37
51
 
38
- configuration = {}
52
+ def fixtures_path()
53
+ File.expand_path(File.dirname(__FILE__) + '/fixtures')
54
+ end
55
+
56
+ def ifixture_file( name )
57
+ File.join(fixtures_path(), name)
58
+ end
59
+
60
+ def results_path
61
+ File.join(fixtures_path(), 'results')
62
+ end
63
+
64
+ # Return location of an expected results file and ensure tree clean before test
65
+ def result_file( name )
66
+ expect = File.join(results_path, name)
39
67
 
40
- configuration[:database_configuration] = YAML::load( ERB.new(IO.read($DataShiftDatabaseYml)).result )
41
- db = configuration[:database_configuration][ env ]
68
+ begin FileUtils.rm(expect); rescue; end
42
69
 
43
- puts "Setting DB Config - #{db.inspect}"
44
- ActiveRecord::Base.configurations = db
70
+ expect
71
+ end
72
+
73
+ def results_clear
74
+ begin FileUtils.rm_rf(results_path); rescue; end
75
+
76
+ FileUtils.mkdir(results_path) unless File.exists?(results_path);
77
+ end
78
+
79
+ def set_logger( name = 'datashift_spec.log')
45
80
 
46
- #dbtype = Rails.configuration.database_configuration[Rails.env]['adapter'].to_sym
47
-
48
81
  require 'logger'
49
82
  logdir = File.dirname(__FILE__) + '/logs'
50
83
  FileUtils.mkdir_p(logdir) unless File.exists?(logdir)
51
- ActiveRecord::Base.logger = Logger.new(logdir + '/datashift_spec.log')
84
+ ActiveRecord::Base.logger = Logger.new( File.join(logdir, name) )
52
85
 
53
86
  # Anyway to direct one logger to another ????? ... Logger.new(STDOUT)
54
87
 
55
88
  @dslog = ActiveRecord::Base.logger
89
+ end
90
+
91
+ def bundler_setup(gemfile)
92
+ $stderr.puts "No Such Gemfile #{gemfile}" unless File.exists?(gemfile)
93
+
94
+ ENV['BUNDLE_GEMFILE'] = gemfile
95
+ #Bundler.setup
96
+ begin
97
+ Bundler.setup(:default, :development)
98
+ rescue Bundler::BundlerError => e
99
+ $stderr.puts e.message
100
+ $stderr.puts "Run `bundle install` to install missing gems"
101
+ exit e.status_code
102
+ end
103
+ end
104
+
105
+ def db_clear_connections
106
+ # We have multiple schemas and hence connections tested in single spec directory
107
+ ActiveRecord::Base.clear_active_connections!()
108
+ end
109
+
110
+ def database_yml_path
111
+ File.join(fixtures_path, 'config', 'database.yml')
112
+ end
113
+
114
+ def db_connect( env = 'test_file')
56
115
 
116
+ bundler_setup( File.join(DataShift::root_path, 'spec', 'Gemfile') )
117
+
118
+ # Some active record stuff seems to rely on the RAILS_ENV being set ?
119
+
120
+ ENV['RAILS_ENV'] = env
121
+
122
+ # We have multiple schemas and hence connections tested in single spec directory
123
+ db_clear_connections
124
+
125
+ configuration = {}
126
+
127
+ configuration[:database_configuration] = YAML::load( ERB.new( IO.read(database_yml_path) ).result )
128
+ db = configuration[:database_configuration][ env ]
129
+
130
+ puts "Setting DB Config:", db.inspect
131
+ ActiveRecord::Base.configurations = db
132
+
133
+ #dbtype = Rails.configuration.database_configuration[Rails.env]['adapter'].to_sym
134
+
135
+ set_logger
136
+
57
137
  puts "Connecting to DB"
138
+
58
139
  ActiveRecord::Base.establish_connection( db )
59
140
 
60
141
  # See errors #<NameError: uninitialized constant RAILS_CACHE> when doing save (AR without Rails)
61
142
  # so copied this from ... Rails::Initializer.initialize_cache
62
- Object.const_set "RAILS_CACHE", ActiveSupport::Cache.lookup_store( :memory_store )
143
+ #Object.const_set "RAILS_CACHE", ActiveSupport::Cache.lookup_store( :memory_store ) unless defined?(RAILS_CACHE)
63
144
 
64
145
  puts "Connected to DB"
65
146
 
66
147
  @dslog.info "Connected to DB - #{ActiveRecord::Base.connection.inspect}"
67
148
  end
68
-
149
+
69
150
  # These are our test models with associations
70
151
  def db_clear
71
152
  [Project, Milestone, Category, Version, LoaderRelease].each {|x| x.delete_all}
@@ -75,107 +156,49 @@ module DataShift
75
156
  load "#{Rails.root}/db/schema.rb"
76
157
  end
77
158
 
78
- def migrate_up
79
- ActiveRecord::Migrator.up( File.dirname(__FILE__) + '/db/migrate')
80
- end
81
-
82
- def results_path
83
- File.join($DataShiftFixturePath, 'results')
84
- end
85
-
86
- def results_clear
87
- begin FileUtils.rm_rf(results_path); rescue; end
88
-
89
- FileUtils.mkdir(results_path) unless File.exists?(results_path);
90
- end
91
-
92
- # Return location of an expected results file and ensure tree clean before test
93
- def result_file( name )
94
- expect = File.join(results_path, name)
95
-
96
- begin FileUtils.rm(expect); rescue; end
97
-
98
- expect
99
- end
100
-
101
- def ifixture_file( name )
102
- File.join($DataShiftFixturePath, name)
159
+ def migrate_up( rails_root = fixtures_path )
160
+ p = File.join(fixtures_path, 'db/migrate')
161
+ raise "Cannot migrate DB - no such path #{p}" unless File.exists?(p)
162
+ ActiveRecord::Migrator.up(p)
103
163
  end
104
164
 
105
- end
106
-
107
- module SpecHelper
108
-
109
- # VERSIONS of Spree (1.1.0.rc1, 1.0.0, 0.11.2)
110
-
111
- $SpreeFixturePath = File.join($DataShiftFixturePath, 'spree')
112
- $SpreeNegativeFixturePath = File.join($DataShiftFixturePath, 'negative')
113
-
114
- def self.spree_fixture( source)
115
- File.join($SpreeFixturePath, source)
165
+ def rails_sandbox_path
166
+ File.expand_path('../../spec/rails_sandbox', __FILE__)
116
167
  end
117
-
118
- def before_all_spree
119
168
 
120
- # we are not a Spree project, nor is it practical to externally generate
121
- # a complete Spree application for testing so we implement a mini migrate/boot of our own
122
- SpreeHelper.load()
123
- SpreeHelper.boot('test_spree_standalone') # key to YAML db e.g test_memory, test_mysql
124
-
125
- puts "Testing Spree standalone - version #{SpreeHelper::version}"
126
-
127
- SpreeHelper.migrate_up # create an sqlite Spree database on the fly
169
+ def rails_sandbox( force = false)
128
170
 
129
- @spree_klass_list = %w{Image OptionType OptionValue Property ProductProperty Variant Taxon Taxonomy Zone}
130
-
131
- @klass = SpreeHelper::get_product_class
132
- @Product_klass = @klass
133
-
134
- @spree_klass_list.each do |k|
135
- instance_variable_set("@#{k}_klass", SpreeHelper::get_spree_class(k))
171
+ rails_sandbox = rails_sandbox_path
172
+
173
+ if(force == true && File.exists?(rails_sandbox))
174
+ FileUtils::rm_rf(rails_sandbox)
136
175
  end
137
176
 
138
- end
139
-
140
- def before_each_spree
177
+ unless(File.exists?(rails_sandbox))
141
178
 
142
- # Reset main tables - TODO should really purge properly, or roll back a transaction
143
- @Product_klass.delete_all
179
+ puts "Creating new Rails sandbox : ", File.expand_path( "#{rails_sandbox}/.." )
144
180
 
145
- @spree_klass_list.each do |k|
146
- instance_variable_get("@#{k}_klass").delete_all
147
- end
148
- end
181
+ run_in( File.expand_path("#{rails_sandbox}/..") ) do |path|
182
+
183
+ name = File.basename(DataShift::sandbox)
149
184
 
150
- end
151
-
152
- def capture(stream)
153
- begin
154
- stream = stream.to_s
155
- eval "$#{stream} = StringIO.new"
156
- yield
157
- result = eval("$#{stream}").string
158
- ensure
159
- eval("$#{stream} = #{stream.upcase}")
185
+ puts "Creating new Rails sandbox in : #{path}"
186
+ system('rails new ' + name)
187
+
188
+ puts "Copying over models :", Dir.glob(File.join(fixtures_path, 'models', '*.rb')).inspect
189
+
190
+ FileUtils::cp_r( Dir.glob(File.join(fixtures_path, 'models', '*.rb')), File.join(name, 'app/models'))
191
+
192
+ migrations = File.expand_path('../../spec/db/migrate', __FILE__)
193
+
194
+ FileUtils::cp_r( migrations, File.join(rails_sandbox, 'db'))
195
+
196
+ puts "Running db:migrate"
197
+
198
+ run_in(rails_sandbox) { system('bundle exec rake db:migrate') }
199
+ end
200
+ end
201
+ rails_sandbox
160
202
  end
161
-
162
- result
163
- end
164
203
 
165
- RSpec.configure do |config|
166
- # config.use_transactional_fixtures = true
167
- # config.use_instantiated_fixtures = false
168
- # config.fixture_path = RAILS_ROOT + '/spec/fixtures'
169
-
170
- # You can declare fixtures for each behaviour like this:
171
- # describe "...." do
172
- # fixtures :table_a, :table_b
173
- #
174
- # Alternatively, if you prefer to declare them only once, you can
175
- # do so here, like so ...
176
- #
177
- # config.global_fixtures = :table_a, :table_b
178
- #
179
- # If you declare global fixtures, be aware that they will be declared
180
- # for all of your examples, even those that don't use them.
181
204
  end
data/spec/thor_spec.rb CHANGED
@@ -8,28 +8,48 @@
8
8
  #
9
9
  require 'thor'
10
10
  require 'thor/group'
11
-
11
+ require 'thor/runner'
12
12
 
13
13
  require File.dirname(__FILE__) + '/spec_helper'
14
14
 
15
- require 'spree_helper'
16
-
17
- load 'products_images.thor'
18
-
19
- include DataShift
20
-
21
15
  describe 'Thor high level command line tasks' do
22
-
16
+
17
+ before(:all) do
18
+ DataShift::load_commands
19
+ end
20
+
23
21
  before(:each) do
22
+ db_clear_connections
24
23
  end
25
-
26
24
 
27
- it "should be able to run spree loaders from a simple command line task" do
28
- Datashift::Spree.start(["products"])
25
+ #thor datashift:export:csv -m, --model=MODEL -r, --result=RESULT ...
26
+ #thor datashift:export:excel -m, --model=MODEL -r, --result=RESULT ...
27
+ #thor datashift:generate:excel -m, --model=MODEL -r, --result=RESULT ...
28
+ #thor datashift:import:csv -i, --input=INPUT -m, --model=MODEL ...
29
+ #thor datashift:import:excel -i, --input=INPUT -m, --model=MODEL ...
30
+ #thor datashift:paperclip:attach -a, --attachment-klass=ATTACHMENT_KLASS -f, -... ...
31
+ #thor datashift:tools:zip -p, --path=PATH -r, --results=RESULTS ...
32
+
33
+ it "should list available datashift thor tasks" do
34
+ x = capture(:stdout){ Thor::Runner.start(["list"]) }
35
+ x.should =~ /.+datashift.+\n---------\n/
36
+ x.should =~ / csv -i/
37
+ x.should =~ / excel -i/
29
38
  end
30
39
 
31
- it "should be able to run an export to excel from a simple command line task" do
32
- Datashift::Spree.start(["products"])
40
+ # N.B Tasks that fire up Rails application need to be run in own Thread or else get
41
+ # ... You cannot have more than one Rails::Application
42
+
43
+ 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"
45
+ x = Thread.new {
46
+ run_in(rails_sandbox()) do
47
+ stdout = capture(:stdout){
48
+ Thor::Runner.start(["datashift:import:excel", '-m', 'Project', '-i', ifixture_file('ProjectsSingleCategories.xls')])
49
+ }
50
+ puts stdout
51
+ end
52
+ }
53
+ x.join
33
54
  end
34
-
35
55
  end
metadata CHANGED
@@ -1,231 +1,244 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datashift
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 9
9
- - 0
10
- version: 0.9.0
5
+ version: 0.10.0
11
6
  platform: ruby
12
7
  authors:
13
- - Thomas Statter
8
+ - Thomas Statter
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2012-09-03 00:00:00 Z
13
+ date: 2012-09-25 00:00:00 Z
19
14
  dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 0
29
- version: "0"
30
- requirement: *id001
31
- prerelease: false
32
- name: spreadsheet
33
- type: :runtime
34
- - !ruby/object:Gem::Dependency
35
- version_requirements: &id002 !ruby/object:Gem::Requirement
36
- none: false
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- hash: 3
41
- segments:
42
- - 0
43
- version: "0"
44
- requirement: *id002
45
- prerelease: false
46
- name: rubyzip
47
- type: :runtime
48
- description: Comprehensive Excel and CSV import/export tools. Shift data between ActiveRecord databases, applications, and projects like Spree
15
+ - !ruby/object:Gem::Dependency
16
+ name: spreadsheet
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: rubyzip
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :runtime
36
+ version_requirements: *id002
37
+ description: " Comprehensive tools to import/export between Excel/CSV and ActiveRecord databases, Rails apps, and any Ruby projec."
49
38
  email: rubygems@autotelik.co.uk
50
39
  executables: []
51
40
 
52
41
  extensions: []
53
42
 
54
43
  extra_rdoc_files:
55
- - LICENSE.txt
56
- - README.markdown
57
- - README.rdoc
44
+ - LICENSE.txt
45
+ - README.markdown
46
+ - README.rdoc
58
47
  files:
59
- - .document
60
- - LICENSE.txt
61
- - README.markdown
62
- - README.rdoc
63
- - Rakefile
64
- - VERSION
65
- - datashift.gemspec
66
- - lib/applications/jruby/jexcel_file.rb
67
- - lib/applications/jruby/word.rb
68
- - lib/datashift.rb
69
- - lib/datashift/delimiters.rb
70
- - lib/datashift/exceptions.rb
71
- - lib/datashift/file_definitions.rb
72
- - lib/datashift/logging.rb
73
- - lib/datashift/mapping_file_definitions.rb
74
- - lib/datashift/method_detail.rb
75
- - lib/datashift/method_details_manager.rb
76
- - lib/datashift/method_dictionary.rb
77
- - lib/datashift/method_mapper.rb
78
- - lib/datashift/model_mapper.rb
79
- - lib/datashift/populator.rb
80
- - lib/exporters/csv_exporter.rb
81
- - lib/exporters/excel_exporter.rb
82
- - lib/exporters/exporter_base.rb
83
- - lib/generators/csv_generator.rb
84
- - lib/generators/excel_generator.rb
85
- - lib/generators/generator_base.rb
86
- - lib/helpers/core_ext/to_b.rb
87
- - lib/helpers/rake_utils.rb
88
- - lib/helpers/spree_helper.rb
89
- - lib/java/poi-3.7/._poi-3.7-20101029.jar5645100390082102460.tmp
90
- - lib/java/poi-3.7/LICENSE
91
- - lib/java/poi-3.7/NOTICE
92
- - lib/java/poi-3.7/RELEASE_NOTES.txt
93
- - lib/java/poi-3.7/lib/commons-logging-1.1.jar
94
- - lib/java/poi-3.7/lib/junit-3.8.1.jar
95
- - lib/java/poi-3.7/lib/log4j-1.2.13.jar
96
- - lib/java/poi-3.7/ooxml-lib/dom4j-1.6.1.jar
97
- - lib/java/poi-3.7/ooxml-lib/geronimo-stax-api_1.0_spec-1.0.jar
98
- - lib/java/poi-3.7/ooxml-lib/xmlbeans-2.3.0.jar
99
- - lib/java/poi-3.7/poi-3.7-20101029.jar
100
- - lib/java/poi-3.7/poi-examples-3.7-20101029.jar
101
- - lib/java/poi-3.7/poi-ooxml-3.7-20101029.jar
102
- - lib/java/poi-3.7/poi-ooxml-schemas-3.7-20101029.jar
103
- - lib/java/poi-3.7/poi-scratchpad-3.7-20101029.jar
104
- - lib/loaders/csv_loader.rb
105
- - lib/loaders/excel_loader.rb
106
- - lib/loaders/loader_base.rb
107
- - lib/loaders/paperclip/image_loader.rb
108
- - lib/loaders/spreadsheet_loader.rb
109
- - lib/loaders/spree/image_loader.rb
110
- - lib/loaders/spree/product_loader.rb
111
- - lib/thor/export.thor
112
- - lib/thor/generate_excel.thor
113
- - lib/thor/import.thor
114
- - lib/thor/spree/bootstrap_cleanup.thor
115
- - lib/thor/spree/products_images.thor
116
- - lib/thor/spree/reports.thor
117
- - lib/thor/tools.thor
118
- - public/spree/products/large/DEMO_001_ror_bag.jpeg
119
- - public/spree/products/large/DEMO_002_Powerstation.jpg
120
- - public/spree/products/large/DEMO_003_ror_mug.jpeg
121
- - public/spree/products/mini/DEMO_001_ror_bag.jpeg
122
- - public/spree/products/mini/DEMO_002_Powerstation.jpg
123
- - public/spree/products/mini/DEMO_003_ror_mug.jpeg
124
- - public/spree/products/original/DEMO_001_ror_bag.jpeg
125
- - public/spree/products/original/DEMO_002_Powerstation.jpg
126
- - public/spree/products/original/DEMO_003_ror_mug.jpeg
127
- - public/spree/products/product/DEMO_001_ror_bag.jpeg
128
- - public/spree/products/product/DEMO_002_Powerstation.jpg
129
- - public/spree/products/product/DEMO_003_ror_mug.jpeg
130
- - public/spree/products/small/DEMO_001_ror_bag.jpeg
131
- - public/spree/products/small/DEMO_002_Powerstation.jpg
132
- - public/spree/products/small/DEMO_003_ror_mug.jpeg
133
- - spec/Gemfile
134
- - spec/csv_exporter_spec.rb
135
- - spec/csv_loader_spec.rb
136
- - spec/datashift_spec.rb
137
- - spec/db/migrate/20110803201325_create_test_bed.rb
138
- - spec/excel_exporter_spec.rb
139
- - spec/excel_generator_spec.rb
140
- - spec/excel_loader_spec.rb
141
- - spec/file_definitions.rb
142
- - spec/fixtures/BadAssociationName.xls
143
- - spec/fixtures/DemoNegativeTesting.xls
144
- - spec/fixtures/ProjectsDefaults.yml
145
- - spec/fixtures/ProjectsMultiCategories.xls
146
- - spec/fixtures/ProjectsMultiCategoriesHeaderLookup.xls
147
- - spec/fixtures/ProjectsSingleCategories.xls
148
- - spec/fixtures/SimpleProjects.xls
149
- - spec/fixtures/config/database.yml
150
- - spec/fixtures/datashift_Spree_db.sqlite
151
- - spec/fixtures/datashift_test_models_db.sqlite
152
- - spec/fixtures/images/DEMO_001_ror_bag.jpeg
153
- - spec/fixtures/images/DEMO_002_Powerstation.jpg
154
- - spec/fixtures/images/DEMO_003_ror_mug.jpeg
155
- - spec/fixtures/images/DEMO_004_ror_ringer.jpeg
156
- - spec/fixtures/negative/SpreeProdMiss1Mandatory.csv
157
- - spec/fixtures/negative/SpreeProdMiss1Mandatory.xls
158
- - spec/fixtures/negative/SpreeProdMissManyMandatory.csv
159
- - spec/fixtures/negative/SpreeProdMissManyMandatory.xls
160
- - spec/fixtures/simple_export_spec.xls
161
- - spec/fixtures/simple_template_spec.xls
162
- - spec/fixtures/spree/SpreeImages.xls
163
- - spec/fixtures/spree/SpreeMultiVariant.csv
164
- - spec/fixtures/spree/SpreeProducts.csv
165
- - spec/fixtures/spree/SpreeProducts.xls
166
- - spec/fixtures/spree/SpreeProductsDefaults.yml
167
- - spec/fixtures/spree/SpreeProductsMandatoryOnly.xls
168
- - spec/fixtures/spree/SpreeProductsMultiColumn.csv
169
- - spec/fixtures/spree/SpreeProductsMultiColumn.xls
170
- - spec/fixtures/spree/SpreeProductsSimple.csv
171
- - spec/fixtures/spree/SpreeProductsSimple.xls
172
- - spec/fixtures/spree/SpreeProductsWithImages.csv
173
- - spec/fixtures/spree/SpreeProductsWithImages.xls
174
- - spec/fixtures/spree/SpreeZoneExample.csv
175
- - spec/fixtures/spree/SpreeZoneExample.xls
176
- - spec/fixtures/test_model_defs.rb
177
- - spec/loader_spec.rb
178
- - spec/method_dictionary_spec.rb
179
- - spec/method_mapper_spec.rb
180
- - spec/spec_helper.rb
181
- - spec/spree_exporter_spec.rb
182
- - spec/spree_generator_spec.rb
183
- - spec/spree_images_loader_spec.rb
184
- - spec/spree_loader_spec.rb
185
- - spec/spree_method_mapping_spec.rb
186
- - spec/spree_variants_loader_spec.rb
187
- - spec/thor_spec.rb
188
- - tasks/config/seed_fu_product_template.erb
189
- - tasks/config/tidy_config.txt
190
- - tasks/db_tasks.rake
191
- - tasks/export/excel_generator.rake
192
- - tasks/file_tasks.rake
193
- - tasks/import/excel.rake
194
- - tasks/word_to_seedfu.rake
195
- - test/helper.rb
196
- - test/test_interact.rb
48
+ - .document
49
+ - LICENSE.txt
50
+ - README.markdown
51
+ - README.rdoc
52
+ - Rakefile
53
+ - VERSION
54
+ - datashift.gemspec
55
+ - lib/applications/apache_poi_extensions.rb
56
+ - lib/applications/excel.rb
57
+ - lib/applications/excel_base.rb
58
+ - lib/applications/jexcel_file.rb
59
+ - lib/applications/jexcel_file_extensions.rb
60
+ - lib/applications/jruby/old_pre_proxy_jexcel_file.rb
61
+ - lib/applications/jruby/word.rb
62
+ - lib/applications/ruby_poi_translations.rb
63
+ - lib/applications/spreadsheet_extensions.rb
64
+ - lib/datashift.rb
65
+ - lib/datashift/delimiters.rb
66
+ - lib/datashift/exceptions.rb
67
+ - lib/datashift/file_definitions.rb
68
+ - lib/datashift/logging.rb
69
+ - lib/datashift/mapping_file_definitions.rb
70
+ - lib/datashift/method_detail.rb
71
+ - lib/datashift/method_details_manager.rb
72
+ - lib/datashift/method_dictionary.rb
73
+ - lib/datashift/method_mapper.rb
74
+ - lib/datashift/model_mapper.rb
75
+ - lib/datashift/populator.rb
76
+ - lib/exporters/csv_exporter.rb
77
+ - lib/exporters/excel_exporter.rb
78
+ - lib/exporters/exporter_base.rb
79
+ - lib/generators/csv_generator.rb
80
+ - lib/generators/excel_generator.rb
81
+ - lib/generators/generator_base.rb
82
+ - lib/guards.rb
83
+ - lib/helpers/core_ext/to_b.rb
84
+ - lib/helpers/rake_utils.rb
85
+ - lib/java/poi-3.7/._poi-3.7-20101029.jar5645100390082102460.tmp
86
+ - lib/java/poi-3.7/LICENSE
87
+ - lib/java/poi-3.7/NOTICE
88
+ - lib/java/poi-3.7/RELEASE_NOTES.txt
89
+ - lib/java/poi-3.7/lib/commons-logging-1.1.jar
90
+ - lib/java/poi-3.7/lib/junit-3.8.1.jar
91
+ - lib/java/poi-3.7/lib/log4j-1.2.13.jar
92
+ - lib/java/poi-3.7/ooxml-lib/dom4j-1.6.1.jar
93
+ - lib/java/poi-3.7/ooxml-lib/geronimo-stax-api_1.0_spec-1.0.jar
94
+ - lib/java/poi-3.7/ooxml-lib/xmlbeans-2.3.0.jar
95
+ - lib/java/poi-3.7/poi-3.7-20101029.jar
96
+ - lib/java/poi-3.7/poi-examples-3.7-20101029.jar
97
+ - lib/java/poi-3.7/poi-ooxml-3.7-20101029.jar
98
+ - lib/java/poi-3.7/poi-ooxml-schemas-3.7-20101029.jar
99
+ - lib/java/poi-3.7/poi-scratchpad-3.7-20101029.jar
100
+ - lib/loaders/csv_loader.rb
101
+ - lib/loaders/excel_loader.rb
102
+ - lib/loaders/loader_base.rb
103
+ - lib/loaders/paperclip/attachment_loader.rb
104
+ - lib/loaders/paperclip/datashift_paperclip.rb
105
+ - lib/loaders/paperclip/image_loading.rb
106
+ - lib/thor/export.thor
107
+ - lib/thor/generate.thor
108
+ - lib/thor/import.thor
109
+ - lib/thor/paperclip.thor
110
+ - lib/thor/tools.thor
111
+ - spec/Gemfile
112
+ - spec/csv_exporter_spec.rb
113
+ - spec/csv_loader_spec.rb
114
+ - spec/datashift_spec.rb
115
+ - spec/excel_exporter_spec.rb
116
+ - spec/excel_generator_spec.rb
117
+ - spec/excel_loader_spec.rb
118
+ - spec/excel_spec.rb
119
+ - spec/file_definitions.rb
120
+ - spec/fixtures/BadAssociationName.xls
121
+ - spec/fixtures/DemoNegativeTesting.xls
122
+ - spec/fixtures/ProjectsDefaults.yml
123
+ - spec/fixtures/ProjectsMultiCategories.xls
124
+ - spec/fixtures/ProjectsMultiCategoriesHeaderLookup.xls
125
+ - spec/fixtures/ProjectsSingleCategories.xls
126
+ - spec/fixtures/SimpleProjects.xls
127
+ - spec/fixtures/config/database.yml
128
+ - spec/fixtures/db/datashift_test_models_db.sqlite
129
+ - spec/fixtures/db/migrate/20110803201325_create_test_bed.rb
130
+ - spec/fixtures/images/DEMO_001_ror_bag.jpeg
131
+ - spec/fixtures/images/DEMO_002_Powerstation.jpg
132
+ - spec/fixtures/images/DEMO_003_ror_mug.jpeg
133
+ - spec/fixtures/images/DEMO_004_ror_ringer.jpeg
134
+ - spec/fixtures/load_datashift.thor
135
+ - spec/fixtures/models/category.rb
136
+ - spec/fixtures/models/empty.rb
137
+ - spec/fixtures/models/loader_release.rb
138
+ - spec/fixtures/models/long_and_complex_table_linked_to_version.rb
139
+ - spec/fixtures/models/milestone.rb
140
+ - spec/fixtures/models/owner.rb
141
+ - spec/fixtures/models/project.rb
142
+ - spec/fixtures/models/test_model_defs.rb
143
+ - spec/fixtures/models/version.rb
144
+ - spec/fixtures/simple_export_spec.xls
145
+ - spec/fixtures/simple_template_spec.xls
146
+ - spec/fixtures/test_model_defs.rb
147
+ - spec/loader_spec.rb
148
+ - spec/method_dictionary_spec.rb
149
+ - spec/method_mapper_spec.rb
150
+ - spec/rails_sandbox/.gitignore
151
+ - spec/rails_sandbox/Gemfile
152
+ - spec/rails_sandbox/README.rdoc
153
+ - spec/rails_sandbox/Rakefile
154
+ - spec/rails_sandbox/app/assets/images/rails.png
155
+ - spec/rails_sandbox/app/assets/javascripts/application.js
156
+ - spec/rails_sandbox/app/assets/stylesheets/application.css
157
+ - spec/rails_sandbox/app/controllers/application_controller.rb
158
+ - spec/rails_sandbox/app/helpers/application_helper.rb
159
+ - spec/rails_sandbox/app/mailers/.gitkeep
160
+ - spec/rails_sandbox/app/models/.gitkeep
161
+ - spec/rails_sandbox/app/models/category.rb
162
+ - spec/rails_sandbox/app/models/empty.rb
163
+ - spec/rails_sandbox/app/models/loader_release.rb
164
+ - spec/rails_sandbox/app/models/long_and_complex_table_linked_to_version.rb
165
+ - spec/rails_sandbox/app/models/milestone.rb
166
+ - spec/rails_sandbox/app/models/owner.rb
167
+ - spec/rails_sandbox/app/models/project.rb
168
+ - spec/rails_sandbox/app/models/test_model_defs.rb
169
+ - spec/rails_sandbox/app/models/version.rb
170
+ - spec/rails_sandbox/app/views/layouts/application.html.erb
171
+ - spec/rails_sandbox/config.ru
172
+ - spec/rails_sandbox/config/application.rb
173
+ - spec/rails_sandbox/config/boot.rb
174
+ - spec/rails_sandbox/config/database.yml
175
+ - spec/rails_sandbox/config/environment.rb
176
+ - spec/rails_sandbox/config/environments/development.rb
177
+ - spec/rails_sandbox/config/environments/production.rb
178
+ - spec/rails_sandbox/config/environments/test.rb
179
+ - spec/rails_sandbox/config/initializers/backtrace_silencers.rb
180
+ - spec/rails_sandbox/config/initializers/inflections.rb
181
+ - spec/rails_sandbox/config/initializers/mime_types.rb
182
+ - spec/rails_sandbox/config/initializers/secret_token.rb
183
+ - spec/rails_sandbox/config/initializers/session_store.rb
184
+ - spec/rails_sandbox/config/initializers/wrap_parameters.rb
185
+ - spec/rails_sandbox/config/locales/en.yml
186
+ - spec/rails_sandbox/config/routes.rb
187
+ - spec/rails_sandbox/db/migrate/20110803201325_create_test_bed.rb
188
+ - spec/rails_sandbox/db/schema.rb
189
+ - spec/rails_sandbox/db/seeds.rb
190
+ - spec/rails_sandbox/lib/assets/.gitkeep
191
+ - spec/rails_sandbox/lib/tasks/.gitkeep
192
+ - spec/rails_sandbox/log/.gitkeep
193
+ - spec/rails_sandbox/public/404.html
194
+ - spec/rails_sandbox/public/422.html
195
+ - spec/rails_sandbox/public/500.html
196
+ - spec/rails_sandbox/public/favicon.ico
197
+ - spec/rails_sandbox/public/index.html
198
+ - spec/rails_sandbox/public/robots.txt
199
+ - spec/rails_sandbox/script/rails
200
+ - spec/rails_sandbox/test/fixtures/.gitkeep
201
+ - spec/rails_sandbox/test/functional/.gitkeep
202
+ - spec/rails_sandbox/test/integration/.gitkeep
203
+ - spec/rails_sandbox/test/performance/browsing_test.rb
204
+ - spec/rails_sandbox/test/test_helper.rb
205
+ - spec/rails_sandbox/test/unit/.gitkeep
206
+ - spec/rails_sandbox/vendor/assets/javascripts/.gitkeep
207
+ - spec/rails_sandbox/vendor/assets/stylesheets/.gitkeep
208
+ - spec/rails_sandbox/vendor/plugins/.gitkeep
209
+ - spec/spec_helper.rb
210
+ - spec/thor_spec.rb
211
+ - tasks/config/seed_fu_product_template.erb
212
+ - tasks/config/tidy_config.txt
213
+ - tasks/db_tasks.rake
214
+ - tasks/file_tasks.rake
215
+ - tasks/word_to_seedfu.rake
197
216
  homepage: http://github.com/autotelik/datashift
198
217
  licenses:
199
- - MIT
218
+ - MIT
200
219
  post_install_message:
201
220
  rdoc_options: []
202
221
 
203
222
  require_paths:
204
- - lib
223
+ - lib
205
224
  required_ruby_version: !ruby/object:Gem::Requirement
206
225
  none: false
207
226
  requirements:
208
- - - ">="
209
- - !ruby/object:Gem::Version
210
- hash: 3
211
- segments:
212
- - 0
213
- version: "0"
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: "0"
214
230
  required_rubygems_version: !ruby/object:Gem::Requirement
215
231
  none: false
216
232
  requirements:
217
- - - ">="
218
- - !ruby/object:Gem::Version
219
- hash: 3
220
- segments:
221
- - 0
222
- version: "0"
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: "0"
223
236
  requirements: []
224
237
 
225
238
  rubyforge_project:
226
- rubygems_version: 1.8.24
239
+ rubygems_version: 1.8.15
227
240
  signing_key:
228
241
  specification_version: 3
229
- summary: Shift data betwen applications and Active Record
242
+ summary: Shift data betwen Excel/CSV and any Ruby app
230
243
  test_files: []
231
244