From 33ec38d4fec4e9032c08f0ee05e0ca746ac1b83b Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Jan 12 2011 17:29:39 +0000 Subject: - fix TIAA-CREF (#668935, ) --- diff --git a/perl-Finance-Quote.spec b/perl-Finance-Quote.spec index 259c7a9..f5e1615 100644 --- a/perl-Finance-Quote.spec +++ b/perl-Finance-Quote.spec @@ -1,11 +1,12 @@ Name: perl-Finance-Quote Version: 1.17 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A Perl module that retrieves stock and mutual fund quotes Group: Development/Libraries License: GPLv2+ URL: http://finance-quote.sourceforge.net/ Source0: http://prdownloads.sourceforge.net/finance-quote/Finance-Quote-%{version}.tar.gz +Patch0: tiaa-cref.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) @@ -22,6 +23,7 @@ using various source. %prep %setup -q -n Finance-Quote-%{version} +%patch0 -p2 find . -name *.pm | xargs %{__sed} -i -e '/^#!.*\/usr\/bin\/perl/d' %build @@ -49,6 +51,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man3/*.3* %changelog +* Wed Jan 12 2011 Bill Nottingham - 1.17-5 +- fix TIAA-CREF (#668935, ) + * Mon Dec 06 2010 Bill Nottingham - 1.17-4 - fix buildrequires for F-15 diff --git a/tiaa-cref.patch b/tiaa-cref.patch new file mode 100644 index 0000000..387ef16 --- /dev/null +++ b/tiaa-cref.patch @@ -0,0 +1,520 @@ +diff --git a/Finance-Quote-1.17/lib/Finance/Quote/Tiaacref.pm b/Finance-Quote-1.17/lib/Finance/Quote/Tiaacref.pm +index 5e1c8a1..5650ef7 100644 +--- a/Finance-Quote-1.17/lib/Finance/Quote/Tiaacref.pm ++++ b/Finance-Quote-1.17/lib/Finance/Quote/Tiaacref.pm +@@ -33,7 +33,7 @@ require Crypt::SSLeay; + + use strict; + +-use vars qw($VERSION $CREF_URL $TIAA_URL ++use vars qw($VERSION $CREF_URL $CREF_URL_INST $TIAA_URL + %tiaacref_ids %tiaacref_locs %tiaacref_vals); + + use LWP::UserAgent; +@@ -44,7 +44,9 @@ $VERSION = '1.17'; + + # URLs of where to obtain information. + # This used to be different for the CREF and TIAA annuities, but this changed. +-$CREF_URL = ("https://www3.tiaa-cref.org/ddata/DownloadData?"); ++$CREF_URL = ("http://www.tiaa-cref.org/public/performance/retirement/data/results?"); ++$CREF_URL_INST = ("http://www.tiaa-cref.org/public/performance/institutional/data/results?"); ++#https://www3.tiaa-cref.org/ddata/DownloadData?"); + + sub methods { return (tiaacref=>\&tiaacref); } + +@@ -96,6 +98,82 @@ sub labels { return (tiaacref => [qw/method symbol exchange name date isodate na + # TIAA-CREF Social Choice Equity: TCSCX + # TIAA-CREF Managed Allocation: TIMAX + ++# TIAA-CREF Retirement Fund - Bond: TIDRX ++# TIAA-CREF Retirement Fund - Bond Index: TBIRX ++# TIAA-CREF Retirement Fund - Bond Plus: TCBRX ++# TIAA-CREF Retirement Fund - Emerging Markets Equity: TEMSX ++# TIAA-CREF Retirement Fund - Emerging Markets Equity Index: TEQSX ++# TIAA-CREF Retirement Fund - Equity Index: TIQRX ++# TIAA-CREF Retirement Fund - Growth & Income: TRGIX ++# TIAA-CREF Retirement Fund - High-Yield: TIHRX ++# TIAA-CREF Retirement Fund - Inflation-Linked Bond: TIKRX ++# TIAA-CREF Retirement Fund - International Equity: TRERX ++# TIAA-CREF Retirement Fund - International Equity Index: TRIEX ++# TIAA-CREF Retirement Fund - Large-Cap Growth: TILRX ++# TIAA-CREF Retirement Fund - Large-Cap Growth Index: TRIRX ++# TIAA-CREF Retirement Fund - Large-Cap Value: TRLCX ++# TIAA-CREF Retirement Fund - Large-Cap Value Index: TRCVX ++# TIAA-CREF Retirement Fund - Lifecycle 2010: TCLEX ++# TIAA-CREF Retirement Fund - Lifecycle 2015: TCLIX ++# TIAA-CREF Retirement Fund - Lifecycle 2020: TCLTX ++# TIAA-CREF Retirement Fund - Lifecycle 2025: TCLFX ++# TIAA-CREF Retirement Fund - Lifecycle 2030: TCLNX ++# TIAA-CREF Retirement Fund - Lifecycle 2035: TCLRX ++# TIAA-CREF Retirement Fund - Lifecycle 2040: TCLOX ++# TIAA-CREF Retirement Fund - Lifecycle 2045: TTFRX ++# TIAA-CREF Retirement Fund - Lifecycle 2050: TLFRX ++# TIAA-CREF Retirement Fund - Lifecycle Retirement Income: TLIRX ++# TIAA-CREF Retirement Fund - Managed Allocation: TITRX ++# TIAA-CREF Retirement Fund - Mid-Cap Growth: TRGMX ++# TIAA-CREF Retirement Fund - Mid-Cap Value: TRVRX ++# TIAA-CREF Retirement Fund - Money Market: TIEXX ++# TIAA-CREF Retirement Fund - Real Estate Securities: TRRSX ++# TIAA-CREF Retirement Fund - S&P 500 Index: TRSPX ++# TIAA-CREF Retirement Fund - Short-Term Bond: TISRX ++# TIAA-CREF Retirement Fund - Cap Blend Index: TRBIX ++# TIAA-CREF Retirement Fund - Small-Cap Equity: TRSEX ++# TIAA-CREF Retirement Fund - Social Choice Equity: TRSCX ++ ++# TIAA-CREF Institutional Fund - Bond: TIBDX 1835 ++# TIAA-CREF Institutional Fund - Bond Index: TBIIX 1837 ++# TIAA-CREF Institutional Fund - Bond Plus: TIBFX 1827 ++# TIAA-CREF Institutional Fund - Emerging Markets Equity: TEMLX 1848 ++# TIAA-CREF Institutional Fund - Emerging Markets Equity Index: TEQLX 1849 ++# TIAA-CREF Institutional Fund - Enhanced International Equity Index: TFIIX 1822 ++# TIAA-CREF Institutional Fund - Enhanced Large-Cap Growth Index: TLIIX 1820 ++# TIAA-CREF Institutional Fund - Enhanced Large-Cap Value Index: TEVIX 1821 ++# TIAA-CREF Institutional Fund - Equity Index: TIEIX 1833 ++# TIAA-CREF Institutional Fund - Growth & Income: TIGRX 1832 ++# TIAA-CREF Institutional Fund - High-Yield: TIHYX 1826 ++# TIAA-CREF Institutional Fund - Inflation-Linked Bond: TIILX 1605 ++# TIAA-CREF Institutional Fund - International Equity: TIIEX 1830 ++# TIAA-CREF Institutional Fund - International Equity Index: TCIEX 1615 ++# TIAA-CREF Institutional Fund - Large-Cap Growth: TILGX 1824 ++# TIAA-CREF Institutional Fund - Large-Cap Growth Index: TILIX 1607 ++# TIAA-CREF Institutional Fund - Large-Cap Value: TRLIX 1601 ++# TIAA-CREF Institutional Fund - Large-Cap Value Index: TILVX 1608 ++# TIAA-CREF Institutional Fund - Lifecycle 2010: TCTIX 1810 ++# TIAA-CREF Institutional Fund - Lifecycle 2015: TCNIX 1811 ++# TIAA-CREF Institutional Fund - Lifecycle 2020: TCWIX 1812 ++# TIAA-CREF Institutional Fund - Lifecycle 2025: TCYIX 1813 ++# TIAA-CREF Institutional Fund - Lifecycle 2030: TCRIX 1814 ++# TIAA-CREF Institutional Fund - Lifecycle 2035: TCIIX 1815 ++# TIAA-CREF Institutional Fund - Lifecycle 2040: TCOIX 1816 ++# TIAA-CREF Institutional Fund - Lifecycle 2045: TTFIX 1817 ++# TIAA-CREF Institutional Fund - Lifecycle 2050: TFTIX 1818 ++# TIAA-CREF Institutional Fund - Lifecycle Retirement Income: TLRIX 1819 ++# TIAA-CREF Institutional Fund - Managed Allocation: TIMIX 1825 ++# TIAA-CREF Institutional Fund - Mid-Cap Growth: TRPWX 1602 ++# TIAA-CREF Institutional Fund - Mid-Cap Value: TIMVX 1603 ++# TIAA-CREF Institutional Fund - Money Market: TCIXX 1836 ++# TIAA-CREF Institutional Fund - Real Estate Securities: TIREX 1604 ++# TIAA-CREF Institutional Fund - S&P 500 Index: TISPX 1606 ++# TIAA-CREF Institutional Fund - Short-Term Bond: TISIX 1828 ++# TIAA-CREF Institutional Fund - Small-Cap Blend Index: TISBX 1612 ++# TIAA-CREF Institutional Fund - Small-Cap Equity: TISEX 1634 ++# TIAA-CREF Institutional Fund - Social Choice Equity: TISCX 1834 ++# TIAA-CREF Institutional Fund - Tax-Exempt Bond: TITIX 1829 ++ + + # + # This subroutine was written by Brent Neal +@@ -157,6 +235,84 @@ sub tiaacref + $tiaacref_ids{"TCSCX"} = "TIAA-CREF Social Choice Equity"; + + $tiaacref_ids{"TIMAX"} = "TIAA-CREF Managed Allocation"; ++ ++ # Retirement class funds ++ $tiaacref_ids{"TIDRX"} = "Retirement Fund - Bond"; ++ $tiaacref_ids{"TBIRX"} = "Retirement Fund - Bond Index"; ++ $tiaacref_ids{"TCBRX"} = "Retirement Fund - Bond Plus"; ++ $tiaacref_ids{"TEMSX"} = "Retirement Fund - Emerging Markets Equity"; ++ $tiaacref_ids{"TEQSX"} = "Retirement Fund - Emerging Markets Equity Index"; ++ $tiaacref_ids{"TIQRX"} = "Retirement Fund - Equity Index"; ++ $tiaacref_ids{"TRGIX"} = "Retirement Fund - Growth & Income"; ++ $tiaacref_ids{"TIHRX"} = "Retirement Fund - High-Yield"; ++ $tiaacref_ids{"TIKRX"} = "Retirement Fund - Inflation-Linked Bond"; ++ $tiaacref_ids{"TRERX"} = "Retirement Fund - International Equity"; ++ $tiaacref_ids{"TRIEX"} = "Retirement Fund - International Equity Index"; ++ $tiaacref_ids{"TILRX"} = "Retirement Fund - Large-Cap Growth"; ++ $tiaacref_ids{"TRIRX"} = "Retirement Fund - Large-Cap Growth Index"; ++ $tiaacref_ids{"TRLCX"} = "Retirement Fund - Large-Cap Value"; ++ $tiaacref_ids{"TRCVX"} = "Retirement Fund - Large-Cap Value Index"; ++ $tiaacref_ids{"TCLEX"} = "Retirement Fund - Lifecycle 2010"; ++ $tiaacref_ids{"TCLIX"} = "Retirement Fund - Lifecycle 2015"; ++ $tiaacref_ids{"TCLTX"} = "Retirement Fund - Lifecycle 2020"; ++ $tiaacref_ids{"TCLFX"} = "Retirement Fund - Lifecycle 2025"; ++ $tiaacref_ids{"TCLNX"} = "Retirement Fund - Lifecycle 2030"; ++ $tiaacref_ids{"TCLRX"} = "Retirement Fund - Lifecycle 2035"; ++ $tiaacref_ids{"TCLOX"} = "Retirement Fund - Lifecycle 2040"; ++ $tiaacref_ids{"TTFRX"} = "Retirement Fund - Lifecycle 2045"; ++ $tiaacref_ids{"TLFRX"} = "Retirement Fund - Lifecycle 2050"; ++ $tiaacref_ids{"TLIRX"} = "Retirement Fund - Lifecycle Retirement Income"; ++ $tiaacref_ids{"TITRX"} = "Retirement Fund - Managed Allocation"; ++ $tiaacref_ids{"TRGMX"} = "Retirement Fund - Mid-Cap Growth"; ++ $tiaacref_ids{"TRVRX"} = "Retirement Fund - Mid-Cap Value"; ++ $tiaacref_ids{"TIEXX"} = "Retirement Fund - Money Market"; ++ $tiaacref_ids{"TRRSX"} = "Retirement Fund - Real Estate Securities"; ++ $tiaacref_ids{"TRSPX"} = "Retirement Fund - S&P 500 Index"; ++ $tiaacref_ids{"TISRX"} = "Retirement Fund - Short-Term Bond"; ++ $tiaacref_ids{"TRBIX"} = "Retirement Fund - Small-Cap Blend Index"; ++ $tiaacref_ids{"TRSEX"} = "Retirement Fund - Small-Cap Equity"; ++ $tiaacref_ids{"TRSCX"} = "Retirement Fund - Social Choice Equity"; ++ ++ #Institutional class funds ++ $tiaacref_ids{"TIBDX"} = "Institutional Fund - Bond"; ++ $tiaacref_ids{"TBIIX"} = "Institutional Fund - Bond Index"; ++ $tiaacref_ids{"TIBFX"} = "Institutional Fund - Bond Plus"; ++ $tiaacref_ids{"TEMLX"} = "Institutional Fund - Emerging Markets Equity"; ++ $tiaacref_ids{"TEQLX"} = "Institutional Fund - Emerging Markets Equity Index"; ++ $tiaacref_ids{"TFIIX"} = "Institutional Fund - Enhanced International Equity Index"; ++ $tiaacref_ids{"TLIIX"} = "Institutional Fund - Enhanced Large-Cap Growth Index"; ++ $tiaacref_ids{"TEVIX"} = "Institutional Fund - Enhanced Large-Cap Value Index"; ++ $tiaacref_ids{"TIEIX"} = "Institutional Fund - Equity Index"; ++ $tiaacref_ids{"TIGRX"} = "Institutional Fund - Growth & Income"; ++ $tiaacref_ids{"TIHYX"} = "Institutional Fund - High-Yield"; ++ $tiaacref_ids{"TIILX"} = "Institutional Fund - Inflation-Linked Bond"; ++ $tiaacref_ids{"TIIEX"} = "Institutional Fund - International Equity"; ++ $tiaacref_ids{"TCIEX"} = "Institutional Fund - International Equity Index"; ++ $tiaacref_ids{"TILGX"} = "Institutional Fund - Large-Cap Growth"; ++ $tiaacref_ids{"TILIX"} = "Institutional Fund - Large-Cap Growth Index"; ++ $tiaacref_ids{"TRLIX"} = "Institutional Fund - Large-Cap Value"; ++ $tiaacref_ids{"TILVX"} = "Institutional Fund - Large-Cap Value Index"; ++ $tiaacref_ids{"TCTIX"} = "Institutional Fund - Lifecycle 2010"; ++ $tiaacref_ids{"TCNIX"} = "Institutional Fund - Lifecycle 2015"; ++ $tiaacref_ids{"TCWIX"} = "Institutional Fund - Lifecycle 2020"; ++ $tiaacref_ids{"TCYIX"} = "Institutional Fund - Lifecycle 2025"; ++ $tiaacref_ids{"TCRIX"} = "Institutional Fund - Lifecycle 2030"; ++ $tiaacref_ids{"TCIIX"} = "Institutional Fund - Lifecycle 2035"; ++ $tiaacref_ids{"TCOIX"} = "Institutional Fund - Lifecycle 2040"; ++ $tiaacref_ids{"TTFIX"} = "Institutional Fund - Lifecycle 2045"; ++ $tiaacref_ids{"TFTIX"} = "Institutional Fund - Lifecycle 2050"; ++ $tiaacref_ids{"TLRIX"} = "Institutional Fund - Lifecycle Retirement Income"; ++ $tiaacref_ids{"TIMIX"} = "Institutional Fund - Managed Allocation"; ++ $tiaacref_ids{"TRPWX"} = "Institutional Fund - Mid-Cap Growth"; ++ $tiaacref_ids{"TIMVX"} = "Institutional Fund - Mid-Cap Value"; ++ $tiaacref_ids{"TCIXX"} = "Institutional Fund - Money Market"; ++ $tiaacref_ids{"TIREX"} = "Institutional Fund - Real Estate Securities"; ++ $tiaacref_ids{"TISPX"} = "Institutional Fund - S&P 500 Index"; ++ $tiaacref_ids{"TISIX"} = "Institutional Fund - Short-Term Bond"; ++ $tiaacref_ids{"TISBX"} = "Institutional Fund - Small-Cap Blend Index"; ++ $tiaacref_ids{"TISEX"} = "Institutional Fund - Small-Cap Equity"; ++ $tiaacref_ids{"TISCX"} = "Institutional Fund - Social Choice Equity"; ++ $tiaacref_ids{"TITIX"} = "Institutional Fund - Tax-Exempt Bond"; + } + + if (! %tiaacref_vals) { +@@ -200,6 +356,82 @@ sub tiaacref + $tiaacref_vals{"TCSCX"} = "83"; + + $tiaacref_vals{"TIMAX"} = "74"; ++ ++ $tiaacref_vals{"TIDRX"} = "1641"; ++ $tiaacref_vals{"TBIRX"} = "1660"; ++ $tiaacref_vals{"TCBRX"} = "1638"; ++ $tiaacref_vals{"TEMSX"} = "1671"; ++ $tiaacref_vals{"TEQSX"} = "1672"; ++ $tiaacref_vals{"TIQRX"} = "1643"; ++ $tiaacref_vals{"TRGIX"} = "1616"; ++ $tiaacref_vals{"TIHRX"} = "1637"; ++ $tiaacref_vals{"TIKRX"} = "1640"; ++ $tiaacref_vals{"TRERX"} = "1618"; ++ $tiaacref_vals{"TRIEX"} = "1632"; ++ $tiaacref_vals{"TILRX"} = "1635"; ++ $tiaacref_vals{"TRIRX"} = "1624"; ++ $tiaacref_vals{"TRLCX"} = "1619"; ++ $tiaacref_vals{"TRCVX"} = "1625"; ++ $tiaacref_vals{"TCLEX"} = "1650"; ++ $tiaacref_vals{"TCLIX"} = "1651"; ++ $tiaacref_vals{"TCLTX"} = "1652"; ++ $tiaacref_vals{"TCLFX"} = "1653"; ++ $tiaacref_vals{"TCLNX"} = "1654"; ++ $tiaacref_vals{"TCLRX"} = "1655"; ++ $tiaacref_vals{"TCLOX"} = "1656"; ++ $tiaacref_vals{"TTFRX"} = "1657"; ++ $tiaacref_vals{"TLFRX"} = "1658"; ++ $tiaacref_vals{"TLIRX"} = "1659"; ++ $tiaacref_vals{"TITRX"} = "1636"; ++ $tiaacref_vals{"TRGMX"} = "1620"; ++ $tiaacref_vals{"TRVRX"} = "1621"; ++ $tiaacref_vals{"TIEXX"} = "1642"; ++ $tiaacref_vals{"TRRSX"} = "1622"; ++ $tiaacref_vals{"TRSPX"} = "1623"; ++ $tiaacref_vals{"TISRX"} = "1639"; ++ $tiaacref_vals{"TRBIX"} = "1629"; ++ $tiaacref_vals{"TRSEX"} = "1633"; ++ $tiaacref_vals{"TRSCX"} = "1617"; ++ ++ $tiaacref_vals{"TIBDX"} = "1835"; ++ $tiaacref_vals{"TBIIX"} = "1837"; ++ $tiaacref_vals{"TIBFX"} = "1827"; ++ $tiaacref_vals{"TEMLX"} = "1848"; ++ $tiaacref_vals{"TEQLX"} = "1849"; ++ $tiaacref_vals{"TFIIX"} = "1822"; ++ $tiaacref_vals{"TLIIX"} = "1820"; ++ $tiaacref_vals{"TEVIX"} = "1821"; ++ $tiaacref_vals{"TIEIX"} = "1833"; ++ $tiaacref_vals{"TIGRX"} = "1832"; ++ $tiaacref_vals{"TIHYX"} = "1826"; ++ $tiaacref_vals{"TIILX"} = "1605"; ++ $tiaacref_vals{"TIIEX"} = "1830"; ++ $tiaacref_vals{"TCIEX"} = "1615"; ++ $tiaacref_vals{"TILGX"} = "1824"; ++ $tiaacref_vals{"TILIX"} = "1607"; ++ $tiaacref_vals{"TRLIX"} = "1601"; ++ $tiaacref_vals{"TILVX"} = "1608"; ++ $tiaacref_vals{"TCTIX"} = "1810"; ++ $tiaacref_vals{"TCNIX"} = "1811"; ++ $tiaacref_vals{"TCWIX"} = "1812"; ++ $tiaacref_vals{"TCYIX"} = "1813"; ++ $tiaacref_vals{"TCRIX"} = "1814"; ++ $tiaacref_vals{"TCIIX"} = "1815"; ++ $tiaacref_vals{"TCOIX"} = "1816"; ++ $tiaacref_vals{"TTFIX"} = "1817"; ++ $tiaacref_vals{"TFTIX"} = "1818"; ++ $tiaacref_vals{"TLRIX"} = "1819"; ++ $tiaacref_vals{"TIMIX"} = "1825"; ++ $tiaacref_vals{"TRPWX"} = "1602"; ++ $tiaacref_vals{"TIMVX"} = "1603"; ++ $tiaacref_vals{"TCIXX"} = "1836"; ++ $tiaacref_vals{"TIREX"} = "1604"; ++ $tiaacref_vals{"TISPX"} = "1606"; ++ $tiaacref_vals{"TISIX"} = "1828"; ++ $tiaacref_vals{"TISBX"} = "1612"; ++ $tiaacref_vals{"TISEX"} = "1634"; ++ $tiaacref_vals{"TISCX"} = "1834"; ++ $tiaacref_vals{"TITIX"} = "1829"; + } + + #The location doesn't matter anymore. +@@ -247,29 +479,116 @@ sub tiaacref + $tiaacref_locs{"TCSCX"} = 1; + + $tiaacref_locs{"TIMAX"} = 1; ++ ++ $tiaacref_locs{"TIDRX"} = 1; ++ $tiaacref_locs{"TBIRX"} = 1; ++ $tiaacref_locs{"TCBRX"} = 1; ++ $tiaacref_locs{"TEMSX"} = 1; ++ $tiaacref_locs{"TEQSX"} = 1; ++ $tiaacref_locs{"TIQRX"} = 1; ++ $tiaacref_locs{"TRGIX"} = 1; ++ $tiaacref_locs{"TIHRX"} = 1; ++ $tiaacref_locs{"TIKRX"} = 1; ++ $tiaacref_locs{"TRERX"} = 1; ++ $tiaacref_locs{"TRIEX"} = 1; ++ $tiaacref_locs{"TILRX"} = 1; ++ $tiaacref_locs{"TRIRX"} = 1; ++ $tiaacref_locs{"TRLCX"} = 1; ++ $tiaacref_locs{"TRCVX"} = 1; ++ $tiaacref_locs{"TCLEX"} = 1; ++ $tiaacref_locs{"TCLIX"} = 1; ++ $tiaacref_locs{"TCLTX"} = 1; ++ $tiaacref_locs{"TCLFX"} = 1; ++ $tiaacref_locs{"TCLNX"} = 1; ++ $tiaacref_locs{"TCLRX"} = 1; ++ $tiaacref_locs{"TCLOX"} = 1; ++ $tiaacref_locs{"TTFRX"} = 1; ++ $tiaacref_locs{"TLFRX"} = 1; ++ $tiaacref_locs{"TLIRX"} = 1; ++ $tiaacref_locs{"TITRX"} = 1; ++ $tiaacref_locs{"TRGMX"} = 1; ++ $tiaacref_locs{"TRVRX"} = 1; ++ $tiaacref_locs{"TIEXX"} = 1; ++ $tiaacref_locs{"TRRSX"} = 1; ++ $tiaacref_locs{"TRSPX"} = 1; ++ $tiaacref_locs{"TISRX"} = 1; ++ $tiaacref_locs{"TRBIX"} = 1; ++ $tiaacref_locs{"TRSEX"} = 1; ++ $tiaacref_locs{"TRSCX"} = 1; ++ ++ $tiaacref_locs{"TIBDX"} = 3; ++ $tiaacref_locs{"TBIIX"} = 3; ++ $tiaacref_locs{"TIBFX"} = 3; ++ $tiaacref_locs{"TEMLX"} = 3; ++ $tiaacref_locs{"TEQLX"} = 3; ++ $tiaacref_locs{"TFIIX"} = 3; ++ $tiaacref_locs{"TLIIX"} = 3; ++ $tiaacref_locs{"TEVIX"} = 3; ++ $tiaacref_locs{"TIEIX"} = 3; ++ $tiaacref_locs{"TIGRX"} = 3; ++ $tiaacref_locs{"TIHYX"} = 3; ++ $tiaacref_locs{"TIILX"} = 3; ++ $tiaacref_locs{"TIIEX"} = 3; ++ $tiaacref_locs{"TCIEX"} = 3; ++ $tiaacref_locs{"TILGX"} = 3; ++ $tiaacref_locs{"TILIX"} = 3; ++ $tiaacref_locs{"TRLIX"} = 3; ++ $tiaacref_locs{"TILVX"} = 3; ++ $tiaacref_locs{"TCTIX"} = 3; ++ $tiaacref_locs{"TCNIX"} = 3; ++ $tiaacref_locs{"TCWIX"} = 3; ++ $tiaacref_locs{"TCYIX"} = 3; ++ $tiaacref_locs{"TCRIX"} = 3; ++ $tiaacref_locs{"TCIIX"} = 3; ++ $tiaacref_locs{"TCOIX"} = 3; ++ $tiaacref_locs{"TTFIX"} = 3; ++ $tiaacref_locs{"TFTIX"} = 3; ++ $tiaacref_locs{"TLRIX"} = 3; ++ $tiaacref_locs{"TIMIX"} = 3; ++ $tiaacref_locs{"TRPWX"} = 3; ++ $tiaacref_locs{"TIMVX"} = 3; ++ $tiaacref_locs{"TCIXX"} = 3; ++ $tiaacref_locs{"TIREX"} = 3; ++ $tiaacref_locs{"TISPX"} = 3; ++ $tiaacref_locs{"TISIX"} = 3; ++ $tiaacref_locs{"TISBX"} = 3; ++ $tiaacref_locs{"TISEX"} = 3; ++ $tiaacref_locs{"TISCX"} = 3; ++ $tiaacref_locs{"TITIX"} = 3; + } + my(@funds) = @_; + return unless @funds; + my(@line); #holds the return from parse_csv + my(%info); + my(%check); #holds success value if data returned +- my($ua,$urlc,$urlt); #useragent and target urls +- my($cntc,$cntt); #counters for each of the two url containers ++ my($ua,$urlc,$urlci,$urlt); #useragent and target urls ++ my($cntc,$cntci,$cntt); #counters for each of the two url containers + my($reply,$qdata); #the reply from TIAA-CREF's cgi and a buffer for the data ++ my $cbResult = 'cbResults='; ++ my $cbResulti = 'cbResults='; ++ ++ $urlc = $CREF_URL; ++ $urlc .= "page=input&numdays=2&sqlorder=asc&dldformat=1&submit.x=29&submit.y=7"; ++ $urlci = $CREF_URL_INST; ++ $urlci .= "page=input&numdays=2&sqlorder=asc&dldformat=1&submit.x=29&submit.y=7"; + +-# $url = $TIAACREF_URL; +- $urlc = $CREF_URL; + $urlt = $TIAA_URL; + #Initialize counters for the two types of URL. If either counter is zero, then + # that URL will not be retrieved. This is less technically clever than testing + #the URL string itself with m/yes/, but its faster. + $cntc = 0; ++ $cntci = 0; + $cntt = 0; + foreach my $fund (@funds) { + if ($tiaacref_ids{$fund}) { + if ($tiaacref_locs{$fund} == 1) { + $cntc++; +- $urlc .= "f" . $cntc . "=" . $tiaacref_vals{$fund} . "&"; ++ $urlc .= "&fundid" . $tiaacref_vals{$fund} . "=" . $tiaacref_vals{$fund}; ++ $cbResult .= ($cntc > 1) ? ( "%2C" . $tiaacref_vals{$fund}) : ($tiaacref_vals{$fund}) ++ } elsif ($tiaacref_locs{$fund} == 3) { ++ $cntci++; ++ $urlci .= "&fundid" . $tiaacref_vals{$fund} . "=" . $tiaacref_vals{$fund}; ++ $cbResulti .= ($cntci > 1) ? ( "%2C" . $tiaacref_vals{$fund}) : ($tiaacref_vals{$fund}) + } else { + $urlt .= $fund . "=yes&"; + $cntt++; +@@ -280,8 +599,8 @@ sub tiaacref + $info{$fund,"errormsg"} = "Bad symbol"; + } + } +- $urlc .= "days=1"; +- $urlc .= "&dldformat=1"; ++ $urlc .= "&$cbResult"; ++ $urlci .= "&$cbResulti"; + $urlt .= "selected=1"; + $qdata =""; + +@@ -292,15 +611,27 @@ sub tiaacref + $qdata .= $reply->content; + } + } ++ if ($cntci) { ++ $reply = $ua->request(GET $urlci); ++ if ($reply ->is_success) { ++ $qdata .= $reply->content; ++ } ++ } + if ($cntt) { + $reply = $ua->request(GET $urlt); + if ($reply ->is_success) { + $qdata .= $reply->content; + } + } ++ + if (length($qdata)) { +- foreach (split('\012',$qdata) ){ ++ foreach (split(/
/,$qdata) ){ ++ next unless m/.+,.+/; ++ s/[\r\n]+//g; ++ s/^ +//g; ++ s/ +$//g; + @line = $quoter->parse_csv($_); ++ + if (exists $check{$line[0]}) { #did we ask for this data? + $info{$line[0],"symbol"} = $line[0]; #in case the caller needs this in the hash + $info{$line[0],"exchange"} = "TIAA-CREF"; +@@ -398,6 +729,82 @@ The following symbols can be used: + TIAA-CREF Social Choice Equity: TCSCX + TIAA-CREF Managed Allocation: TIMAX + ++ TIAA-CREF Retirement Fund - Bond: TIDRX ++ TIAA-CREF Retirement Fund - Bond Index: TBIRX ++ TIAA-CREF Retirement Fund - Bond Plus: TCBRX ++ TIAA-CREF Retirement Fund - Emerging Markets Equity: TEMSX ++ TIAA-CREF Retirement Fund - Emerging Markets Equity Index: TEQSX ++ TIAA-CREF Retirement Fund - Equity Index: TIQRX ++ TIAA-CREF Retirement Fund - Growth & Income: TRGIX ++ TIAA-CREF Retirement Fund - High-Yield: TIHRX ++ TIAA-CREF Retirement Fund - Inflation-Linked Bond: TIKRX ++ TIAA-CREF Retirement Fund - International Equity: TRERX ++ TIAA-CREF Retirement Fund - International Equity Index: TRIEX ++ TIAA-CREF Retirement Fund - Large-Cap Growth: TILRX ++ TIAA-CREF Retirement Fund - Large-Cap Growth Index: TRIRX ++ TIAA-CREF Retirement Fund - Large-Cap Value: TRLCX ++ TIAA-CREF Retirement Fund - Large-Cap Value Index: TRCVX ++ TIAA-CREF Retirement Fund - Lifecycle 2010: TCLEX ++ TIAA-CREF Retirement Fund - Lifecycle 2015: TCLIX ++ TIAA-CREF Retirement Fund - Lifecycle 2020: TCLTX ++ TIAA-CREF Retirement Fund - Lifecycle 2025: TCLFX ++ TIAA-CREF Retirement Fund - Lifecycle 2030: TCLNX ++ TIAA-CREF Retirement Fund - Lifecycle 2035: TCLRX ++ TIAA-CREF Retirement Fund - Lifecycle 2040: TCLOX ++ TIAA-CREF Retirement Fund - Lifecycle 2045: TTFRX ++ TIAA-CREF Retirement Fund - Lifecycle 2050: LFRX ++ TIAA-CREF Retirement Fund - Lifecycle Retirement Income: TLIRX ++ TIAA-CREF Retirement Fund - Managed Allocation: TITRX ++ TIAA-CREF Retirement Fund - Mid-Cap Growth: TRGMX ++ TIAA-CREF Retirement Fund - Mid-Cap Value: TRVRX ++ TIAA-CREF Retirement Fund - Money Market: TIEXX ++ TIAA-CREF Retirement Fund - Real Estate Securities: TRRSX ++ TIAA-CREF Retirement Fund - S&P 500 Index: TRSPX ++ TIAA-CREF Retirement Fund - Short-Term Bond: TISRX ++ TIAA-CREF Retirement Fund - Cap Blend Index: TRBIX ++ TIAA-CREF Retirement Fund - Small-Cap Equity: TRSEX ++ TIAA-CREF Retirement Fund - Social Choice Equity: TRSCX ++ ++ TIAA-CREF Institutional Fund - Bond: TIBDX ++ TIAA-CREF Institutional Fund - Bond Index: TBIIX ++ TIAA-CREF Institutional Fund - Bond Plus: TIBFX ++ TIAA-CREF Institutional Fund - Emerging Markets Equity: TEMLX ++ TIAA-CREF Institutional Fund - Emerging Markets Equity Index: TEQLX ++ TIAA-CREF Institutional Fund - Enhanced International Equity Index: TFIIX ++ TIAA-CREF Institutional Fund - Enhanced Large-Cap Growth Index: TLIIX ++ TIAA-CREF Institutional Fund - Enhanced Large-Cap Value Index: TEVIX ++ TIAA-CREF Institutional Fund - Equity Index: TIEIX ++ TIAA-CREF Institutional Fund - Growth & Income: TIGRX ++ TIAA-CREF Institutional Fund - High-Yield: TIHYX ++ TIAA-CREF Institutional Fund - Inflation-Linked Bond: TIILX ++ TIAA-CREF Institutional Fund - International Equity: TIIEX ++ TIAA-CREF Institutional Fund - International Equity Index: TCIEX ++ TIAA-CREF Institutional Fund - Large-Cap Growth: TILGX ++ TIAA-CREF Institutional Fund - Large-Cap Growth Index: TILIX ++ TIAA-CREF Institutional Fund - Large-Cap Value: TRLIX ++ TIAA-CREF Institutional Fund - Large-Cap Value Index: TILVX ++ TIAA-CREF Institutional Fund - Lifecycle 2010: TCTIX ++ TIAA-CREF Institutional Fund - Lifecycle 2015: TCNIX ++ TIAA-CREF Institutional Fund - Lifecycle 2020: TCWIX ++ TIAA-CREF Institutional Fund - Lifecycle 2025: TCYIX ++ TIAA-CREF Institutional Fund - Lifecycle 2030: TCRIX ++ TIAA-CREF Institutional Fund - Lifecycle 2035: TCIIX ++ TIAA-CREF Institutional Fund - Lifecycle 2040: TCOIX ++ TIAA-CREF Institutional Fund - Lifecycle 2045: TTFIX ++ TIAA-CREF Institutional Fund - Lifecycle 2050: TFTIX ++ TIAA-CREF Institutional Fund - Lifecycle Retirement Income: TLRIX ++ TIAA-CREF Institutional Fund - Managed Allocation: TIMIX ++ TIAA-CREF Institutional Fund - Mid-Cap Growth: TRPWX ++ TIAA-CREF Institutional Fund - Mid-Cap Value: TIMVX ++ TIAA-CREF Institutional Fund - Money Market: TCIXX ++ TIAA-CREF Institutional Fund - Real Estate Securities: TIREX ++ TIAA-CREF Institutional Fund - S&P 500 Index: TISPX ++ TIAA-CREF Institutional Fund - Short-Term Bond: TISIX ++ TIAA-CREF Institutional Fund - Small-Cap Blend Index: TISBX ++ TIAA-CREF Institutional Fund - Small-Cap Equity: TISEX ++ TIAA-CREF Institutional Fund - Social Choice Equity: TISCX ++ TIAA-CREF Institutional Fund - Tax-Exempt Bond: TITIX ++ + + This module is loaded by default on a Finance::Quote object. It's + also possible to load it explicitly by passing "Tiaacref" in to the