Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

ActiveSupport::CoreExtensions

Le estensioni della Ruby Core Library
Le estensioni della Ruby Core Library
Link copiato negli appunti

Il modulo CoreExtensions contiene tutte le estensioni alla Ruby Core Library. Ogni estensione è normalmente suddivisa per tipo di libreria ed infine per scopo. Ad esempio, il modulo ActiveSupport::CoreExtensions::Integer::EvenOdd contiene le estensioni utili all'analisi della parità di un numero appartenente alla classe Integer di Ruby.

module ActiveSupport #:nodoc:
  module CoreExtensions #:nodoc:
module Integer #:nodoc:

# ...

end
  end
end

La modalità con cui queste estensioni sono raggruppate e mixate all'interno della core library merita un po' di attenzione. Ogni metodo è raggruppato per scopo all'interno di un modulo che rispecchia la gerarchia della core library. Le estensioni sono poi mixate all'interno della libreria in un'unica soluzione, in un file chiamato con lo stesso nome del componente da estendere.

Ad esempio, nella cartella integer sono disponibili 3 estensioni chiamate EvenOdd, Inflections e Time. Questi mixin sono integrati all'interno della classe Integer di Ruby nel file integer.rb come segue:

require 'active_support/core_ext/integer/even_odd'
require 'active_support/core_ext/integer/inflections'
require 'active_support/core_ext/integer/time'

class Integer #:nodoc:
  include ActiveSupport::CoreExtensions::Integer::EvenOdd
  include ActiveSupport::CoreExtensions::Integer::Inflections
  include ActiveSupport::CoreExtensions::Integer::Time
end

Questa struttura, estremamente ordinata, consente una consultazione immediata ed agevole delle estensioni disponibili. Vale la pena dedicare un po' di tempo a conoscere ActiveSupport navigando tra le cartelle disponibili.

Figura 1. Struttura delle cartelle CoreExtensions
Struttura delle cartelle CoreExtensions


Ti consigliamo anche