diff options
Diffstat (limited to 'app/models/export/base.rb')
| -rw-r--r-- | app/models/export/base.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/app/models/export/base.rb b/app/models/export/base.rb index c65539635..6afa6b8e0 100644 --- a/app/models/export/base.rb +++ b/app/models/export/base.rb @@ -52,7 +52,7 @@ class Export::Base < ActiveRecord::Base begin klass_name.constantize rescue => e - Rails.logger.info "Failed: #{e.message}" + Rails.logger.info "Failed: #{e.message}".red nil end end @@ -83,10 +83,18 @@ class Export::Base < ActiveRecord::Base end if !!opts[:required] - validates name, presence: true + if opts[:depends] + validates name, presence: true, if: ->(record){ record.send(opts[:depends][:option]) == opts[:depends][:value]} + else + validates name, presence: true + end end @options ||= {} @options[name] = opts + + if block_given? + yield Export::OptionProxy.new(self, opts.update(name: name)) + end end def self.options |
