diff options
| author | Zog | 2018-03-08 11:46:20 +0100 |
|---|---|---|
| committer | Zog | 2018-03-12 12:00:14 +0100 |
| commit | a4a075f5eec935dd6a0dbf0a861b6ada13b1dcbc (patch) | |
| tree | b046d69937ce998d918a7a4bf5a3e2e418961fa1 /app/models/export/base.rb | |
| parent | db15dc6158939d2577ccd53aac66a283ce4f3338 (diff) | |
| download | chouette-core-a4a075f5eec935dd6a0dbf0a861b6ada13b1dcbc.tar.bz2 | |
Refs #6133; Add options on the Exports, and forward them tu the UX
Diffstat (limited to 'app/models/export/base.rb')
| -rw-r--r-- | app/models/export/base.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/app/models/export/base.rb b/app/models/export/base.rb index 844c66d82..350edd215 100644 --- a/app/models/export/base.rb +++ b/app/models/export/base.rb @@ -1,6 +1,8 @@ class Export::Base < ActiveRecord::Base self.table_name = "exports" + validates :type, presence: true + def self.messages_class_name "Export::Message" end @@ -9,12 +11,56 @@ class Export::Base < ActiveRecord::Base "Export::Resource" end + def self.human_name + self.name.demodulize.humanize + end + + if Rails.env.development? + def self.force_load_descendants + path = Rails.root.join 'app/models/export' + Dir.chdir path do + Dir['**/*.rb'].each do |src| + next if src =~ /^base/ + klass_name = "Export::#{src[0..-4].classify}" + Rails.logger.info "Loading #{klass_name}" + begin + klass_name.constantize + rescue => e + Rails.logger.info "Failed: #{e.message}" + nil + end + end + end + end + end + + def self.option name, opts + store_accessor :options, name + if !!opts[:required] + validates name, presence: true + end + @options ||= {} + @options[name] = opts + end + + def self.options + @options + end + include IevInterfaces::Task def self.model_name ActiveModel::Name.new Export::Base, Export::Base, "Export" end + def self.user_visible_descendants + descendants.select &:user_visible? + end + + def self.user_visible? + true + end + private def initialize_fields |
