Mam sobie klasę abstrakcyjną, która przypisuje mi pewne stałe dla całej aplikacji:
class LayoutClassGetter
CLASS_BY_LAYOUT = { '1' => Car, '2' => Truck }.freeze
def initialize(layout_number)
@layout_number = layout_number
end
def layout_class
CLASS_BY_LAYOUT[@layout_number]
end
def self.layout_class(layout_number)
new(layout_number).layout
end
end
W jakim folderze powinienem taką klasę umieścić bym mógł się odwołać w ten sposób?
LayoutClassGetter.layout_class(@board.board_layout)
Obecnie używam Service Objects, ale one wymagają nieco dłuższego zapytania
LayoutClassGetter.new(@board.board_layout).layout_class