初めまして。秋山 好一と申します、よろしくお願いします。
ruby初心者です。たのしいrubyのはずが、全般的な理解はほとんど出来ていません。
配列クラスに関心をもち、エクセルvbaでの経験から、ファジィ数値データ処理 
をやり始めました。
配列の部分を集中的に学習しました。これが功を奏したのか、たのしいrubyに変 
化しつつありますが、この先は自信がありません?

質問事項は、def文の連続というパターンは、rubyでは何か不自然/邪道なので 
しょうか?ということです。
その他、雑誌等に投稿するときは、ユーザインターフェイス(例えば'Tk'などを 
使用して)作成する必要があるのでしょうか?

類似関係(ファジィ同値関係)分析の一例を以下に示しておきます。使用した 
rubyのバージョンは2.0です
window7とUbuntuで、動作を確認しています。

csv形式で、分析データを作成しておきます。
def文で、データを読み取ります。
def文で、類似度係数行列を作成します。
def文で、推移性行列を作成します。
def文で、類似関係(ファジィ同値関係)を表示します。

上記プログラムの概要と実行結果は以下の通りです。
項目A,B,C,Dで、(A-C) ,(B-D)がクラスターを形成する例です。

# encoding: utf-8
require "csv"
require "./read-csv.rb"
require "./item-disp.rb"
require "./data-disp.rb"
require "./similar-coeff.rb"
  require "./max-trans.rb"
  require "./cluster-pat.rb"
#-----------main---------------------------
puts "csvファイル名を入力してください"
sd = STDIN.gets.chomp mat = read_csv(sd)
puts "読み取ったデータ"
mat = item_disp(mat) mat = data_disp(mat)
puts "類似度係数行列"
mat = item_disp(mat)
mat = similar_coeff(mat)
puts "最大法推移性行列"
mat = item_disp(mat)
mat = max_trans(mat)
puts "パターン識別行列"
mat = cluster_pat(mat)


A,B,C,Dのクイズに対して、1は正答、0は誤答と考えてください
実行結果はつぎの通りです。
読み取ったデータ
  [A]    [B]    [C]    [D]
1.00   1.00   1.00   0.00
0.00   1.00   0.00   0.00
1.00   1.00   1.00   1.00
1.00   1.00   0.00   1.00
0.00   1.00   0.00   1.00
1.00   0.00   1.00   0.00
1.00   1.00   1.00   0.00
1.00   0.00   1.00   0.00
1.00   1.00   0.00   0.00
1.00   0.00   1.00   0.00

類似度係数行列
  [A]    [B]    [C]    [D]
1.00   0.50   0.80   0.30
0.50   1.00   0.30   0.60
0.80   0.30   1.00   0.30
0.30   0.60   0.30   1.00

最大法推移性行列
  [A]    [B]    [C]    [D]
1.00   0.50   0.80   0.50
0.50   1.00   0.50   0.60
0.80   0.50   1.00   0.50
0.50   0.60   0.50   1.00

パターン識別行列
1回目 識別レベル 1.00
[A]  [B]  [C]  [D]
  1    0    0    0
  0    1    0    0
  0    0    1    0
  0    0    0    1
2回目 識別レベル 0.80
[A]  [B]  [C]  [D]
  1    0    1    0
  0    1    0    0
  1    0    1    0
  0    0    0    1
["A", "C"]
3回目 識別レベル 0.60
[A]  [B]  [C]  [D]
  1    0    1    0
  0    1    0    1
  1    0    1    0
  0    1    0    1
["A", "C"]
["B", "D"]
4回目 識別レベル 0.50
[A]  [B]  [C]  [D]
  1    1    1    1
  1    1    1    1
  1    1    1    1
  1    1    1    1
["A", "B", "C", "D"]