dolar-bna 1.0.9.1 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48daeb550b18a3f2713a53e63bd6b377231f7193d348232a89ee865f96a69757
4
- data.tar.gz: 2f6f9df1f10c1cb412082da404f2ffd737218040b83b6137baf6a3f082621469
3
+ metadata.gz: 302342d00c6510b6bdcb88ca9290c33e4bbae54739b6935e6137aba38abe7611
4
+ data.tar.gz: '068f48a13e196c7b0ff2ec1f0e55825e5aa69b43ed5bbfe3a43d958856f333f8'
5
5
  SHA512:
6
- metadata.gz: af1803e45c7fa6f0611e39c0791ac1a8f52658b73ce24fcdfa57c0df14513b62ae1b995b84912114e2822621c5add471b10ae0852ecc7995f638d068fcb37be4
7
- data.tar.gz: dd267f7ef03a3da2d63a1c7ce42d84286cdf626128e82316c24dc27f137419ab59a4ad10bafb897e60ee27e3628a67f50a57a8a8c2f89435f000a509080f0573
6
+ metadata.gz: e10b2d65892123beb66dd2f6d8cba8194c0201397bc8c568061bd531bbfce72f06cb39aefce898500824676b49af71eac359d27c7f8f571982f7def4cbd0e4e5
7
+ data.tar.gz: 54c4d1aa132e2c406f8aaa6fc63b62f3fb6adcc3e7d51409e44d9e782a6a20207252d308df8199f9e5ba0ce13455b408953f40ca4b6b1157e5fd165b68a44f7a
@@ -27,26 +27,26 @@ module Dolar
27
27
  date = date.to_date
28
28
  while intents < 5
29
29
  dolar_query = Dolar::Bna::DolarCotization.where(date: date, dolar_type: @dolar_type).first
30
- if dolar_query.nil?
30
+ if dolar_query.blank?
31
31
  intents += 1
32
32
  if @dolar_type.downcase == "divisa"
33
33
  Dolar::Bna::Exchange.new(date).perform_bna_divisa
34
34
  dolar_query = Dolar::Bna::DolarCotization.where(date: date, dolar_type: @dolar_type).first
35
- dolar_buy = dolar_query.dolar_buy unless dolar_query.nil?
36
- dolar_sell = dolar_query.dolar_sell unless dolar_query.nil?
35
+ dolar_buy = dolar_query.dolar_buy unless dolar_query.blank?
36
+ dolar_sell = dolar_query.dolar_sell unless dolar_query.blank?
37
37
  elsif @dolar_type.downcase == "billete"
38
38
  Dolar::Bna::Exchange.new(date).perform_bna_billete
39
39
  dolar_query = Dolar::Bna::DolarCotization.where(date: date, dolar_type: @dolar_type).first
40
- dolar_buy = dolar_query.dolar_buy unless dolar_query.nil?
41
- dolar_sell = dolar_query.dolar_sell unless dolar_query.nil?
40
+ dolar_buy = dolar_query.dolar_buy unless dolar_query.blank?
41
+ dolar_sell = dolar_query.dolar_sell unless dolar_query.blank?
42
42
  else
43
- dolar_buy = 0
44
- dolar_sell = dolar_query.dolar_sell unless dolar_query.nil?
43
+ dolar_buy = dolar_query.dolar_buy unless dolar_query.blank?
44
+ dolar_sell = dolar_query.dolar_sell unless dolar_query.blank?
45
45
  break
46
46
  end
47
47
  else
48
- dolar_buy = dolar_query.dolar_buy
49
- dolar_sell = dolar_query.dolar_sell unless dolar_query.nil?
48
+ dolar_buy = dolar_query.dolar_buy unless dolar_query.blank?
49
+ dolar_sell = dolar_query.dolar_sell unless dolar_query.blank?
50
50
  break
51
51
  end
52
52
  end
@@ -2,6 +2,9 @@ module Dolar
2
2
  module Bna
3
3
  class Exchange
4
4
 
5
+ require 'openssl'
6
+ OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
7
+
5
8
  def initialize(fecha=Date.today)
6
9
  @fecha ||= fecha
7
10
  end
@@ -54,7 +57,7 @@ module Dolar
54
57
  private
55
58
 
56
59
  def check_cotization dolar_type, date
57
- query = Dolar::Bna::DolarCotization.where(date: date, dolar_type: dolar_type).first
60
+ query = Dolar::Bna::DolarCotization.where(date: date.to_date, dolar_type: dolar_type).first
58
61
  ddolar = nil
59
62
  if query.nil?
60
63
  if dolar_type == "Divisa"
@@ -63,7 +66,7 @@ module Dolar
63
66
  ddolar = get_dolar()
64
67
  end
65
68
  else
66
- ddolar = {compra: query.dolar_buy, venta: query.dolar_sell, fecha: query.date}
69
+ ddolar = {compra: query.dolar_buy, venta: query.dolar_sell}
67
70
  end
68
71
  return ddolar
69
72
  end
@@ -103,37 +106,37 @@ module Dolar
103
106
  end
104
107
 
105
108
  def obtain_dolar_from_html(url, mechanize, data, d_type)
106
- dolar_fecha = nil
107
109
  page = mechanize.get(url)
108
110
  doc = Nokogiri::HTML(page.body, "UTF-8")
109
111
  doc.xpath("//td").each_with_index do |node, index|
110
112
  data[index] = node.text
111
113
  end
112
- if d_type == "divisa"
113
- divs_data = {}
114
- doc.xpath("//div").each_with_index do |node, index|
115
- divs_data[index] = node.text
116
- end
117
- dolar_fecha = divs_data[1]
118
- end
119
114
  correct_date = "#{@fecha.day.to_i}/#{@fecha.month.to_i}/#{@fecha.year.to_i}"
120
115
  i = data.key(correct_date)
121
116
  if !i.nil?
122
- dolar_fecha = data[i - 3]
123
117
  dolar_compra = BigDecimal(data[i - 2].tr(",", ".")).truncate(3).to_f
124
118
  dolar_venta = BigDecimal(data[i - 1].tr(",", ".")).truncate(3).to_f
125
119
  else
126
- dolar_fecha = dolar_fecha.nil? ? data[3] : dolar_fecha
127
120
  dolar_compra = BigDecimal(data[1].tr(",", ".")).truncate(3).to_f
128
121
  dolar_venta = BigDecimal(data[2].tr(",", ".")).truncate(3).to_f
129
122
  end
130
- return {compra: dolar_compra, venta: dolar_venta, fecha: dolar_fecha}
123
+ return {compra: dolar_compra, venta: dolar_venta}
131
124
  end
132
125
 
133
126
  def save_in_db data, dolar_type
134
- Dolar::Bna::DolarCotization.create(date: data[:fecha], dolar_type: dolar_type, dolar_buy: data[:compra], dolar_sell: data[:venta])
127
+ dr = Dolar::Bna::DolarCotization.where(date: @fecha.to_date, dolar_type: dolar_type, dolar_buy: data[:compra], dolar_sell: data[:venta]).first_or_initialize
128
+ if dr.save
129
+ pp "todo ok"
130
+ else
131
+ pp dr.errors
132
+ end
135
133
  end
136
134
 
135
+ # def get_last_dolar dolar_type
136
+ # last_usd = Dolar::Bna::DolarCotization.where(dolar_type: dolar_type).last
137
+ # return last_usd
138
+ # end
139
+
137
140
  end
138
141
  end
139
142
  end
@@ -1,5 +1,5 @@
1
1
  module Dolar
2
2
  module Bna
3
- VERSION = "1.0.9.1"
3
+ VERSION = "1.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dolar-bna
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - LITECODE
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-17 00:00:00.000000000 Z
11
+ date: 2020-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: factory_bot
@@ -130,8 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  requirements: []
133
- rubyforge_project:
134
- rubygems_version: 2.7.8
133
+ rubygems_version: 3.0.3
135
134
  signing_key:
136
135
  specification_version: 4
137
136
  summary: Cotizador de USD/ARS