diff options
Diffstat (limited to 'app/models/referential.rb')
| -rw-r--r-- | app/models/referential.rb | 37 | 
1 files changed, 4 insertions, 33 deletions
diff --git a/app/models/referential.rb b/app/models/referential.rb index 84640e43c..d7c5bba7e 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -34,44 +34,15 @@ class Referential < ActiveRecord::Base      self    end -  before_create :prepare +  before_create :create_schema    before_destroy :destroy_schema -  attr_accessor :resources -  attr_accessor :loader - -  def loader -    @loader ||= ::Chouette::Loader.new(slug) -  end +  after_create :import_resources -  def prepare -    if resources -      import_resources -    else -      create_schema -    end -  end - -  def with_original_filename -    Dir.mktmpdir do |tmp_dir| -      tmp_link = File.join(tmp_dir, resources.original_filename) -      FileUtils.ln_s resources.path, tmp_link -      yield tmp_link -    end -  end +  attr_accessor :resources    def import_resources -    # Apartment::Database.create create tables -    loader.create -    begin -      with_original_filename do |file| -        # chouette-command checks the file extension (and requires .zip) :( -        loader.import file -      end -    rescue => e -      loader.drop -      raise e -    end +    imports.create(:resources => resources) if resources    end    def create_schema  | 
