navfund 1.1.0 → 1.2.0

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