MX::Banxico

Gem Version Build Status Code Climate Test Coverage

Why and what for / Por qué y para qué

This gem was conceived as an aid in the automation of information extraction from the web site and web services provided by the Bank of Mexico.

This project is not endorsed in any way by the Mexican government. It's an effort to contribute to the preservation of mental health of the developers who have to deal with this things :)


Esta gema se concibió como una ayuda para la automatización de extracción de información de la página y servicios web que provee el Banco de México.

Este proyecto no está patrocinado de ninguna forma por el gobierno mexicano. Es un esfuerzo para contribuir a la sanidad mental de los programadores que tenemos que lidiar con estas cosas :)

Installation / Instalación

Add this line to your application's Gemfile:

gem 'MX-Banxico'

And then execute:

$ bundle

Or install it yourself as:

$ gem install MX-Banxico

Agrega esta línea al archivo Gemfile de tu aplicación:

gem 'MX-Banxico'

Luego ejecuta:

$ bundle

O instálalo tu mismo usando:

$ gem install MX-Banxico

Dependencies / Dependencias

The only dependencies are:

  • Nokogiri for XML processing.
  • Savon for web services exploitation.
  • HTTParty for making a request to the Bank of Mexico's web site and download information.

Las únicas dependencias son:

  • Nokogiri que es una gema (y una joya) para procesar XML.
  • Savon para explotar los servicios web.
  • HTTParty para hacer una petición al sitio web y descargar información de ahí.

Usage / Uso

El Banco de México (también conocido como Banxico) maneja información de UDIS (Unidades de inversión), tipo de cambio, tasas de interés y reservas internacionales en uno de sus servicios web. También, en su sitio web, tienen una herramienta para consultar la información histórica de diversos indicadores (o series como ellos les llaman).

Ahora, la biblioteca (sí: library -> biblioteca, bookstore -> librería) está dividida en tres partes, cada una separada por un espacio de nombres (namespace) para poder distinguir los elementos con los que se está trabajando: MX::Banxico, MX::Banxico::Historico y MX::Banxico::WebServices.

Ejemplos:

En la clase MX::Banxico::Series encontrarás métodos para listar las series con las que trabaja la biblioteca. Básicamente es un contenedor de la información de las series (o indicadores) que tiene Banxico. La información ahí contenida se extrajo principalmente del servicio web, aunque la herramienta de consulta web del Banco también la maneja de la misma forma (se agradece consistencia).

Tanto los servicios web como la página, devuelven XML. Para facilitar las cosas, todos los métodos de clases o instancias en MX::Banxico::Historico::TipoDeCambio o MX::Banxico::WebServices::TipoDeCambio devuelven arreglos de objetos (u objetos) del tipo MX::Banxico::TipoDeCambio. ¿Ves el patrón? La idea es que si trabajarás con UDIS, uses MX::Banxico::Historico::UDIS, MX::Banxico::WebServices::UDIS y MX::Banxico::UDIS.

Por el momento, sólo están las clases para trabajar con el tipo de cambio :'( pero siempre puedes contribuir a esta biblioteca y hacer a más gente feliz :)

Docs

Check the online documentation or generate it using YARD with:

$ bundle exec yard server --port 8828 --reload

Also, check the references.


Consulta la documentación en línea o genera la documentación con YARD:

$ bundle exec yard server --port 8828 --reload

También revisa las referencias.

Contributing / Contribuir

  1. Fork it ( https://github.com/Maquech/MX-Banxico/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Create your specs (100% coverage please!) and add code or make changes (TDD, right?)
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create a new Pull Request

You can also submit technical observations on the algorithms here implemented alongside with references to official documentation that supports it.


Puedes contribuir mandándonos tus observaciones sobre la implementación de los algoritmos aquí implementados o referencias a documentos oficiales que las respalde.

Ahora, diviérte con esta traducción (si sabes el término correcto en español, háznoslo saber por favor):

  1. Crea tu copia del repositorio ( https://github.com/Maquech/MX-Banxico/fork )
  2. Crea tu rama con la funcionalidad propuesta (git checkout -b mi-nueva-funcionalidad-shubiduby)
  3. Crea tus pruebas (specs que tengan una covertura del 100% porfa) y realiza cambios o agrega código (estás haciendo TDD, ¿cierto?)
  4. Compromete tus cambios (git commit -am 'Nueva funcionalidad shubiduby')
  5. Empuja la rama a tu repositorio (git push origin mi-nueva-funcionalidad-shubiduby)
  6. Crea una nueva petición de jalada|tirada|extracción|acarreo