Render Ruby object to interactive html

0

Sto sviluppando uno strumento che scopre i servizi di rete abilitati sull'host e ne scrive un breve riassunto come segue:

init,1
└── login,1560 --
    └── bash,1629
        └── nc,12137 -lup 50505
{
    :net => [
        [0] "*:50505 IPv4 UDP "
    ],
    :fds => [
        [0] "/root (cwd)",
        [1] "/",
        [2] "/bin/nc.traditional",
        [3] "/xochikit/ld_poison.so (stat: No such file or directory)",
        [4] "/dev/tty2",
        [5] "*:50505"
    ]
}

Si è rivelato molto bello formattato e utile per la scoperta rapida grazie ai colori forniti da awesome_print gem. Tuttavia, il suo output è solo un testo. Un problema è che se voglio condividerlo, perdo i colori. Mi piacerebbe anche piegare e aprire parti di oggetti, saltare rapidamente a processi specifici e cosa no? Aggiunta di commenti, ad esempio. Quindi voglio qualcosa di basato sul web.

Qual è l'approccio migliore per implementare funzionalità come queste? Non ho mai lavorato con le interfacce Web e non ho molta esperienza con Ruby.

Aggiorna :

Forse non ho scritto abbastanza chiaramente le mie intenzioni.

Penso di volere qualcosa che si comporta come Chrome Chromium: // chrome / settings / (o meglio, ovviamente). C'è forse un modello o un manuale erb che mostra come implementarlo? Ho pensato che questa cosa fosse necessaria abbastanza spesso.

    
posta AvImd 27.11.2012 - 21:10
fonte

3 risposte

2

Prova a utilizzare un middleware Rack per valutare le cose: link

Modifica per i suggerimenti di Walter:

Hai oggetti Ruby serializzabili e sembra che tu voglia renderli su pagine web. Consiglio di iniziare con qualcosa come Sinatra per il framework web, Pygments per colorare / evidenziare il codice, e da lì forse gestire un piccolo plug-in jQuery per creare blocchi di codice indentati pieghevole.

Note : raccomando Pygments perché mi piace e perché Github lo usa. Il middleware Rack in alto ha lo scopo di permetterti di pirtimizzare automaticamente il codice a livello di server aggiungendo un tag al blocco di codice che vorresti vedere evidenziato.

    
risposta data 04.12.2012 - 02:07
fonte
1

Sinatra sarebbe probabilmente l'approccio più leggero.

Rails comporta un sovraccarico maggiore, ma è anche molto facile da usare e distribuire. Se la tua app sarà in espansione e incorporerà elementi come utenti e login, potrebbe essere meglio affrontare Rails.

Entrambi dovrebbero funzionare bene e ci sono molti esempi di codice ed esercitazioni per le applicazioni di base che usano ciascuno.

    
risposta data 27.11.2012 - 21:52
fonte
0

Questo è il tipo di elaborazione che solitamente esegui sul lato client (ovvero: all'interno del browser web) con AJAX (HTML, Javascript e CSS). Ci sono molte biblioteche che possono fare questo lavoro là fuori. Cerca l'albero pieghevole AJAX, il tavolo AJAX e così via. JQuery e altre librerie note hanno widget tabella / albero che puoi usare per questo.

Dai un'occhiata a questi widget della tabella / griglia AJAX, ad esempio:

link

Molto probabilmente, dovrai impacchettare i tuoi dati come JSON o una struttura gerarchica XML prima di inviarli al tuo visualizzatore AJAX. JSON e XML ti permetteranno di condividere facilmente i tuoi dati con altre persone. Sono entrambi ampiamente riconosciuti come formati standard per lo scambio di dati.

    
risposta data 29.11.2012 - 09:23
fonte

Leggi altre domande sui tag