navfund 1.1.0 → 1.2.0
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/navfund/provider.rb +1 -1
- data/lib/navfund/providers/metrobank.rb +11 -11
- data/lib/navfund/providers/philamlife.rb +1 -1
- data/lib/navfund/providers/sunlife.rb +17 -8
- data/lib/navfund/version.rb +1 -1
- data/test/lib/navfund/provider_test.rb +4 -3
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03eb8d04c7d9c941df5026c24f0dc1c0a8bd5314
|
4
|
+
data.tar.gz: eafdea69b1881522d2acde04193807d5b9cce213
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55aedd2bae504d6ba33f1009012b267d63fb2b872f17d8e0b32b06e34221ff3eb64cbd4e7b4fb767a9a0d1106201b42fd6247d081015b0d831c44277d1ef51da
|
7
|
+
data.tar.gz: b5bb48a5ec1d79d84c7f8c8036f1aa3b356179b55ee750f41dc6de90418fbe6c9c39f850d3841908fe90b6783c5e89f34c3f4932920bd7c01b23af37de59ea4d
|
data/lib/navfund/provider.rb
CHANGED
@@ -52,7 +52,7 @@ module Navfund
|
|
52
52
|
if fname
|
53
53
|
fval = fname.ancestors('tr').first.search("td[data-title='NAVpu'] div").first rescue nil
|
54
54
|
end
|
55
|
-
val = Provider.strip_value(fval.text) if fval
|
55
|
+
val = Provider.strip_value(fval.text).to_f if fval
|
56
56
|
else
|
57
57
|
raise InvalidFund
|
58
58
|
end
|
@@ -5,17 +5,17 @@ module Navfund
|
|
5
5
|
# List of funds
|
6
6
|
MAIN_URL = "http://www.uitf.com.ph/daily_navpu.php?bank_id=1"
|
7
7
|
Funds = [
|
8
|
-
{:name => "Money Market Fund", :currency => "PHP", :ticker => "MBSTART:PM"},
|
9
|
-
{:name => "Max-3 Bond Fund", :currency => "PHP", :ticker => "MBELITE:PM"},
|
10
|
-
{:name => "Wealth Builder Fund", :currency => "PHP", :ticker => "MBIPLUS:PM"},
|
11
|
-
{:name => "Max-5 Bond Fund", :currency => "PHP", :ticker => "MBPKEAR:PM"},
|
12
|
-
{:name => "Balanced Fund", :currency => "PHP", :ticker => "MBCAPGR:PM"},
|
13
|
-
{:name => "Equity Fund", :currency => "PHP", :ticker => "MBEQITY:PM"},
|
14
|
-
{:name => "High Dividend Yield Fund", :currency => "PHP", :ticker => ""},
|
15
|
-
{:name => "PSEi Tracker Fund", :currency => "PHP", :ticker => ""},
|
16
|
-
{:name => "$ Money Market Fund", :currency => "USD", :ticker => "MBDMMKF:PM"},
|
17
|
-
{:name => "$ Max-3 Bond Fund", :currency => "USD", :ticker => "MBPHLIQ:PM"},
|
18
|
-
{:name => "$ Max-5 Bond Fund", :currency => "USD", :ticker => "MBPHLBD:PM"}
|
8
|
+
{:name => "Metro Money Market Fund", :currency => "PHP", :ticker => "MBSTART:PM"},
|
9
|
+
{:name => "Metro Max-3 Bond Fund", :currency => "PHP", :ticker => "MBELITE:PM"},
|
10
|
+
{:name => "Metro Wealth Builder Fund", :currency => "PHP", :ticker => "MBIPLUS:PM"},
|
11
|
+
{:name => "Metro Max-5 Bond Fund", :currency => "PHP", :ticker => "MBPKEAR:PM"},
|
12
|
+
{:name => "Metro Balanced Fund", :currency => "PHP", :ticker => "MBCAPGR:PM"},
|
13
|
+
{:name => "Metro Equity Fund", :currency => "PHP", :ticker => "MBEQITY:PM"},
|
14
|
+
{:name => "Metro High Dividend Yield Fund", :currency => "PHP", :ticker => ""},
|
15
|
+
{:name => "Metro PSEi Tracker Fund", :currency => "PHP", :ticker => ""},
|
16
|
+
{:name => "Metro$ Money Market Fund", :currency => "USD", :ticker => "MBDMMKF:PM"},
|
17
|
+
{:name => "Metro$ Max-3 Bond Fund", :currency => "USD", :ticker => "MBPHLIQ:PM"},
|
18
|
+
{:name => "Metro$ Max-5 Bond Fund", :currency => "USD", :ticker => "MBPHLBD:PM"}
|
19
19
|
]
|
20
20
|
|
21
21
|
def initialize(main_url=nil)
|
@@ -2,20 +2,25 @@
|
|
2
2
|
|
3
3
|
module Navfund
|
4
4
|
class Sunlife < Provider
|
5
|
-
MAIN_URL = "
|
5
|
+
MAIN_URL = "https://www.sunlife.com.ph/PH/Investments/NAVPS?vgnLocale=en_CA"
|
6
6
|
Funds = [
|
7
7
|
{:name => "Bond Fund", :currency => "PHP", :ticker => "SNCPRBF:PM"},
|
8
8
|
{:name => "Balanced Fund", :currency => "PHP", :ticker => "SNCPRBA:PM"},
|
9
9
|
{:name => "Equity Fund", :currency => "PHP", :ticker => "SNCPPEA:PM"},
|
10
10
|
{:name => "Money Market Fund", :currency => "PHP", :ticker => "SNLFMNY:PM"},
|
11
11
|
{:name => "GS Fund", :currency => "PHP", :ticker => "SNLPRGS:PM"},
|
12
|
+
{:name => "Dynamic Fund", :currency => "PHP", :ticker => "SLPVU22:PM"},
|
13
|
+
{:name => "Index Fund", :currency => "PHP", :ticker => "SLFPSIF:PM"},
|
12
14
|
{:name => "Dollar Advantage Fund", :currency => "USD", :ticker => "SUNPDAA:PM"},
|
13
|
-
{:name => "Dollar Abundance Fund", :currency => "USD", :ticker => "SNLPRDA:PM"}
|
15
|
+
{:name => "Dollar Abundance Fund", :currency => "USD", :ticker => "SNLPRDA:PM"},
|
16
|
+
{:name => "Dollar Wellspring Fund", :currency => "USD", :ticker => "SLDWELL:PM"},
|
17
|
+
{:name => "World Voyager Fund", :currency => "USD", :ticker => "SLWVOYA:PM"},
|
18
|
+
{:name => "Dollar Starter Fund", :currency => "USD", :ticker => "SLDSTAR:PM"}
|
14
19
|
]
|
15
20
|
|
16
21
|
def initialize(main_url=nil)
|
17
22
|
@url = main_url ||= MAIN_URL
|
18
|
-
@
|
23
|
+
@funds = Funds
|
19
24
|
self.scrape
|
20
25
|
end
|
21
26
|
|
@@ -23,9 +28,8 @@ module Navfund
|
|
23
28
|
def value(fund, fund_type=nil)
|
24
29
|
val = nil
|
25
30
|
if valid_fund?(fund)
|
26
|
-
|
27
|
-
|
28
|
-
val = Provider.strip_value(fval.text) if fval
|
31
|
+
fval = fund_table.search("[text()*='#{fund}']").first.next_element.children.last.text rescue nil
|
32
|
+
val = fval.scan(/\d./).join('').to_f if fval
|
29
33
|
else
|
30
34
|
raise InvalidFund
|
31
35
|
end
|
@@ -33,11 +37,16 @@ module Navfund
|
|
33
37
|
end
|
34
38
|
|
35
39
|
def value_at
|
36
|
-
|
37
|
-
dtext = dcontainer.text
|
40
|
+
dtext = fund_table.search("[text()*='As of']").first.text
|
38
41
|
dstr = dtext.split("As of").last.strip
|
39
42
|
Date.strptime(dstr, "%m/%d/%Y")
|
40
43
|
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def fund_table
|
48
|
+
@fund_table ||= @wrapped_document.xpath('//div[@id="PesoFunds"]').first
|
49
|
+
end
|
41
50
|
|
42
51
|
end
|
43
52
|
end
|
data/lib/navfund/version.rb
CHANGED
@@ -2,11 +2,12 @@ require File.expand_path('../../../test_helper.rb', __FILE__)
|
|
2
2
|
|
3
3
|
describe Navfund do
|
4
4
|
#@providers = Navfund::Providers
|
5
|
-
@providers = [Navfund::Metrobank, Navfund::Sunlife
|
5
|
+
@providers = [Navfund::Metrobank, Navfund::Sunlife]
|
6
6
|
@providers.each do |provider_klass|
|
7
7
|
before do
|
8
|
-
google_cache_url = "
|
8
|
+
google_cache_url = "https://webcache.googleusercontent.com/search?q=cache:"
|
9
9
|
test_url = "#{google_cache_url}#{provider_klass::MAIN_URL}"
|
10
|
+
puts test_url
|
10
11
|
@provider = provider_klass.new(test_url)
|
11
12
|
end
|
12
13
|
describe "for the #{provider_klass.to_s} provider" do
|
@@ -15,7 +16,7 @@ describe Navfund do
|
|
15
16
|
end
|
16
17
|
it "should get the current values of #{provider_klass.to_s}" do
|
17
18
|
@provider.funds.each do |fund|
|
18
|
-
@provider.value(fund[:name]).wont_be_empty
|
19
|
+
@provider.value(fund[:name]).to_s.wont_be_empty
|
19
20
|
end
|
20
21
|
end
|
21
22
|
it "should get the value date of #{provider_klass.to_s}" do
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: navfund
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marvin Baltazar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.8'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.8'
|
41
41
|
description: Data scraper for Investment Fund Net Asset Values (NAVs)
|
@@ -45,8 +45,8 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- .gitignore
|
49
|
-
- .travis.yml
|
48
|
+
- ".gitignore"
|
49
|
+
- ".travis.yml"
|
50
50
|
- Gemfile
|
51
51
|
- LICENSE
|
52
52
|
- README.md
|
@@ -98,17 +98,17 @@ require_paths:
|
|
98
98
|
- lib
|
99
99
|
required_ruby_version: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 1.9.2
|
104
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
|
-
- -
|
106
|
+
- - ">="
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
requirements: []
|
110
110
|
rubyforge_project:
|
111
|
-
rubygems_version: 2.
|
111
|
+
rubygems_version: 2.6.14
|
112
112
|
signing_key:
|
113
113
|
specification_version: 4
|
114
114
|
summary: Navfund is a ruby gem that fetches the current NAVPU/NAVPS of UITFs/Mutual
|