Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

imp_exp

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

imp_exp

  • 1.0.6
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

ImpExp

Fonctionnement

Features:

  • Export de données brutes (ImpExp::Exporters::Base) et d'un fichier xlsx (ImpExp::Exporters::Xlsx)
  • Import de données brutes (ImpExp::Importers::Base) et depuis un fichier xlsx (ImpExp::Importers::Xlsx) ainsi que les fichiers attachés (facultatifs)
  • Exporter des fichiers (ImpExp::Exporters::Files)

Configuration:

  • un fichier de configuration par modèle (= un onglet dans un classeur xlsx)/ La configuration d'un modèle liste les informations exportés et comment elles doivent être exportées (serializers)
  • les imports qui listent les modèles à exporter pour chaque type d'export (voir exemple ImpExp::Imports::Account)
  • les exports qui listent les modèles à exporter pour chaque type d'export (voir exemple ImpExp::Exports::Account)

Extensions:

  • Des serializers peuvent être ajoutés, ils sont des services simples implémentant une méthod load et une méthode dump permettant de sérialiser et déserialiser une donnée d'un modèle (= une cellule d'une feuille de classeur)
  • On peut ajouter un service de validation pour l'import Xlsx (voir exemple ImpExp::AccountSheetValidator), cette validation est bloquante pour l'import
  • On peut ajouter un service de validation des données brutes (voir exemple ImpExp::DummyDataValidator), cette validation est bloquante pour l'import
  • On peut facilement rajouter un format d'export ou d'import en s'inspirant de ImpExp::Exporters::Xlsx et ImpExp::Importers::Xlsx, en héritant de ImpExp::Exporters::Base et ImpExp::Importers::Base

Autres:

  • la gem définit un service Utils::XlsxReader permettant d'abstraire la lecture d'un xlsx (et switcher de librairie facilement)
  • la gem définit un service PingObserver, qui permet d'implémenter le pattern observer pour les imports donc suivre l'avancement de l'import

Les fichiers les plus importants à comprendre sont :

  • imp_exp/models/base.rb : classe parente de tous les modèles
  • imp_exp/importers/base.rb : service contenant la logique d'import

Bon à savoir pour les développeurs

Générer un export xlsx à partir des fixtures

cd test/dummy
RAILS_ENV=test bundle exec rake imp_exp:generate_account_export

Charger les fixtures dans la base

cd test/dummy
FIXTURES_PATH=../fixtures RAILS_ENV=test bundle exec rails db:fixtures:load

Créer des nouveaux modèles pour l'app dummy

Lorsqu'on créé des nouveaux modèles pour la base dummy, les fichiers (tests et fixtures) sont générés au mauvaise endroit (dans le dossier dummy), il faut les déplacement manuellement dans le répertoire parent (imp_exp/test).

Exécuter les tests

  cd imp_exp
  bin/test

License

The gem is available as open source under the terms of the MIT License.

FAQs

Package last updated on 04 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc