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 module CodeOcean
class File < ActiveRecord::Base class File < ActiveRecord::Base
include DefaultValues
DEFAULT_WEIGHT = 1.0 DEFAULT_WEIGHT = 1.0
ROLES = %w(main_file reference_implementation regular_file teacher_defined_test user_defined_file user_defined_test) 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) TEACHER_DEFINED_ROLES = ROLES - %w(user_defined_file)
@ -74,10 +76,8 @@ module CodeOcean
private :set_ancestor_values private :set_ancestor_values
def set_default_values def set_default_values
self.content ||= '' set_default_values_if_present(content: '', hidden: false, read_only: false)
self.hidden ||= false set_default_values_if_present(weight: DEFAULT_WEIGHT) if teacher_defined_test?
self.read_only ||= false
self.weight ||= DEFAULT_WEIGHT if teacher_defined_test?
end end
private :set_default_values 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 class ExecutionEnvironment < ActiveRecord::Base
include Creation include Creation
include DefaultValues
VALIDATION_COMMAND = 'whoami' VALIDATION_COMMAND = 'whoami'
@ -20,8 +21,7 @@ class ExecutionEnvironment < ActiveRecord::Base
validates :run_command, presence: true validates :run_command, presence: true
def set_default_values def set_default_values
self.permitted_execution_time ||= 60 if has_attribute?(:permitted_execution_time) set_default_values_if_present(permitted_execution_time: 60, pool_size: 0)
self.pool_size ||= 0 if has_attribute?(:pool_size)
end end
private :set_default_values private :set_default_values

View File

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

View File

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