diff options
| author | Alban Peignier | 2012-06-04 16:24:49 +0200 |
|---|---|---|
| committer | Alban Peignier | 2012-06-04 16:24:49 +0200 |
| commit | 5eb971da6c9808cc2ff8f1ab1bcc7ffecc53442d (patch) | |
| tree | ee027c50b87051ce4497b60cdb85d1129266e84f | |
| parent | 6163c10aa33d62e735d63aae7df796f0152ad3cc (diff) | |
| download | chouette-core-5eb971da6c9808cc2ff8f1ab1bcc7ffecc53442d.tar.bz2 | |
Add several import types support
| -rw-r--r-- | Gemfile.lock | 2 | ||||
| -rw-r--r-- | app/models/import.rb | 14 | ||||
| -rw-r--r-- | app/models/neptune_import.rb | 7 | ||||
| -rw-r--r-- | db/migrate/20120531070108_add_type_and_options_to_import.rb | 8 | ||||
| -rw-r--r-- | db/schema.rb | 2 | ||||
| -rw-r--r-- | spec/models/import_spec.rb | 8 |
6 files changed, 39 insertions, 2 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index 4e2d8e900..854660c94 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: git://chouette.dryade.priv/ninoxe - revision: 79d9dec838bf0c6e199fac649507abb060de1e0e + revision: 1b68352e83c2ef898fdab7cd4c4eeddba6a977d5 specs: ninoxe (0.0.8) GeoRuby diff --git a/app/models/import.rb b/app/models/import.rb index 64b5b5624..b08f8e8f3 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -11,6 +11,14 @@ class Import < ActiveRecord::Base has_many :log_messages, :class_name => "ImportLogMessage", :order => :position, :dependent => :destroy + serialize :options + + after_initialize :define_options + + def define_options + self.options = {} + end + def loader @loader ||= ::Chouette::Loader.new(referential.slug) end @@ -55,6 +63,10 @@ class Import < ActiveRecord::Base "#{Import.model_name.humanize} #{id}" end + def import_options + {} + end + def import begin log_messages.create :key => :started @@ -64,7 +76,7 @@ class Import < ActiveRecord::Base loader.import file end else - loader.import saved_resources + loader.import saved_resources, import_options end update_attribute :status, "completed" rescue => e diff --git a/app/models/neptune_import.rb b/app/models/neptune_import.rb new file mode 100644 index 000000000..f00947129 --- /dev/null +++ b/app/models/neptune_import.rb @@ -0,0 +1,7 @@ +class NeptuneImport < Import + + def import_options + { :format => :neptune } + end + +end diff --git a/db/migrate/20120531070108_add_type_and_options_to_import.rb b/db/migrate/20120531070108_add_type_and_options_to_import.rb new file mode 100644 index 000000000..490427c8a --- /dev/null +++ b/db/migrate/20120531070108_add_type_and_options_to_import.rb @@ -0,0 +1,8 @@ +class AddTypeAndOptionsToImport < ActiveRecord::Migration + def change + change_table :imports do |t| + t.string :type, :options + end + Import.update_all :type => "NeptuneImport" + end +end diff --git a/db/schema.rb b/db/schema.rb index d8532b785..5e65e41e4 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -184,6 +184,8 @@ ActiveRecord::Schema.define(:version => 20120531091529) do t.string "status" t.datetime "created_at" t.datetime "updated_at" + t.string "type" + t.string "options" end add_index "imports", ["referential_id"], :name => "index_imports_on_referential_id" diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb index f307b59db..f0b76c15e 100644 --- a/spec/models/import_spec.rb +++ b/spec/models/import_spec.rb @@ -34,4 +34,12 @@ describe Import do end + describe "#options" do + + it "should be empty by default" do + subject.options.should be_empty + end + + end + end |
