Class: BetterSeeder::Exporters::Base
- Inherits:
-
Object
- Object
- BetterSeeder::Exporters::Base
- Defined in:
- lib/better_seeder/exporters/base.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
I dati da esportare.
-
#output_path ⇒ Object
readonly
I dati da esportare.
-
#table_name ⇒ Object
readonly
I dati da esportare.
Instance Method Summary collapse
-
#ensure_output_directory ⇒ Object
Verifica che la directory di output esista; se non esiste, la crea.
-
#export ⇒ Object
Metodo astratto per effettuare l’export.
-
#extension ⇒ Object
Metodo astratto per ottenere l’estensione del file (es. “.json”, “.csv”, “.sql”).
-
#full_output_path ⇒ String
Costruisce il percorso completo del file di output, combinando la directory, l’output_path e l’estensione.
-
#initialize(data, output_path:, table_name: 'my_table') ⇒ Base
constructor
Inizializza l’exporter.
-
#output_directory ⇒ String
Restituisce la directory in cui salvare i file.
Constructor Details
#initialize(data, output_path:, table_name: 'my_table') ⇒ Base
Inizializza l’exporter.
Esempio d’uso:
data = [
{ id: 1, name: "Alice", email: "[email protected]" },
{ id: 2, name: "Bob", email: "[email protected]" }
]
json_exporter = BetterSeeder::Performers::JsonExporter.new(data, output_path: 'users', table_name: 'users')
json_exporter.export
27 28 29 30 31 32 |
# File 'lib/better_seeder/exporters/base.rb', line 27 def initialize(data, output_path:, table_name: 'my_table') @data = data # Utilizza il preload_path definito nella configurazione BetterSeeder (impostato nell'initializer). @output_path = File.join(BetterSeeder.configuration.preload_path, output_path) @table_name = table_name end |
Instance Attribute Details
#data ⇒ Object (readonly)
I dati da esportare. output_path: nome del file (senza estensione) da concatenare al preload_path configurato. table_name: (opzionale) nome della tabella, utile ad esempio per SqlExporter.
11 12 13 |
# File 'lib/better_seeder/exporters/base.rb', line 11 def data @data end |
#output_path ⇒ Object (readonly)
I dati da esportare. output_path: nome del file (senza estensione) da concatenare al preload_path configurato. table_name: (opzionale) nome della tabella, utile ad esempio per SqlExporter.
11 12 13 |
# File 'lib/better_seeder/exporters/base.rb', line 11 def output_path @output_path end |
#table_name ⇒ Object (readonly)
I dati da esportare. output_path: nome del file (senza estensione) da concatenare al preload_path configurato. table_name: (opzionale) nome della tabella, utile ad esempio per SqlExporter.
11 12 13 |
# File 'lib/better_seeder/exporters/base.rb', line 11 def table_name @table_name end |
Instance Method Details
#ensure_output_directory ⇒ Object
Verifica che la directory di output esista; se non esiste, la crea.
43 44 45 |
# File 'lib/better_seeder/exporters/base.rb', line 43 def ensure_output_directory FileUtils.mkdir_p(output_directory) end |
#export ⇒ Object
Metodo astratto per effettuare l’export.
62 63 64 |
# File 'lib/better_seeder/exporters/base.rb', line 62 def export raise NotImplementedError, 'Subclasses must implement the export method' end |
#extension ⇒ Object
Metodo astratto per ottenere l’estensione del file (es. “.json”, “.csv”, “.sql”). Le classi derivate devono implementarlo.
57 58 59 |
# File 'lib/better_seeder/exporters/base.rb', line 57 def extension raise NotImplementedError, 'Subclasses must implement #extension' end |
#full_output_path ⇒ String
Costruisce il percorso completo del file di output, combinando la directory, l’output_path e l’estensione.
50 51 52 53 |
# File 'lib/better_seeder/exporters/base.rb', line 50 def full_output_path ensure_output_directory "#{output_path}#{extension}" end |
#output_directory ⇒ String
Restituisce la directory in cui salvare i file. In questo caso, utilizza la configurazione BetterSeeder.configuration.preload_path.
38 39 40 |
# File 'lib/better_seeder/exporters/base.rb', line 38 def output_directory BetterSeeder.configuration.preload_path.to_s end |