3

サンプルのルビーコードを取り、それを書き直してインデントして、次のルビーコードを読みやすくし、1行に収まるようにする方法(80〜90文字)?

%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 }

このような長い配列がコードベース全体に存在するため、これを読むのは苦痛です。それはたくさんの水平スクロールを必要とします、そして私はそれが好きではありません

これを改善する方法はありますか?

4

2 に答える 2

8

空白で分割される%wため、いつでも改行を挿入して同じ結果を得ることができます。

dependencies = %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)

dependencies.each {|m| require m }
于 2012-05-18T13:21:01.723 に答える
2

@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 }

そのようなラッピングとアラインメントは、Alignプラグインを使用してVimで簡単に行えます。

しかし、おそらく、Cでインクルードファイルを使用して他のインクルードファイルの束をプルするのと同じように、すべてのrequireを別のファイルに入れてrequireします。この場合、それらはまだロードされていますが、見えません。だから、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 }

私が望むほどドライではありませんが、より整理されて読みやすくなっています。

于 2012-05-23T06:31:19.363 に答える