出沢です

有り難うございました、これですっきり書けました。

>   def deletable?(roll)
>     case result = Deletable[roll][@status]
>     when true, false ; result       # true/falseならそのまま
>     when Symbol      ; send(result) # Railsなので send が定義されてました 
>     else             ; raise ArgumentError
>     end
>   end

すっきり == caseもなし  と固定観点が曇らせていました。

今回の新発見 
     case resurt.class
     when True,False ;result
     when Symbol     ; send(result)
     end

   でなくてよいのですね。

  > # ブロックパラメータの中で()が使える
   これ知りませんでした。

rubyの柔軟性ってすごいですね

ご指摘いただいた
>   # 判定メソッド(メソッド名がよくないので意味のわかる名前に改名すべき)
>   private                       # 内部用なのでprivateに
> # 数字よりもシンボルを使ったほうが可読性が上がる

は、実装ではそうしてあります。
シンボルでは値が代入できない(ですよね?)ので、定数で ですが。

>    (1..3).each{|roll|           # 1〜3を表現したいなら範囲オブジェクトを使う
実は roll も status も連続ではないのです。
ですので 定数の列挙の配列としています。