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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e29ce8ec42cb69880b6867d11b72fd790eab996
4
- data.tar.gz: d891a0a72a91581e158e774e4b1e3dadde95cca2
3
+ metadata.gz: 03eb8d04c7d9c941df5026c24f0dc1c0a8bd5314
4
+ data.tar.gz: eafdea69b1881522d2acde04193807d5b9cce213
5
5
  SHA512:
6
- metadata.gz: 4bf57bc9746646b8fde2cdaad6db0ad82cb5f13b99b3d43fdffc6db4772fb79b6e432761d5885a530f7700f08f2f503330733e802719e6374b397ebca18ac5a2
7
- data.tar.gz: 455324835bbe4972ce8c003e9855789dc6d0e0928dd9e35a38aba8dbd61648892f0ff24c2f1f5437a1737a92ced4a93682600f9bd53ffec92ab22a1bcd925bc3
6
+ metadata.gz: 55aedd2bae504d6ba33f1009012b267d63fb2b872f17d8e0b32b06e34221ff3eb64cbd4e7b4fb767a9a0d1106201b42fd6247d081015b0d831c44277d1ef51da
7
+ data.tar.gz: b5bb48a5ec1d79d84c7f8c8036f1aa3b356179b55ee750f41dc6de90418fbe6c9c39f850d3841908fe90b6783c5e89f34c3f4932920bd7c01b23af37de59ea4d
@@ -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)
@@ -23,7 +23,7 @@ module Navfund
23
23
  {:name => "GROWTH INVEST FUND 3", :currency => "PHP", :ticker => ""}
24
24
  ]
25
25
 
26
- def initialize(main_url=nil)
26
+ def initialize(main_url=nil)
27
27
  @url = main_url ||= MAIN_URL
28
28
  @funds = Funds
29
29
  self.scrape(:check_ssl => false)
@@ -2,20 +2,25 @@
2
2
 
3
3
  module Navfund
4
4
  class Sunlife < Provider
5
- MAIN_URL = "http://www.sunlife.com.ph/philippines/Products+and+Services/Sun+Life+Prosperity+Funds?vgnLocale=en_CA"
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
- @url = MAIN_URL
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
- fname = @wrapped_document.search("[text()*='#{fund}']").first
27
- fval = fname.parent.next_element rescue nil
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
- dcontainer = @wrapped_document.search("div.newsHeadlineTitle[align='left']").first
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
@@ -1,3 +1,3 @@
1
1
  module Navfund
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -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, Navfund::Philamlife]
5
+ @providers = [Navfund::Metrobank, Navfund::Sunlife]
6
6
  @providers.each do |provider_klass|
7
7
  before do
8
- google_cache_url = "http://webcache.googleusercontent.com/search?q=cache:"
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.1.0
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: 2015-05-21 00:00:00.000000000 Z
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.2.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