2013-08-29 14 views
6

Ruby Doc ha due sezioni: Core e Standard. Il core viene fornito per impostazione predefinita e lo standard ha librerie/metodi aggiuntivi, ecc. Significa che devo usare queste librerie standard per le librerie standard require? Ho pensato così e ho scelto DateTime.now dalla libreria standard senza richiedere nulla, e ha funzionato.Qual è la differenza tra l'API di Ruby Core e l'API della libreria standard?

+1

La descrizione è sbagliata. 'DateTime.now' restituisce un errore senza' require "date" 'o' require "time" '. – sawa

+0

@sawa: hai ragione, non ho attivato una nuova irb e ho usato quello con cui stavo giocando. Quindi potrei aver caricato qualche altra libreria. – Bala

risposta

10

Sì, avete capito bene. La funzionalità principale è tutto ciò che non è necessario a require da utilizzare.

DateTime sembra non essere nel nucleo (sono in esecuzione la vostra linea interna della console rotaie, forse?)

DateTime.now # => 
# ~> -:1:in `<main>': uninitialized constant DateTime (NameError) 

Ma Time è

Time # => Time 
Time.now # => 2013-08-29 12:32:54 +0400 

Solo alcuni metodi di Time sono nel nucleo, però. Per ottenere più funzionalità (come Time.parse) devi

require 'time' 
+0

OP sta chiedendo qualcosa di diverso - * Ho pensato così e ho scelto DateTime.now dalla libreria standard senza richiedere nulla, e ha funzionato. * Ma per me non è il caso ... Non so come OP l'ha fatto. Sono in Ruby 1.9.3 ... –

+0

La mia ipotesi è che l'abbia provato nella console di rails (o in qualche altra sessione IRB "caricata"). 'DateTime' non è nel core. –

+0

@SergioTulentsev e @ Babai: ho sprecato il tuo tempo e il mio tempo, provando lo stesso con la nuova irb, ho fatto un errore. – Bala

Problemi correlati