Ruby 用の内部 DSL を作成しようとしていますが、まだコーディングを開始していません。Ruby でこの構文が可能かどうか疑問に思っています。
IF more_than: 1, :class smells to: "god class", sense: HIGH and has "no temp attributes", sense: 0.5
THEN problem "some problem"
WITH ponderation percent: 10
また:
IF more_than: 1, :class
{
smells to: 'god class', sense: 2
and
(
has 'no temp attributes', sense: 0.5 or
smells to: 'extensive coupling', sense: 1.5 or
has 'refused parent Bequest', sense: HIGH or
smells to: 'tradition breaker', sense: LOW
)
and
(
has :Method
{
smells to: 'extensive coupling', sense: 1.5
}
)
}
THEN
{
problem "abusive conceptualization"
}
WITH
{
ponderation percent: 10
}
更新: :D 私はまだ DSL の要件を定義しています。これが私の出発点です。カスタム パーサーまたは Ruby のいずれかを検討しています。カスタム パーサーを作成するか、Ruby を使用するか、どちらが良いと思いますか?