Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

292
Vistas
¿Cómo verifico la compatibilidad con los bloques de aplicaciones en Ruby?

En esta guía: https://shopify.dev/apps/online-store/verify-support hay un ejemplo de Node.js. ¿Hay algún ejemplo de Ruby que haga lo mismo?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Ok, lo hice yo mismo:

 themes = ShopifyAPI::Theme.all publishedTheme = themes.find {|t| t.role == 'main'} assets = ShopifyAPI::Asset.find(:all, params: {theme_id: publishedTheme.id}) APP_BLOCK_TEMPLATES = ['product', 'collection', 'index'] templateJSONFiles = assets.filter {|file| APP_BLOCK_TEMPLATES.any? {|t| file.key == "templates/#{t}.json"}} if templateJSONFiles.size === APP_BLOCK_TEMPLATES.size puts 'All desired templates support sections everywhere!' elsif templateJSONFiles.size > 0 puts 'Only some of the desired templates support sections everywhere.' end templateMainSections = templateJSONFiles.map do |tmp| a = ShopifyAPI::Asset.find(tmp.key, params: {theme_id: publishedTheme.id}) json = JSON.parse(a.value) main = json['sections'].find {|k, v| k == 'main' || v['type'].start_with?('main-')} if main assets.find {|file| file.key == "sections/#{main[1]['type']}.liquid"} else nil end end.compact sectionsWithAppBlock = templateMainSections.map do |file| acceptsAppBlock = false asset = ShopifyAPI::Asset.find(file.key, params: {theme_id: publishedTheme.id}) match = asset.value.match(/\{\%\s+schema\s+\%\}([\s\S]*?)\{\%\s+endschema\s+\%\}/m) schema = JSON.parse(match[1]); if (schema && schema['blocks']) acceptsAppBlock = schema['blocks'].any? {|b| b['type'] == '@app'}; end acceptsAppBlock ? file : nil end.compact if sectionsWithAppBlock.size > 0 && templateJSONFiles.size == sectionsWithAppBlock.size puts 'All desired templates have main sections that support app blocks!' elsif sectionsWithAppBlock.size > 0 puts 'Only some of the desired templates support app blocks.' else puts 'None of the desired templates support app blocks' end
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda