環境変数に基づいて、2 つの異なるコンテキストに同じモノリシック コードを使用します。
たとえば、各クラスは次のようになります。ここでは、初期化時にグローバル変数コンテキストが割り当てられる"A"
か"B"
、環境変数に基づいています。
class Demo
class << self
def demo_method(xy, z)
if context == "A"
p "from app A"
else
p "from app B"
end
end
end
end
変数に基づいてコード全体を分割し、2 つの異なるコード ベースを生成するツールが必要です。
この例では、アプリ A のコードは次のようになります。
class Demo
class << self
def demo_method(xy, z)
p "from app A"
end
end
end
アプリ B のコードは次のようになります。
class Demo
class << self
def demo_method(xy, z)
p "from app B"
end
end
end