aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/export/base.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/export/base.rb')
-rw-r--r--app/models/export/base.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/models/export/base.rb b/app/models/export/base.rb
index 6085e0ffb..6a1eb791d 100644
--- a/app/models/export/base.rb
+++ b/app/models/export/base.rb
@@ -38,8 +38,28 @@ class Export::Base < ActiveRecord::Base
end
end
+ def self.user_visible?
+ false
+ end
+
+ def self.inherited child
+ super child
+ child.instance_eval do
+ def self.user_visible?
+ true
+ end
+ end
+ end
+
def self.option name, opts={}
store_accessor :options, name
+
+ if opts[:serialize]
+ define_method name do
+ JSON.parse(options[name.to_s]) rescue opts[:serialize].new
+ end
+ end
+
if !!opts[:required]
validates name, presence: true
end
@@ -51,6 +71,10 @@ class Export::Base < ActiveRecord::Base
@options ||= {}
end
+ def self.options= options
+ @options = options
+ end
+
include IevInterfaces::Task
def self.model_name