Aiuto su un problema

Ti piace vincere facile :wink:
On Mar 28, 2015 11:42 AM, “Maurizio De Santis”
[email protected]

in questi giorni Ho pensato di dare una bella rivisitata al mio sito web
e mi chiedevo se è possibile cambiare il format del mio programma in
ruby utilizzando le mie conoscenze sul css …

Per restare in tema di “economia”, puoi evitare il controllo exists? e
usare

FileUtils.mkdir_p ‘documenti’

che non da errore se la cartella esiste.

@Francesco a titolo di esercizio ti invito a studiare mkdir_p per
scoprire che altra caratteristica interessante ha rispetto al normale
mkdir.

2015-03-28 20:14 GMT+01:00 Maurizio De Santis
[email protected]:

Se un sito statico ti consiglio Middleman https://middlemanapp.com/ ,
un generatore di siti statici scritto in Ruby: praticamente funziona
generando l’HTML del tuo sito a partire dai layout e dalle viste. un
ottimo modo per entrare nel fantastico mondo della programmazione web
con
Ruby senza affrontare subito Rails, che una bella botta di vita :slight_smile:

Il giorno gio 2 apr 2015 22:29 Francesco V.
[email protected]
ha scritto:

Ti consiglio anche di guardarti Rack http://rack.github.io/ , la
libreria
alla base della quasi totalit dei web framework scritti in Ruby: calcola
che volendo potresti realizzare il tuo sito anche solo con Rack.

Maurizio De Santis

Il giorno 2 aprile 2015 22:38, Maurizio De Santis <
[email protected]> ha scritto:

il sito è statico ma per ora non voglio programmare sul web, è un
argomento che affronterò piu tardi, io intendevo quale strumento dovrei
utilizzare per cambiare il layout del programma scritto in ruby . Dovrei
aprire il file.rb con un altro programma? o posso usare anche qualcosa
come i fogli di stile sul html?

Ciao, non sto seguendo il thread molto da vicino quindi scusa se cado
dalle nuvole.Se stai studiando e il codice pubblicabile ti
suggerisco di pubblicare un repo su github o almeno una gist e linkare
una pagina o una riga di codice, cos si capisce meglio di cosa parli.
Altrimenti io per esempio non ho idea di cosa sia file.rb.
Poi scusami se mi permetto ma un pizzico pi di specificit nel
subject non guasta. :slight_smile:

2015-04-03 16:24 GMT+02:00 Francesco V. [email protected]:

la domanda è semplicissima , si puo cambiare il modo in cui viene
visualizzato il programma…? cioè la classica finestra nera del prompt
dei comandi puo essere superata visualizzando una schermata diversa da
quella che viene visualizzata avviando il programma?

Salve a tutti mi rivolgo nuovamente a voi chiedendo un aiuto dopo aver
dato pure l’anima … da qualche settimana, ho passato ore su ruby doc,
ma non riesco a trovare la soluzione a questo ‘(insignificante)
ovviamente per molti di voi’ problema che mi sta facendo fondere il
cervello.
ho allegato un file un cui spero di essere chiaro ma come mio solito non
riesco a spiegarmi chiaramente cmq spero che qualcuno gli dia un
occhiata

Dato che l’esempio molto breve (bene! faciliti molto la vita) potevi
inserirlo direttamente nel testo. Lo riporto io dandogli una formattata:

esempio

subtotale = 4 + 5
entrate = ‘subtotale.txt’
File.write(entrate, subtotale)

in questo modo il programma salvera l’operazione ‘4+5’

sempre sul file subtotale sovrascrivendo ad ogni esecuzione i dati

‘4+5=9’

io invece devo creare ad ogni esecuzione un nuovo file

che abbia come titolo la data e l’ora in cui viene creato

e come testo i risultati che via via devo salvare

ho passato ore a studiare le classi Time e File ma non sono riuscito a

risolvere

Vado con la risposta. Per ottenere una stringa con il timestamp al
momento
dell’esecuzione puoi usare Time.now; per formattarla nel modo desiderato
si
usa il metodo Time#strftime
http://docs.rubydocs.org/ruby-2-2-2/Ruby%202.2.2/classes/Time.html#method-i-strftime
:

Time.now.strftime(‘%F_%H-%M-%S_%z’) #=> “2015-05-11_11-32-12_+0200”

Per convertire dalla stringa in istanza di Time, nel caso ti servisse,
si
usa Time.strptime
http://docs.rubydocs.org/ruby-2-2-2/Ruby%202.2.2/classes/Time.html#method-c-strptime
:

Per usare Time.strptime occorre caricare ‘time’ dalla stdlib

require ‘time’
Time.strptime Time.now.strftime(‘%F_%H-%M-%S_%z’), ‘%F_%H-%M-%S_%z’ #=>
2015-05-11 11:34:18 +0200

Ora scrivere il timestamp nel nome del file viene da s:

file_content = 4+5
current_timestamp = Time.now.strftime(‘%F_%H-%M-%S_%z’) #=>
“2015-05-11_11-32-12_+0200”
filename = “subtotale_#{current_timestamp}.txt” #=>
“subtotale_2015-05-11_11-32-12_+0200.txt”

File.write file_content, filename

Maurizio De Santis

Il giorno 10 maggio 2015 21:36, Francesco V. <
[email protected]> ha scritto:

Francesco V. wrote in post #1173396:

chiarissimo solo non capisco perche si usa la sintassi ’ #{ } ’ non l’ho
incontrata prima d’ora… grazie sempre per la disponibilita

E’ la sintassi di string interpolation. Non sei obbligato ad usarla. Per
esempio

“#{user.first_name} #{user.last_name}” # Mario R.

e

user.first_name + " " + user.last_name # Mario R.

In questo caso il risultato è lo stesso.

chiarissimo solo non capisco perche si usa la sintassi ’ #{ } ’ non l’ho
incontrata prima d’ora… grazie sempre per la disponibilita

Generalmente pare che per concatenare le stringhe si ottengano
prestazioni
migliori usando l’interpolazione.

Il giorno 11 maggio 2015 14:52, Fabrizio R. [email protected] ha
scritto:

Generalmente pare che per concatenare le stringhe si ottengano prestazioni
migliori usando l’interpolazione.

Il vero vantaggio dell’interpolazione che sottintende il .to_s, cosa
che
con la concatenazione sarebbe necessario esplicitare:

quantita = 3
“Hai comprato #{quantita} sacchi di patate”
#=> “Hai comprato 3 sacchi di patate”
“Hai comprato " + quantit + " sacchi di patate”
#=> TypeError: no implicit conversion of Fixnum into String
“Hai comprato " + quantit.to_s + " sacchi di patate”
#=> “Hai comprato 3 sacchi di patate”

Maurizio De Santis

Il giorno 11 maggio 2015 14:57, Cristiano G. <
[email protected]> ha scritto:

Interpolazione. Occhio che con stringhe definite con apice singolo non
funziona.

http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Strings

Qui trovi altri modi per farlo.

2015-05-11 14:46 GMT+02:00 Francesco V.
[email protected]:

Il migliore come prestazioni velocistiche e memoria è il metodo <<
derivato da c ma molto unsafe code.
Concatenare le stringhe è scomodo, lento e costoso come utilizzo memoria
e abbastanza unsafe code.
Con l’interpolazione si hanno prestazioni migliori come memoria
consumata, comodo da scrivere e sicuro per il to_s

irb(main):006:0> a=‘a’
=> “a”
irb(main):007:0> b=nil
=> nil

irb(main):008:0> a + ’ ’ + b
TypeError: can’t convert nil into String

irb(main):009:0> ‘’ << a << ’ ’ << b
TypeError: can’t convert nil into String

irb(main):010:0> “#{a} #{b}”
=> "a "

Salve prima di tutto grazie a tutti per gli utilissimi consigli sempre
preziosi, mi ritrovo nuovamente bloccato da un paio di giorni su questo
problema:

#salvando una serie di file su una cartella salvata con il nome’entrate’

current_timestamp = Time.now.strftime(’%F_%H-%M-%S_%z’)

entrate = “entrate/subtot_#{current_timestamp}.txt”

File.write entrate, subtot

Ho necessita di andare a sommare il contenuto

di questi file che ovviamente contengono numeri

In poche parole non riesco a trovare il modo per sommare dei file

all’interno di una cartella

Ovviamente so che devo per prima cosa far leggere al programma il
contenuto dei file, ma visto che sto salvando questi file con il nome
della data e l’ora in cui vengono salvati,non ho un riferimento fisso,mi
occorre far leggere al programma tutti i file all’interno di una
cartella per poi sommarli

sum = Dir[’*.txt’].map do |filename|
File.read(filename)
end.map do |content|
content.strip.to_f
end.inject(&:+)
On May 14, 2015 4:33 PM, “Francesco V.” <

Non gli devi dire di partire da 0 alla inject?

Il giorno gio 14 mag 2015 18:35 maurizio de magnis <
[email protected]> ha scritto: