Commit graph

110 commits

Author SHA1 Message Date
Zach Dennis 161cf017f9 Renamed #values_sql_for_column_names_and_attributes to #values_sql_for_columns_and_attributes and cleaned up how it dealt with columns.
* added back in the support for type-casting based on the database column
* removed unused method in ActiveRecord::Import::AbstractAdapter

https://github.com/zdennis/activerecord-import/issues#issue/5
2011-01-10 22:36:52 -05:00
Ben Woosley 1a8082444b Simplify validations_arry_for_column_names_and_attributes with map, each_with_index and Hash.
Hash[column_names.zip(attributes)] would be much clearer, but would leave nil values for missing attributes which doesn't match the existing behavior.
2011-01-10 22:27:24 -05:00
Ben Woosley c9f246f4e2 Consolidate insert_sql between supports_import? cases so both make use of options[:ignore] 2011-01-10 22:27:23 -05:00
Ben Woosley 9727a04362 Reinstate the deleting of the :validate option - not because it was causing trouble, but to be a bit paranoid (reverts 63d6faeccee14b6e571a25b6f51f340d5da325f5) 2011-01-10 22:27:23 -05:00
Ben Woosley a3e9b4f040 Enable ImportSupport on Postgresql - the test suite now passes in full 2011-01-10 22:27:23 -05:00
Ben Woosley 7bd0e2693a Fix that values_sql_for_attributes wasn't accessing the columns with the same indexes as the array_of_attributes, and so was sometime mismatched.
Also return to the column_names[j] == primary_key style of testing, as the column itself is not always present
2011-01-10 22:27:22 -05:00
Ben Woosley df75eea4db Go more direct in the columns lookup 2011-01-10 22:26:39 -05:00
Ben Woosley 35786fef17 Codify import results in a Struct rather than OpenStruct, as it's a faster, more rigid structure 2011-01-10 22:12:34 -05:00
Ben Woosley 876546c584 #dup array_of_attributes a bit earlier - there's no point in duping the primary_key nulls we might put in next 2011-01-10 22:12:34 -05:00
Ben Woosley 899af1e412 No reason to pull :validate out of the options hash, and it's obfuscatory - remove. 2011-01-10 22:12:34 -05:00
Ben Woosley 18012bbbca More simplicity, once again with #map 2011-01-10 22:12:33 -05:00
Ben Woosley 3756e4f2b4 Refactor remaining supports_import? split to share code in values_sql_for_column_names_and_attributes. This means both with properly support sequences.
Rather than pass a ton of variables (sequence_name, columns, column_names, &c.), move the method out of the connection.  Also, use Column#primary to check primary key status.
2011-01-10 22:12:29 -05:00
Ben Woosley 5f4d9b3290 Extract columns_sql local more generally in #import_without_validations_or_callbacks. This is DRY-er, more consistent between the supports_import? cases and enables us to inline #quote_column_names 2011-01-10 22:11:54 -05:00
Ben Woosley 6b2153a841 Simplify values_sql_for_column_names_and_attributes with #map 2011-01-10 22:11:51 -05:00
Ben Woosley 7aefcf1164 Inline multiple_value_sets_insert_sql because it never changes, isn't particularly well-factored, and for parity with "not supports_import?" 2011-01-10 21:57:41 -05:00
Ben Woosley 2ada56f858 Avoid N << method calls in #import_without_validations_or_callbacks by chaining #map (is simpler, should be more performant, AFAIK) 2011-01-10 21:57:40 -05:00
Ben Woosley fff00af942 Don't initialize options[:on_duplicate_key_update] if the adapter doesn't #supports_on_duplicate_key_update? 2011-01-10 21:57:40 -05:00
Ben Woosley b3dda82c10 :check_dependencies task isn't provided by Jeweler when a Gemfile is around. See: https://github.com/technicalpickles/jeweler/blob/master/lib/jeweler/tasks.rb 2011-01-10 21:57:40 -05:00
Ben Woosley 0bbc24ba38 Keep test/database.yml out of the project so others can keep their own around 2011-01-10 21:57:40 -05:00
Ben Woosley b1c73ffac2 Update test/database.yml.sample from test/database.yml 2011-01-10 21:57:40 -05:00
Ben Woosley 7f1e4b4a4b Discriminate between ruby 1.9 and 1.8 in the bundle so we don't blow up on ruby-debug 2011-01-10 21:57:40 -05:00
Zach Dennis 3a91f37c2a Updating Gemfile to include rake so it works with rvm and bundler without complaint 2011-01-05 19:12:48 -05:00
Zach Dennis f8a30f4665 Version bump to 0.2.4 2011-01-05 19:11:09 -05:00
Zach Dennis 8fbf841fde Use ActiveRecord Column#type_cast to properly parse fields represented by a string.
Fixed issued reported by Nick Burdick where imported datetime fields was not correctly working with certain string formats for MySQL which doesn't support MM/DD/YYYY format directly.
2011-01-05 19:09:55 -05:00
Zach Dennis 8e266f74f7 Version bump to 0.2.3 2010-11-03 10:55:36 -04:00
Zach Dennis e873a4aea2 No longer support 3.0.0rc, force rails ~> 3.0.0. Resolves dependency issue where gem was installing activesupport and activemodel 3.0.0rc versions even when 3.0.0 or 3.0.1 were installed 2010-11-03 10:55:36 -04:00
Zach Dennis fdb3dc9578 Version bump to 0.2.2 2010-10-05 22:38:31 -04:00
Zach Dennis 6c9cbc096c Updatin to not depend on Rails 3, only ActiveRecord, both in gem file and in tests 2010-10-05 22:38:18 -04:00
Zach Dennis 142a61aaa9 Version bump to 0.2.1 2010-10-05 11:28:48 -04:00
Zach Dennis 6783a34902 Updating Gemfile to work with Rails 3.0.0rc and 3.0.0 or higher.
resolves http://github.com/zdennis/activerecord-import/issues#issue/2
2010-10-05 11:28:26 -04:00
Zach Dennis 5fa9b93003 Updating MySQL import tests to load files in a ruby1.9 friendly way. 2010-09-26 22:10:12 -04:00
Zach Dennis 66a80d54ae Version bump to 0.2.0 2010-09-26 20:48:15 -04:00
Zach Dennis cb542a86f4 Updated how activerecord-import loads so it is done after a connection is established in ActiveRecord. This supports loading import for multiple adapters automatically w/o having to have a person require those specifically. 2010-09-26 20:48:14 -04:00
Zach Dennis 6c6a0d22b9 Updating Gemfile to require jeweler and rakefile to use Bundler to ensure dependencies are installed. 2010-09-26 20:48:14 -04:00
Zach Dennis 163f5c64be Deprecating usage of "require 'activerecord-import/<adapter_name>'" in favor of "require 'activerecord-import'". 2010-09-26 17:07:41 -04:00
Zach Dennis 90057c43eb Renaming ActiveRecord::Extensions to ActiveRecord::Import. 2010-09-26 17:05:02 -04:00
Zach Dennis 948dec0be2 Refactoring to allow for separation of activerecord-import code and activerecord's connection adapters. 2010-09-26 16:51:19 -04:00
Zach Dennis b6c72f8456 Providing support for the Mysql2 adapter. 2010-09-26 16:04:00 -04:00
Zach Dennis f61eabda19 Updating README to point to wiki 2010-08-21 12:44:48 -04:00
Zach Dennis 83c3dedf96 Bump version to 0.1.0. 2010-08-10 21:44:45 -04:00
Zach Dennis 81a4136a8d Updating README 2010-08-10 21:44:35 -04:00
Victor Costan 42175ca94a Initial work for re-packaging as gem. 2010-08-10 21:39:26 -04:00
Zach Dennis 3820a5cdb6 Updated gem versions, specifically Rails 3 to be the latest rc candidate. 2010-08-10 20:48:53 -04:00
Zach Dennis 24feb801f5 Updated how tests are run so Rake is not invoked twice.
* removing support for Oracle in the rakefile as it is no currently supported
2010-08-10 20:48:16 -04:00
Zach Dennis fc7f179a34 Removed test.log and test.db from Git. Adding to gitignore. 2010-08-10 20:47:26 -04:00
Zach Dennis e0dff4c055 Moved all adapter specific code into adapters/ directory and updated all adapters to utilize the same "require_adapter" method of loading specific-database adapters.
* Adds back in SQLite3 and PostgreSQL support

issue-url: http://github.com/zdennis/activerecord-import/issues#issue/1 
[contributes #1]
2010-08-10 20:46:32 -04:00
Zach Dennis 4fcfa7fd14 Restructuring directories. 2010-06-26 15:43:34 -04:00
Zach Dennis 5c287f1042 Added back in basic benchmark support. To run:
ruby benchmark/benchmark.rb --adapter mysql --num 1000
  ruby benchmark/benchmark.rb --adapter mysql --num 1000 --to-csv /tmp/results.csv
  ruby benchmark/benchmark.rb --adapter mysql --num 1000 --to-html /tmp/results.html
2010-04-08 23:12:28 -04:00
Zach Dennis 369a5e0e64 Adding a README file. 2010-04-08 22:13:55 -04:00
Zach Dennis 3523138a7a * Added basic import support for PostgreSQL.
* Requiring database adapter is now "require 'ar-extensions/import/<adapter_name>" so it won't conflict with previous versions of ar-extensions or other libraries extracted out of older ar-extensions, which "require 'ar-extensions'"
2010-04-08 20:57:10 -04:00