Class: MX::Banxico::Series
- Inherits:
-
Object
- Object
- MX::Banxico::Series
- Defined in:
- lib/MX/Banxico/series.rb
Overview
Series de datos que se pueden obtener de los servicios web del Banco de México (Banxico).
Constant Summary collapse
- SERIES_RESERVAS_INTERNACIONALES =
Series de reservas internacionales.
Series:
- :reserva_internacional
{ reserva_internacional: { id: "SF43707", titulo: "Reserva internacional", descripcion: "Reserva internacional en millones de dólares", tipo_cifra: "Saldos", tipo_unidad: "Millones de dólares" } }.freeze
- SERIES_TASAS_DE_INTERES =
Series de tasas de interés.
Series:
- :tasa_objetivo
- :tasa_interes_interbancaria_tiie_28_dias
- :tasa_interes_interbancaria_tiie_91_dias
- :tasa_rendimiento_cetes_28_dias
{ tasa_objetivo:{ id: "SF61745", titulo: "Tasa objetivo", descripcion: "Tasa objetivo" }, tasa_interes_interbancaria_tiie_28_dias: { id: "SF60648", titulo: "Tasa de interés interbancario TIIE a 28 días", descripcion: "Tasa de interés interbancario TIIE a 28 días" }, tasa_interes_interbancaria_tiie_91_dias: { id: "SF60649", titulo: "Tasa de interés interbancario TIIE a 91 días", descripcion: "Tasa de interés interbancario TIIE a 91 días" }, tasa_rendimiento_cetes_28_dias: { id: "SF60633", titulo: "Tasa de rendimiento resultado de la subasta semanal Cetes a 28 días", descripcion: "Tasa de rendimiento resultado de la subasta semanal Cetes a 28 días" } }.freeze
- SERIES_TIPOS_DE_CAMBIO =
Series de tipos de cambio.
Series:
- :dolar_canadiense
- :dolar_fix
- :dolar_liquidacion
- :euro
- :libra_esterlina
- :yen
{ dolar_canadiense: { id: "SF60632", titulo: "Cotización de las divisas que conforman la canasta del DEG respecto al Peso mexicano vs. el Dólar canadiense", descripcion: "Peso mexicano vs. el Dólar canadiense", tipo_cifra: "Tipo de cambio", tipo_unidad: "Peso mexicano" }, dolar_fix: { id: "SF43718", titulo: "Tipo de cambio Pesos mexicanos por Dólar E.U.A. para solventar obligaciones en moneda extranjera (fecha de determinación - Fix)", descripcion: "Peso mexicano vs. el Dólar E.U.A. (fecha de determinación - Fix)", tipo_cifra: "Tipo de cambio", tipo_unidad: "Peso por dólar" }, dolar_liquidacion: { id: "SF60653", titulo: "Tipo de cambio Pesos mexicanos por Dólar E.U.A. para solventar obligaciones en moneda extranjera (fecha de liquidación)", descripcion: "Peso mexicano vs. el Dólar E.U.A. (fecha de liquidación)", tipo_cifra: "Tipo de cambio", tipo_unidad: "Peso por dólar" }, euro: { id: "SF46410", titulo: "Cotización de las divisas que conforman la canasta del DEG respecto al Peso mexicano vs. el Euro", descripcion: "Peso mexicano vs. el Euro", tipo_cifra: "Tipo de cambio", tipo_unidad: "Peso mexicano" }, libra_esterlina: { id: "SF46407", titulo: "Cotización de las divisas que conforman la canasta del DEG respecto al Peso mexicano vs. la Libra esterlina", descripcion: "Peso mexicano vs. la Libra esterlina", tipo_cifra: "Tipo de cambio", tipo_unidad: "Peso mexicano" }, yen: { id: "SF46406", titulo: "Cotización de las divisas que conforman la canasta del DEG respecto al Peso mexicano vs. el Yen japonés", descripcion: "Peso mexicano vs. el Yen japonés", tipo_cifra: "Tipo de cambio", tipo_unidad: "Peso mexicano" } }.freeze
- SERIES_UDIS =
{ udis: { id: "SP68257", titulo: "Valor de UDIS", descripcion: "Valor de UDIS", tipo_cifra: "Tipo de cambio", tipo_unidad: "UDI" } }.freeze
- TIPOS =
Tipos de series.
Tipos:
- :reservas_internacionales
- :tasas_de_interes
- :tipos_de_cambio
- :udis
{ reservas_internacionales: SERIES_RESERVAS_INTERNACIONALES, tasas_de_interes: SERIES_TASAS_DE_INTERES, tipos_de_cambio: SERIES_TIPOS_DE_CAMBIO, udis: SERIES_UDIS, }.freeze
Class Method Summary collapse
-
.busca_nombre(identificador, tipo) ⇒ String?
private
Busca el nombre de acuerdo al identificador y el tipo dado.
-
.identificador(tipo, serie) ⇒ String
Obtiene el identificador de acuerdo al tipo y a la serie.
-
.identificadores(tipo = nil) ⇒ Array<String>
Obtiene una lista de identificadores de las series.
-
.nombre(identificador, tipo = nil) ⇒ String
Obtiene el nombre de la serie de acuerdo al identificador dado.
-
.nombres(tipo = nil) ⇒ Array<String>
Obtiene una lista de nombres de las series.
-
.reservas_internacionales ⇒ Hash
Series de reservas internacionales.
-
.tasas_de_interes ⇒ Hash
Series de tasas de interés.
-
.tipos ⇒ Array<Symbol>
Arreglo con los tipos de series.
-
.tipos_de_cambio ⇒ Hash
Series de tipos de cambio.
-
.todas ⇒ Hash
Todas las series por tipo.
-
.udis ⇒ Hash
Series de UDIS (Unidades de Inversión).
Class Method Details
.busca_nombre(identificador, tipo) ⇒ String? (private)
Busca el nombre de acuerdo al identificador y el tipo dado.
338 339 340 341 342 |
# File 'lib/MX/Banxico/series.rb', line 338 def busca_nombre(identificador, tipo) raise ArgumentError.new("El tipo no existe (tipo: #{tipo}).") unless TIPOS.has_key?(tipo.to_sym) send(tipo.to_sym).each_pair{|k, v| return k if v[:id] == identificador } nil end |
.identificador(tipo, serie) ⇒ String
Obtiene el identificador de acuerdo al tipo y a la serie.
252 253 254 255 256 |
# File 'lib/MX/Banxico/series.rb', line 252 def identificador(tipo, serie) raise ArgumentError.new("El tipo no existe (tipo: #{tipo}).") unless TIPOS.has_key?(tipo.to_sym) raise ArgumentError.new("La serie no existe (serie: #{serie}).") unless send(tipo.to_sym).has_key?(serie.to_sym) send(tipo.to_sym)[serie.to_sym][:id] end |
.identificadores(tipo = nil) ⇒ Array<String>
Obtiene una lista de identificadores de las series.
Cuando se especifica el tipo
, la lista de identificadores se limita a los de las series de ese tipo
únicamente.
269 270 271 272 273 274 275 276 |
# File 'lib/MX/Banxico/series.rb', line 269 def identificadores(tipo = nil) if tipo.nil? TIPOS.inject([]){ |arr, tipo_serie| arr << tipo_serie.last.values.each.map{ |s| s[:id] } }.flatten else raise ArgumentError.new("El tipo no existe (tipo: #{tipo}).") unless TIPOS.has_key?(tipo.to_sym) send(tipo.to_sym).values.map{ |v| v[:id] } end end |
.nombre(identificador, tipo = nil) ⇒ String
Obtiene el nombre de la serie de acuerdo al identificador dado.
Cuando se especifica el tipo
, la búsqueda del nombre se limita a los de las series de ese tipo
únicamente.
291 292 293 294 295 296 297 298 299 300 301 302 303 304 |
# File 'lib/MX/Banxico/series.rb', line 291 def nombre(identificador, tipo = nil) nom = nil if tipo.nil? tipos.each do |t| nom = busca_nombre(identificador, t) break unless nom.nil? end raise ArgumentError.new("El identificador no existe (identificador: #{identificador}).") if nom.nil? else nom = busca_nombre(identificador, tipo) raise ArgumentError.new("El identificador (identificador: #{identificador}) no se encuentra en el tipo de serie dado (tipo: #{tipo}).") if nom.nil? end nom end |
.nombres(tipo = nil) ⇒ Array<String>
Obtiene una lista de nombres de las series.
Cuando se especifica el tipo
, la lista de nombres se limita a los de las series de ese tipo
únicamente.
317 318 319 320 321 322 323 324 |
# File 'lib/MX/Banxico/series.rb', line 317 def nombres(tipo = nil) if tipo.nil? TIPOS.inject([]){ |arr, tipo_serie| arr << tipo_serie.last.keys }.flatten else raise ArgumentError.new("El tipo no existe (tipo: #{tipo}).") unless TIPOS.has_key?(tipo.to_sym) send(tipo.to_sym).keys end end |
.reservas_internacionales ⇒ Hash
Series de reservas internacionales.
Series:
- :reserva_internacional
180 181 182 |
# File 'lib/MX/Banxico/series.rb', line 180 def reservas_internacionales SERIES_RESERVAS_INTERNACIONALES end |
.tasas_de_interes ⇒ Hash
Series de tasas de interés.
Series:
- :tasa_objetivo
- :tasa_interes_interbancaria_tiie_28_dias
- :tasa_interes_interbancaria_tiie_91_dias
- :tasa_rendimiento_cetes_28_dias
198 199 200 |
# File 'lib/MX/Banxico/series.rb', line 198 def tasas_de_interes SERIES_TASAS_DE_INTERES end |
.tipos ⇒ Array<Symbol>
Arreglo con los tipos de series. Ver TIPOS.
Tipos:
- :reservas_internacionales
- :tasas_de_interes
- :tipos_de_cambio
- :udis
163 164 165 |
# File 'lib/MX/Banxico/series.rb', line 163 def tipos TIPOS.keys end |
.tipos_de_cambio ⇒ Hash
Series de tipos de cambio.
Series:
- :dolar_canadiense
- :dolar_fix
- :dolar_liquidacion
- :euro
- :libra_esterlina
- :yen
220 221 222 |
# File 'lib/MX/Banxico/series.rb', line 220 def tipos_de_cambio SERIES_TIPOS_DE_CAMBIO end |
.todas ⇒ Hash
Todas las series por tipo.
149 150 151 |
# File 'lib/MX/Banxico/series.rb', line 149 def todas TIPOS end |