def add_platform_methods
      # Redo clean name if there is a detect override
      clean_name(force: true) unless @platform[:name].nil?

      # Add in family methods
      family_list = Train::Platforms.families
      family_list.each_value do |k|
        next if respond_to?(k.name + '?')
        define_singleton_method(k.name + '?') do
          family_hierarchy.include?(k.name)
        end
      end

      # Helper methods for direct platform info
      @platform.each_key do |m|
        next if respond_to?(m)
        define_singleton_method(m) do
          @platform[m]
        end
      end

      # Create method for name if its not already true
      m = name + '?'
      return if respond_to?(m)
      define_singleton_method(m) do
        true
      end
    end
def add_platform_methods
      # Redo clean name if there is a detect override
      clean_name(force: true) unless @platform[:name].nil?

      # Add in family methods
      family_list = Train::Platforms.families
      family_list.each_value do |k|
        next if respond_to?(k.name + '?')
        define_singleton_method(k.name + '?') do
          family_hierarchy.include?(k.name)
        end
      end

      # Helper methods for direct platform info
      @platform.each_key do |m|
        next if respond_to?(m)
        define_singleton_method(m) do
          @platform[m]
        end
      end

      # Create method for name if its not already true
      m = name + '?'
      return if respond_to?(m)
      define_singleton_method(m) do
        true
      end
    end
Add generic family? and platform methods to an existing platform

 This is done later to add any custom
 families/properties that were created