def install_templates(rambafile)
      # We always clear previously installed templates to avoid conflicts in different versions
      clear_installed_templates

      templates = rambafile[TEMPLATES_KEY]

      if !templates || templates.count == 0
        puts 'You must specify at least one template in Rambafile under the key *templates*'.red
        return
      end

      # Mapping hashes to model objects
      templates = rambafile[TEMPLATES_KEY].map { |template_hash|
        Generamba::TemplateDeclaration.new(template_hash)
      }

      catalogs = rambafile[CATALOGS_KEY]
      # If there is at least one template from catalogs, we should update our local copy of the catalog
      update_catalogs_if_needed(catalogs, templates)

      templates.each do |template_declaration|
        strategy = @installer_factory.installer_for_type(template_declaration.type)
        template_declaration.install(strategy)
      end
    end
This method parses Rambafile, serializes templates hashes into model objects and install them