dolar-bna 1.0.8.1 → 1.0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/dolar/bna/convert.rb +19 -17
- data/lib/dolar/bna/exchange.rb +8 -13
- data/lib/dolar/bna/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d9343fee1ffa21bb51f2aad7ef448281dc129a73b5b0118080fff7d036f1e21
|
4
|
+
data.tar.gz: 83568ea830cfeecf9b602402bec919b404c33e7c6e98a890b29b13e528c93772
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: add15d42604754a0c3ef1514322bf9504f17d86f7703235fb422f70f319d01c607ceb585925dea1ec4b72b0751454adcb0f97ee24386f82840d95ddf2576fcc5
|
7
|
+
data.tar.gz: acc6e416e7a9a89090924c855eec56b8f66da19ab2243984b2106107f73230016463090e53808c4bead23418cb9e73abe44870cfdcc341a8651a623287a81138
|
data/lib/dolar/bna/convert.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
module Dolar
|
2
2
|
module Bna
|
3
3
|
class Convert
|
4
|
-
def initialize(value=0, conversion="ars_to_usd", dolar_type="Divisa")
|
4
|
+
def initialize(value=0, conversion="ars_to_usd", dolar_type="Divisa", date=Date.today)
|
5
5
|
@value ||= value
|
6
6
|
@conversion ||= conversion
|
7
7
|
@dolar_type ||= dolar_type
|
8
|
+
@date ||= date
|
8
9
|
end
|
9
10
|
|
10
11
|
def perform
|
11
12
|
#dolar_query = Dolar::Bna::DolarCotization.where(date: Date.today, dolar_type: @dolar_type).first
|
12
|
-
dolar_buy, dolar_sell = set_dolar()
|
13
|
+
dolar_buy, dolar_sell = set_dolar(@date)
|
13
14
|
if @conversion == "ars_to_usd"
|
14
15
|
ars_to_dolar(dolar_sell)
|
15
16
|
else
|
@@ -19,32 +20,33 @@ module Dolar
|
|
19
20
|
|
20
21
|
private
|
21
22
|
|
22
|
-
def set_dolar
|
23
|
+
def set_dolar date
|
23
24
|
dolar_buy = 0
|
24
25
|
dolar_sell = 0
|
25
26
|
intents = 0
|
27
|
+
date = date.to_date
|
26
28
|
while intents < 5
|
27
|
-
dolar_query = Dolar::Bna::DolarCotization.where(date:
|
28
|
-
if dolar_query.
|
29
|
+
dolar_query = Dolar::Bna::DolarCotization.where(date: date, dolar_type: @dolar_type).first
|
30
|
+
if dolar_query.blank?
|
29
31
|
intents += 1
|
30
32
|
if @dolar_type.downcase == "divisa"
|
31
|
-
Dolar::Bna::Exchange.new(
|
32
|
-
dolar_query = Dolar::Bna::DolarCotization.where(date:
|
33
|
-
dolar_buy = dolar_query.dolar_buy unless dolar_query.
|
34
|
-
dolar_sell = dolar_query.dolar_sell unless dolar_query.
|
33
|
+
Dolar::Bna::Exchange.new(date).perform_bna_divisa
|
34
|
+
dolar_query = Dolar::Bna::DolarCotization.where(date: date, dolar_type: @dolar_type).first
|
35
|
+
dolar_buy = dolar_query.dolar_buy unless dolar_query.blank?
|
36
|
+
dolar_sell = dolar_query.dolar_sell unless dolar_query.blank?
|
35
37
|
elsif @dolar_type.downcase == "billete"
|
36
|
-
Dolar::Bna::Exchange.new(
|
37
|
-
dolar_query = Dolar::Bna::DolarCotization.where(date:
|
38
|
-
dolar_buy = dolar_query.dolar_buy unless dolar_query.
|
39
|
-
dolar_sell = dolar_query.dolar_sell unless dolar_query.
|
38
|
+
Dolar::Bna::Exchange.new(date).perform_bna_billete
|
39
|
+
dolar_query = Dolar::Bna::DolarCotization.where(date: date, dolar_type: @dolar_type).first
|
40
|
+
dolar_buy = dolar_query.dolar_buy unless dolar_query.blank?
|
41
|
+
dolar_sell = dolar_query.dolar_sell unless dolar_query.blank?
|
40
42
|
else
|
41
|
-
dolar_buy =
|
42
|
-
dolar_sell = dolar_query.dolar_sell unless dolar_query.
|
43
|
+
dolar_buy = dolar_query.dolar_buy unless dolar_query.blank?
|
44
|
+
dolar_sell = dolar_query.dolar_sell unless dolar_query.blank?
|
43
45
|
break
|
44
46
|
end
|
45
47
|
else
|
46
|
-
dolar_buy = dolar_query.dolar_buy
|
47
|
-
dolar_sell = dolar_query.dolar_sell unless dolar_query.
|
48
|
+
dolar_buy = dolar_query.dolar_buy unless dolar_query.blank?
|
49
|
+
dolar_sell = dolar_query.dolar_sell unless dolar_query.blank?
|
48
50
|
break
|
49
51
|
end
|
50
52
|
end
|
data/lib/dolar/bna/exchange.rb
CHANGED
@@ -63,7 +63,7 @@ module Dolar
|
|
63
63
|
ddolar = get_dolar()
|
64
64
|
end
|
65
65
|
else
|
66
|
-
ddolar = {compra: query.dolar_buy, venta: query.dolar_sell
|
66
|
+
ddolar = {compra: query.dolar_buy, venta: query.dolar_sell}
|
67
67
|
end
|
68
68
|
return ddolar
|
69
69
|
end
|
@@ -103,35 +103,30 @@ module Dolar
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def obtain_dolar_from_html(url, mechanize, data, d_type)
|
106
|
-
dolar_fecha = nil
|
107
106
|
page = mechanize.get(url)
|
108
107
|
doc = Nokogiri::HTML(page.body, "UTF-8")
|
109
108
|
doc.xpath("//td").each_with_index do |node, index|
|
110
109
|
data[index] = node.text
|
111
110
|
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
111
|
correct_date = "#{@fecha.day.to_i}/#{@fecha.month.to_i}/#{@fecha.year.to_i}"
|
120
112
|
i = data.key(correct_date)
|
121
113
|
if !i.nil?
|
122
|
-
dolar_fecha = data[i - 3]
|
123
114
|
dolar_compra = BigDecimal(data[i - 2].tr(",", ".")).truncate(3).to_f
|
124
115
|
dolar_venta = BigDecimal(data[i - 1].tr(",", ".")).truncate(3).to_f
|
125
116
|
else
|
126
|
-
dolar_fecha = dolar_fecha.nil? ? data[3] : dolar_fecha
|
127
117
|
dolar_compra = BigDecimal(data[1].tr(",", ".")).truncate(3).to_f
|
128
118
|
dolar_venta = BigDecimal(data[2].tr(",", ".")).truncate(3).to_f
|
129
119
|
end
|
130
|
-
return {compra: dolar_compra, venta: dolar_venta
|
120
|
+
return {compra: dolar_compra, venta: dolar_venta}
|
131
121
|
end
|
132
122
|
|
133
123
|
def save_in_db data, dolar_type
|
134
|
-
Dolar::Bna::DolarCotization.
|
124
|
+
dr = Dolar::Bna::DolarCotization.where(date: @fecha, dolar_type: dolar_type, dolar_buy: data[:compra], dolar_sell: data[:venta]).first_or_initialize
|
125
|
+
if dr.save
|
126
|
+
pp "todo ok"
|
127
|
+
else
|
128
|
+
pp dr.errors
|
129
|
+
end
|
135
130
|
end
|
136
131
|
|
137
132
|
end
|
data/lib/dolar/bna/version.rb
CHANGED
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.
|
4
|
+
version: 1.0.9.4
|
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-
|
11
|
+
date: 2019-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: factory_bot
|