--Apple-Mail-1-906393000
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	delsp=yes;
	format=flowed

Begin forwarded message:

> From: Eduardo Vaz de Lima <eduardo_lima22 / yahoo.com>
> Date: November 23, 2007 5:33:57 AM CST
> To: submission / rubyquiz.com
> Subject: Please Forward: Ruby Quiz Submission - Stock Portfolios
>
> Hi,
>
> Sorry for sending this solution so late. I am new in Ruby  
> programming!!
>
> I would like to share my solution with the community.
>
> I wrote a script that fetches stock prices from Yahoo Finance and  
> compares with purchase price and amount stored in a separate text  
> file.
>
> In the file stock.txt insert stock name, purchase date, stock price  
> and amount (separated by ";").
>
> Best regards,
>
> Eduardo Lima
>
>
>
> Be a better pen pal. Text or chat with friends inside Yahoo! Mail.  
> See how.
--Apple-Mail-1-906393000
Content-Transfer-Encoding: quoted-printable
Content-Type: application/octet-stream;
	x-unix-mode=0666;
	name=stock.rb
Content-Disposition: attachment;
	filename=stock.rb

require=20'open-uri'=0D=0Arequire=20'csv'=0D=0Arequire=20'date'=0D=0A=0D=0A=
#url=20=3D=20=
URI.parse('http://br.finance.yahoo.com/d/quotes.csv?s=3DFVPSC3.SA&f=3Dsl1d=
1t1c1ohgv&e=3D.csv')=0D=0A#url2=20=3D=20=
URI.parse('http://br.finance.yahoo.com/d/quotes.csv?s=3DIGBR3.SA&f=3Dsl1d1=
t1c1ohgv&e=3D.csv')=0D=0A=0D=0A#=20Reads=20input=20stock=20names=20and=20=
values=20from=20stock.txt=20file=20and=20store=20in=20local=20variables=0D=
=0Adef=20read_input_stock(file_name)=0D=0A=20=20File.open(file_name)=20=
do=20|handle|=0D=0A=20=20=20=20handle.each_line=20do=20|stock|=0D=0A=20=20=
=20=20=20=20input_stock_name=20=20=20=20=20=20=20=3D=20=
stock.split(';')[0]=0D=0A=20=20=20=20=20=20@input_purchase_date=20=20=20=
=3D=20stock.split(';')[1].strip=0D=0A=20=20=20=20=20=20=
@input_purchase_value=20=20=3D=20stock.split(';')[2]=0D=0A=20=20=20=20=20=
=20@input_purchase_amount=20=3D=20stock.split(';')[3]=0D=0A=20=20=20=20=20=
=20=0D=0A=20=20=20=20=20=20url=20=3D=20=
URI.parse("http://br.finance.yahoo.com/d/quotes.csv?s=3D#{input_stock_name=
}&f=3Dsl1d1t1c1ohgv&e=3D.csv")=0D=0A=20=20=20=20=20=20=
get_stock_value(url)=0D=0A=20=20=20=20=20=20=0D=0A=20=20=20=20end=0D=0A=20=
=20end=0D=0Aend=0D=0A=0D=0A#=20reads=20stock=20=EDnformation=20from=20=
web=20site=0D=0Adef=20get_stock_value(url)=0D=0A=20=20open(url)=20{|f|=0D=
=0A=20=20=20=20f.each_line=20{|line|=20=0D=0A=20=20=20=20=20=20=
stock_name=20=20=20=20=20=20=20=20=20=20=3D=20line.split(';')[0]=0D=0A=20=
=20=20=20=20=20@stock_actual_value=20=3D=20line.split(';')[1]=0D=0A=20=20=
=20=20=20=20stock_actual_date=20=20=20=3D=20line.split(';')[2]=0D=0A=20=20=
=20=20=20=20stock_actual_time=20=20=20=3D=20line.split(';')[3]=0D=0A=20=20=
=20=20=20=20=0D=0A=20=20=20=20=20=20#=20Difference=20between=20puchase=20=
and=20actual=20value=0D=0A=20=20=20=20=20=20stock_diff=20=3D=20=
@stock_actual_value.to_f=20=20-=20 / input_purchase_value.to_f=0D=0A=20=20=20=
=20=20=20=0D=0A=20=20=20=20=20=20=0D=0A=20=20=20=20=20=20#=20Percentual=20=
diff=0D=0A=20=20=20=20=20=20per=20=3D=20((@stock_actual_value.to_f=20/=20=
@input_purchase_value.to_f)=20-=201)*=20100=0D=0A=20=20=20=20=20=20=0D=0A=
=20=20=20=20=20=20#=20Sum=20of=20actual=20value=0D=0A=20=20=20=20=20=20=
@total=20+=3D=20 / stock_actual_value.to_f=20*=20=
@input_purchase_amount.to_f=0D=0A=20=20=20=20=20=20=0D=0A=20=20=20=20=20=20=
#=20yyyy,mm,dd=20yahoo=20=3D>=20mm/dd/yyyy=0D=0A=20=20=20=20=20=20=
actual_date_year=20=20=3D=20stock_actual_date.split('/')[2].to_i=20=0D=0A=
=20=20=20=20=20=20actual_date_month=20=3D=20=
stock_actual_date.split('/')[0].to_i=0D=0A=20=20=20=20=20=20=
actual_date_day=20=20=20=3D=20stock_actual_date.split('/')[1].to_i=20=0D=0A=
=20=20=20=20=20=20=0D=0A=20=20=20=20=20=20#=20yyyy,mm,dd=20input=20=
yyyy-mm-dd=20=20=20=20=20=20=20=20=20=20=20=20=20=20=0D=0A=20=20=20=20=20=
=20purchase_date_year=20=20=3D=20 / input_purchase_date.split('-')[0].to_i=0D=
=0A=20=20=20=20=20=20purchase_date_month=20=3D=20=
@input_purchase_date.split('-')[1].to_i=0D=0A=20=20=20=20=20=20=
purchase_date_day=20=20=20=3D=20 / input_purchase_date.split('-')[2].to_i=0D=
=0A=20=20=20=20=20=20=0D=0A=20=20=20=20=20=20#=20Days=20between=20atual=20=
and=20purchase=0D=0A=20=20=20=20=20=20age=20=3D=20=
Date.new(actual_date_year,actual_date_month,actual_date_day)=20-=20=0D=0A=
=20=20=20=20=20=20=
Date.new(purchase_date_year,purchase_date_month,purchase_date_day)=0D=0A=20=
=20=20=20=20=20=0D=0A=20=20=20=20=20=20=0D=0A=20=20=20=20=20=20=
printf("%-10s=20%10s=20%4s=20%6.2f=20\t%s=20%4s=20%6.2f=20\t%2s=20%4.2f=20=
%10s=20%8.2f=20%s",=20=0D=0A=20=20=20=20=20=20stock_name,=20=0D=0A=20=20=20=
=20=20=20@input_purchase_date,=0D=0A=20=20=20=20=20=20"R$",=0D=0A=20=20=20=
=20=20=20 / input_purchase_value.to_f=20*=20 / input_purchase_amount.to_f,=0D=
=0A=20=20=20=20=20=20stock_actual_date,=0D=0A=20=20=20=20=20=20"R$",=20=0D=
=0A=20=20=20=20=20=20 / stock_actual_value.to_f=20*=20=
@input_purchase_amount.to_f,=0D=0A=20=20=20=20=20=20"R$",stock_diff,=0D=0A=
=20=20=20=20=20=20"#{age}=20days",=0D=0A=20=20=20=20=20=20per,=0D=0A=20=20=
=20=20=20=20"%")=0D=0A=20=20=20=20=20=20puts=0D=0A=20=20=20=20}=20=20=20=20=
=20=20=0D=0A=20=20}=0D=0Aend=0D=0A=0D=0A@total=20=3D=200=0D=0A=0D=0Aputs=0D=
=0Aprintf("%-10s=20%10s=20%15s=20\t%5s=20%11s=20%13s=20%5s=20%15s",=20=0D=
=0A"Stock",=0D=0A"Purchase=20",=20=20#=20Purchase=20Date=0D=0A"Purchase=20=
",=20=20#=20Purchase=20Value=0D=0A"Actual=20",=20=20=20=20#=20Actual=20=
Value=0D=0A"Actual=20",=20=20=20=20#=20Actual=20Date=0D=0A"Difference",=20=
#=20Difference=0D=0A"Age",=20=20=20=20=20=20=20=20#=20Age=0D=0A=
"Percentual")=20#=20Percentual=0D=0A=0D=0Aprintf("\n%16s=20%16s=20%10s=20=
%12s",=20=0D=0A"Date",=0D=0A"Value",=0D=0A"Date",=0D=0A"Value",=0D=0A=
"Difference",=0D=0A"Age",=0D=0A"Percentual")=0D=0A=0D=0A=0D=0Aputs=20=
"\n---------+------------+------------+-------------+------------+--------=
--+----------+----------+"=0D=0A=0D=0Aread_input_stock("stock.txt")=0D=0A=
=0D=0Aprintf("%54s=20%4.2f",=20"Total=20R$",=20@total)=0D=0A=0D=0A=0D=0A=

--Apple-Mail-1-906393000
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed

>
> VALE5.SA; 2007-03-17; 17,00; 100
> IGBR3.SA; 2007-10-22; 21,00; 100
> VALE5.SA; 2007-05-20; 19,00; 10


--Apple-Mail-1-906393000--