forex 0.4.1 → 0.4.2

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
- SHA1:
3
- metadata.gz: 5f6042f89c4a24093fee33684c851952e6fccae3
4
- data.tar.gz: 81b3446867cb4023b6a7f8e8228845172517d430
2
+ SHA256:
3
+ metadata.gz: 22d0fe237e6625b35097f1241e18d6b12e18cb43ead901dc86fd736d78c78422
4
+ data.tar.gz: 97a2f4e7c023344bd4d2805b6588542a34ec5cd340921d8b1177fb259b7318d1
5
5
  SHA512:
6
- metadata.gz: 56e931e084207454ceab0aa46c60ed53f1d233a41c7e9767f7c587ba73d4ffeebcfe08abdc4107195f0635288832890ef2d5de7f5a7074ff772ccd9add78caaa
7
- data.tar.gz: 064bbd57204e53873351ff46e8e98e154cc51c6d3fe4b0838608f1041f53fa9ddfde42c967581d91f9e0cdbbc5ba86fc210ff1c4c57d2fa1da36b00d4ab12c9e
6
+ metadata.gz: 951a54966ac9e69322fb3147063aee24cc831238c11b4b267d49b2f1771d9365c0e90c291dd139b58c64b4a69a07acc66f13dcc0658d3f35b8d9800e28d42817
7
+ data.tar.gz: 54cfbfefe037504c1e7ff175bd8b8b7eb93f4482f5ba180cab447dcd34a89721bffaebb2d842ff563353d449b3a414bd13d904af83673ca626f71e70fb33917e
@@ -6,5 +6,5 @@ branches:
6
6
  only:
7
7
  - master
8
8
  script:
9
- - bundle exec cucumber -f Fivemat
9
+ - bundle exec cucumber
10
10
  - bundle exec rspec -f Fivemat
@@ -2,7 +2,6 @@ require 'nokogiri'
2
2
  require 'active_support/core_ext/string'
3
3
 
4
4
  require "forex/version"
5
- require "forex/client"
6
5
  require "forex/tabular_rates"
7
6
  require "forex/trader"
8
7
 
@@ -45,7 +45,8 @@ module Forex
45
45
  def parse_currency_code(table_row, translations)
46
46
  return if table_row.empty?
47
47
 
48
- currency_code = CurrencyCode.new(table_row[currency_column.to_i].content, translations)
48
+ content = table_row[currency_column.to_i].content.gsub(/\A[[:space:]]*(.*?)[[:space:]]*\z/) { $1 }
49
+ currency_code = CurrencyCode.new(content, translations)
49
50
  return if currency_code.invalid? ||
50
51
  cached_currencies.has_key?(parsed_currency_string = currency_code.to_s)
51
52
 
@@ -105,4 +106,3 @@ module Forex
105
106
  end
106
107
  end
107
108
  end
108
-
@@ -1,3 +1,5 @@
1
+ require 'open-uri'
2
+
1
3
  module Forex
2
4
  CannotRedefineTrader = Class.new(StandardError)
3
5
 
@@ -38,7 +40,7 @@ module Forex
38
40
 
39
41
  # doc built from the endpoint
40
42
  def doc
41
- Nokogiri::HTML(Client.new.get_response(endpoint).body)
43
+ @doc ||= open(endpoint) { |f| Nokogiri::HTML(f.read) }
42
44
  end
43
45
 
44
46
  reset
@@ -2,29 +2,23 @@ Forex::Trader.define "JMMB" do |t|
2
2
  t.base_currency = "JMD"
3
3
  t.name = "Jamaica Money Market Brokers"
4
4
  t.twitter_handle = "@JMMBGROUP"
5
- t.endpoint = "http://www.jmmb.com/full_rates.php"
5
+ t.endpoint = 'https://jm.jmmb.com/rates-fees'
6
6
 
7
7
  t.rates_parser = ->(doc) do # doc is a nokogiri document
8
8
 
9
9
  options = {
10
10
  currency_code: 0,
11
11
  buy_cash: 1,
12
- buy_draft: 3,
13
- sell_cash: 4,
14
- sell_draft: 4
15
- }
16
-
17
- translations = {
18
- 'US$' => 'USD',
19
- 'TT$' => 'TTD',
12
+ buy_draft: 2,
13
+ sell_cash: 3,
14
+ sell_draft: 3
20
15
  }
21
16
 
22
17
  table =
23
- doc.search("[text()*='FX Trading Rates']").first. # Section with rates
24
- ancestors('table').first. # Root table for section
18
+ doc.search("[text()*='FX Rates']").first. # Section with rates
19
+ ancestors('div').first. # Root table for section
25
20
  css("table").first # Rates table
26
21
 
27
- Forex::TabularRates.new(table, options).parse_rates(translations)
22
+ Forex::TabularRates.new(table, options).parse_rates
28
23
  end
29
24
  end
30
-
@@ -1,8 +1,8 @@
1
1
  Forex::Trader.define "JNBS" do |t|
2
2
  t.base_currency = "JMD"
3
- t.name = "Jamaica National Building Society"
3
+ t.name = 'JN Bank'
4
4
  t.twitter_handle = "@JamaicaNational"
5
- t.endpoint = "http://www.jnbs.com/fx-rates-2"
5
+ t.endpoint = 'https://www.jnbank.com/fx-rates/'
6
6
 
7
7
  t.rates_parser = ->(doc) do # doc is a nokogiri document
8
8
 
@@ -12,9 +12,8 @@ Forex::Trader.define "JNBS" do |t|
12
12
  buy_draft: 1,
13
13
  }
14
14
 
15
- table = doc.css(".fx-full").first
15
+ tbody = doc.css('#fx-big-table tbody').first
16
16
 
17
- Forex::TabularRates.new(table, options).parse_rates
17
+ Forex::TabularRates.new(tbody, options).parse_rates
18
18
  end
19
19
  end
20
-
@@ -1,20 +1,20 @@
1
1
  Forex::Trader.define "NCB" do |t|
2
2
  t.base_currency = "JMD"
3
3
  t.name = "National Commercial Bank"
4
- t.endpoint = "http://www.jncb.com/rates"
4
+ t.endpoint = "https://www.jncb.com/Support/Help-Resources/Foreign-Exchange-Services"
5
5
  t.twitter_handle = "@ncbja"
6
6
 
7
7
  t.rates_parser = ->(doc) do # doc is a nokogiri document
8
8
 
9
9
  options = {
10
- currency_code: 1,
11
- sell_cash: 2,
12
- buy_cash: 4,
13
- buy_draft: 3,
10
+ currency_code: 0,
11
+ sell_cash: 1,
12
+ buy_cash: 3,
13
+ buy_draft: 2,
14
14
  }
15
15
 
16
- table = doc.css(".fxratestable").first
16
+ tbody = doc.css("tbody.FxRContainer").first
17
17
 
18
- Forex::TabularRates.new(table, options).parse_rates
18
+ Forex::TabularRates.new(tbody, options).parse_rates
19
19
  end
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module Forex
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
@@ -1,51 +1,51 @@
1
1
  ---
2
2
  USD:
3
- :buy_cash: 101.3
4
- :buy_draft: 103.3
5
- :sell_cash: 105.0
6
- :sell_draft: 105.0
3
+ :buy_cash: 114.33
4
+ :buy_draft: 126.73
5
+ :sell_cash: 131.34
6
+ :sell_draft: 131.34
7
7
  GBP:
8
- :buy_cash: 166.06
9
- :buy_draft: 169.48
10
- :sell_cash: 173.16
11
- :sell_draft: 173.16
8
+ :buy_cash: 167.87
9
+ :buy_draft: 170.88
10
+ :sell_cash: 175.9
11
+ :sell_draft: 175.9
12
12
  CAD:
13
- :buy_cash: 94.3
14
- :buy_draft: 96.71
15
- :sell_cash: 99.5
16
- :sell_draft: 99.5
13
+ :buy_cash: 95.38
14
+ :buy_draft: 97.82
15
+ :sell_cash: 101.05
16
+ :sell_draft: 101.05
17
17
  EUR:
18
- :buy_cash: 135.01
19
- :buy_draft: 138.05
20
- :sell_cash: 143.82
21
- :sell_draft: 143.82
18
+ :buy_cash: 145.91
19
+ :buy_draft: 149.2
20
+ :sell_cash: 155.43
21
+ :sell_draft: 155.43
22
22
  BBD:
23
- :buy_cash: 46.23
24
- :buy_draft: 50.25
25
- :sell_cash: 54.62
26
- :sell_draft: 54.62
23
+ :buy_cash: 51.23
24
+ :buy_draft:
25
+ :sell_cash: 68.32
26
+ :sell_draft: 68.32
27
27
  KYD:
28
- :buy_cash: 112.4
29
- :buy_draft: 117.09
30
- :sell_cash: 127.13
31
- :sell_draft: 127.13
28
+ :buy_cash: 137.69
29
+ :buy_draft: 143.43
30
+ :sell_cash: 155.9
31
+ :sell_draft: 155.9
32
32
  XCD:
33
- :buy_cash: 34.59
34
- :buy_draft: 36.41
35
- :sell_cash: 40.46
36
- :sell_draft: 40.46
33
+ :buy_cash: 43.27
34
+ :buy_draft: 45.55
35
+ :sell_cash: 50.61
36
+ :sell_draft: 50.61
37
37
  JPY:
38
- :buy_cash: 0.9341
39
- :buy_draft: 0.9833
40
- :sell_cash: 1.0573
41
- :sell_draft: 1.0573
38
+ :buy_cash: 1.0655
39
+ :buy_draft: 1.1216
40
+ :sell_cash: 1.206
41
+ :sell_draft: 1.206
42
42
  CHF:
43
- :buy_cash: 106.8
44
- :buy_draft: 110.67
45
- :sell_cash: 119.64
46
- :sell_draft: 119.64
43
+ :buy_cash: 121.25
44
+ :buy_draft: 125.64
45
+ :sell_cash: 135.83
46
+ :sell_draft: 135.83
47
47
  TTD:
48
- :buy_cash: 15.26
49
- :buy_draft: 16.06
50
- :sell_cash: 17.65
51
- :sell_draft: 17.65
48
+ :buy_cash:
49
+ :buy_draft: 18.58
50
+ :sell_cash: 22.08
51
+ :sell_draft: 22.08
@@ -1,26 +1,26 @@
1
1
  ---
2
2
  USD:
3
- :buy_cash: 106.45
4
- :buy_draft: 104.2
5
- :sell_cash: 108.85
6
- :sell_draft: 109.4
3
+ :buy_cash: 122.1
4
+ :buy_draft: 119.5
5
+ :sell_cash: 128.9
6
+ :sell_draft: 133.5
7
7
  CAD:
8
- :buy_cash: 93.15
9
- :buy_draft: 91.9
10
- :sell_cash: 97.0
11
- :sell_draft: 98.35
8
+ :buy_cash: 91.25
9
+ :buy_draft: 88.1
10
+ :sell_cash: 98.25
11
+ :sell_draft: 104.8
12
12
  GBP:
13
- :buy_cash: 175.1
14
- :buy_draft: 162.0
15
- :sell_cash: 180.1
16
- :sell_draft: 181.4
13
+ :buy_cash: 160.85
14
+ :buy_draft: 157.1
15
+ :sell_cash: 169.85
16
+ :sell_draft: 175.1
17
17
  KYD:
18
- :buy_cash: 116.3
19
- :buy_draft: 100.0
20
- :sell_cash: 123.4
21
- :sell_draft: 122.25
18
+ :buy_cash: 125.25
19
+ :buy_draft: 122.85
20
+ :sell_cash: 138.0
21
+ :sell_draft: 142.5
22
22
  EUR:
23
- :buy_cash: 143.0
24
- :buy_draft: 130.2
25
- :sell_cash: 147.0
26
- :sell_draft: 148.0
23
+ :buy_cash: 138.5
24
+ :buy_draft: 133.5
25
+ :sell_cash: 148.85
26
+ :sell_draft: 152.5
@@ -1,21 +1,21 @@
1
1
  ---
2
2
  USD:
3
- :buy_cash: 113.4
4
- :buy_draft: 114.4
5
- :sell_cash: 115.8
6
- :sell_draft: 115.8
3
+ :buy_cash: 114.6
4
+ :buy_draft: 127.7
5
+ :sell_cash: 131.8
6
+ :sell_draft: 131.8
7
7
  CAD:
8
- :buy_cash: 87.0
9
- :buy_draft: 89.33
10
- :sell_cash: 92.5
11
- :sell_draft: 92.5
8
+ :buy_cash: 90.7
9
+ :buy_draft: 94.7
10
+ :sell_cash: 101.5
11
+ :sell_draft: 101.5
12
12
  GBP:
13
- :buy_cash: 172.2
14
- :buy_draft: 175.5
15
- :sell_cash: 179.74
16
- :sell_draft: 179.74
13
+ :buy_cash: 160.3
14
+ :buy_draft: 164.3
15
+ :sell_cash: 176.0
16
+ :sell_draft: 176.0
17
17
  EUR:
18
- :buy_cash: 124.18
19
- :buy_draft: 126.97
20
- :sell_cash: 132.28
21
- :sell_draft: 132.28
18
+ :buy_cash: 140.2
19
+ :buy_draft: 144.2
20
+ :sell_cash: 155.5
21
+ :sell_draft: 155.5
@@ -1,26 +1,26 @@
1
1
  ---
2
2
  USD:
3
- :buy_cash: 113.0
4
- :buy_draft: 114.15
5
- :sell_cash: 115.25
6
- :sell_draft: 115.4
3
+ :buy_cash: 122.0
4
+ :buy_draft: 0.0
5
+ :sell_cash: 129.0
6
+ :sell_draft: 0.0
7
7
  CAD:
8
- :buy_cash: 87.45
9
- :buy_draft: 87.9
10
- :sell_cash: 90.3
11
- :sell_draft: 91.2
8
+ :buy_cash: 92.95
9
+ :buy_draft: 0.0
10
+ :sell_cash: 98.65
11
+ :sell_draft: 0.0
12
12
  GBP:
13
- :buy_cash: 166.4
14
- :buy_draft: 166.8
15
- :sell_cash: 170.6
16
- :sell_draft: 171.45
13
+ :buy_cash: 162.7
14
+ :buy_draft: 0.0
15
+ :sell_cash: 170.3
16
+ :sell_draft: 0.0
17
17
  KYD:
18
- :buy_cash: 111.7
18
+ :buy_cash: 128.4
19
19
  :buy_draft: 0.0
20
- :sell_cash: 124.7
20
+ :sell_cash: 138.4
21
21
  :sell_draft: 0.0
22
22
  EUR:
23
- :buy_cash: 117.05
23
+ :buy_cash: 142.95
24
24
  :buy_draft: 0.0
25
- :sell_cash: 123.05
25
+ :sell_cash: 149.45
26
26
  :sell_draft: 0.0
@@ -1,26 +1,21 @@
1
1
  ---
2
2
  USD:
3
- :buy_cash: 103.45
4
- :buy_draft: 104.45
5
- :sell_cash: 106.0
6
- :sell_draft: 106.0
7
- TTD:
8
- :buy_cash: 14.55
9
- :buy_draft: 15.01
10
- :sell_cash: 16.92
11
- :sell_draft: 16.92
12
- GBP:
13
- :buy_cash: 167.74
14
- :buy_draft: 168.74
15
- :sell_cash: 174.53
16
- :sell_draft: 174.53
3
+ :buy_cash: 122.5
4
+ :buy_draft: 127.7
5
+ :sell_cash: 131.3
6
+ :sell_draft: 131.3
17
7
  EUR:
18
- :buy_cash: 138.81
19
- :buy_draft: 140.31
20
- :sell_cash: 145.68
21
- :sell_draft: 145.68
8
+ :buy_cash: 143.5
9
+ :buy_draft: 149.5
10
+ :sell_cash: 155.0
11
+ :sell_draft: 155.0
12
+ GBP:
13
+ :buy_cash: 164.7
14
+ :buy_draft: 170.7
15
+ :sell_cash: 175.1
16
+ :sell_draft: 175.1
22
17
  CAD:
23
- :buy_cash: 95.59
24
- :buy_draft: 96.59
25
- :sell_cash: 100.56
26
- :sell_draft: 100.56
18
+ :buy_cash: 92.4
19
+ :buy_draft: 98.4
20
+ :sell_cash: 100.7
21
+ :sell_draft: 100.7
@@ -1,21 +1,21 @@
1
1
  ---
2
2
  USD:
3
- :buy_cash: 102.7
4
- :buy_draft: 103.2
5
- :sell_cash: 105.25
3
+ :buy_cash: 111.5
4
+ :buy_draft: 124.0
5
+ :sell_cash: 130.15
6
6
  GBP:
7
- :buy_cash: 167.96
8
- :buy_draft: 168.71
9
- :sell_cash: 173.85
10
- CAD:
11
- :buy_cash: 96.16
12
- :buy_draft: 96.91
13
- :sell_cash: 99.79
7
+ :buy_cash: 160.0
8
+ :buy_draft: 163.57
9
+ :sell_cash: 173.89
10
+ CDN:
11
+ :buy_cash: 90.0
12
+ :buy_draft: 94.1
13
+ :sell_cash: 100.07
14
14
  KYD:
15
- :buy_cash: 95.0
15
+ :buy_cash: 112.7
16
16
  :buy_draft:
17
- :sell_cash: 104.5
17
+ :sell_cash: 138.05
18
18
  EUR:
19
- :buy_cash: 135.21
20
- :buy_draft: 136.21
21
- :sell_cash: 144.71
19
+ :buy_cash: 137.72
20
+ :buy_draft: 139.72
21
+ :sell_cash: 153.81