extracted method

This commit is contained in:
Hauke Klement
2015-03-12 11:07:29 +01:00
parent 6ee0b6bf81
commit 48f1b97aea
5 changed files with 18 additions and 10 deletions

View File

@ -2,6 +2,8 @@ require File.expand_path('../../../uploaders/file_uploader', __FILE__)
module CodeOcean
class File < ActiveRecord::Base
include DefaultValues
DEFAULT_WEIGHT = 1.0
ROLES = %w(main_file reference_implementation regular_file teacher_defined_test user_defined_file user_defined_test)
TEACHER_DEFINED_ROLES = ROLES - %w(user_defined_file)
@ -74,10 +76,8 @@ module CodeOcean
private :set_ancestor_values
def set_default_values
self.content ||= ''
self.hidden ||= false
self.read_only ||= false
self.weight ||= DEFAULT_WEIGHT if teacher_defined_test?
set_default_values_if_present(content: '', hidden: false, read_only: false)
set_default_values_if_present(weight: DEFAULT_WEIGHT) if teacher_defined_test?
end
private :set_default_values

View File

@ -0,0 +1,8 @@
module DefaultValues
def set_default_values_if_present(options = {})
options.each do |attribute, value|
send(:"#{attribute}=", send(:"#{attribute}") || value) if has_attribute?(attribute)
end
end
private :set_default_values_if_present
end

View File

@ -1,5 +1,6 @@
class ExecutionEnvironment < ActiveRecord::Base
include Creation
include DefaultValues
VALIDATION_COMMAND = 'whoami'
@ -20,8 +21,7 @@ class ExecutionEnvironment < ActiveRecord::Base
validates :run_command, presence: true
def set_default_values
self.permitted_execution_time ||= 60 if has_attribute?(:permitted_execution_time)
self.pool_size ||= 0 if has_attribute?(:pool_size)
set_default_values_if_present(permitted_execution_time: 60, pool_size: 0)
end
private :set_default_values

View File

@ -1,6 +1,7 @@
class Exercise < ActiveRecord::Base
include Context
include Creation
include DefaultValues
after_initialize :generate_token
after_initialize :set_default_values
@ -47,7 +48,7 @@ class Exercise < ActiveRecord::Base
end
def set_default_values
self.public ||= false
set_default_values_if_present(public: false)
end
private :set_default_values

View File

@ -1,5 +1,6 @@
class FileType < ActiveRecord::Base
include Creation
include DefaultValues
AUDIO_FILE_EXTENSIONS = %w(.aac .flac .m4a .mp3 .ogg .wav .wma)
IMAGE_FILE_EXTENSIONS = %w(.bmp .gif .jpeg .jpg .png)
@ -24,9 +25,7 @@ class FileType < ActiveRecord::Base
end
def set_default_values
self.binary ||= false if has_attribute?(:binary)
self.executable ||= false if has_attribute?(:executable)
self.renderable ||= false if has_attribute?(:renderable)
set_default_values_if_present(binary: false, executable: false, renderable: false)
end
private :set_default_values