forex 0.4.1 → 0.4.2

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 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