Подобно тому, как @derekerdmann сделал это, я мощь использование:
%w[
survey survey_section question_group question
dependency dependency_condition answer answer_type
answer_validity validation validation_condition validation_prefix
validation_precludes error error_type error_level error_code
style style_info style_override user
user_model_name user_type
].each { |m| require m }
Обтекание и выравнивание, как это делается в Vim, с использованием плагина Align.
Но, скорее всего, я поместил все требования в отдельный файл и потребовал бы его, подобно использованию файла include в C, чтобы вытащить кучу других включенных файлов. В этом случае они все еще загружаются, но они скрыты из виду. Так, в requirements.rb
файле я бы:
require 'answer'
require 'answer_type'
require 'answer_validity'
require 'dependency'
require 'dependency_condition'
require 'error'
require 'error_code'
require 'error_level'
require 'error_type'
require 'question'
require 'question_group'
require 'style'
require 'style_info'
require 'style_override'
require 'survey'
require 'survey_section'
require 'user'
require 'user_model_name'
require 'user_type'
require 'validation'
require 'validation_condition'
require 'validation_precludes'
require 'validation_prefix'
И в моем главном файле кода я бы require_relative './requirements'
.
С другой стороны, я бы разделить списки в более управляемой группировки, такие, как в алфавитном порядке:
%w[ answer answer_type answer_validity ].each { |r| require r }
%w[ dependency dependency_condition ].each { |r| require r }
%w[ error error_code error_level error_type ].each { |r| require r }
%w[ question question_group ].each { |r| require r }
%w[ style style_info style_override survey survey_section ].each { |r| require r }
%w[ user user_model_name user_type ].each { |r| require r }
%w[ validation validation_condition validation_precludes validation_prefix ].each { |r| require r }
Это не так DRY, как хотелось бы, но это более организованным и читаемым.
Этот вопрос будет лучше работать на http://codereview.stackexchange.com/ –