# frozen_string_literal: true # Items that can be added to the shopping cart module CartItem; end # This is an abstract class implemented by classes that can be added to the shopping cart class CartItem::BaseItem attr_reader :errors def initialize(*) @errors = {} end def price { elements: {}, amount: 0 } end def name '' end # This method run validations at cart-level, possibly using the other items in the cart, to validate the current one. # Other validations that may occurs at record-level (ActiveRecord validations) can't be related to other items. def valid?(_all_items) true end def to_object; end end