Class: GMoney::Portfolio

Inherits:
Object
  • Object
show all
Defined in:
lib/gmoney/portfolio.rb

Defined Under Namespace

Classes: PortfolioRequestError

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializePortfolio

Returns a new instance of Portfolio.



11
12
13
# File 'lib/gmoney/portfolio.rb', line 11

def initialize()    
  @positions = []
end

Instance Attribute Details

#cost_basisObject (readonly)

Returns the value of attribute cost_basis.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def cost_basis
  @cost_basis
end

#currency_codeObject

Returns the value of attribute currency_code.



5
6
7
# File 'lib/gmoney/portfolio.rb', line 5

def currency_code
  @currency_code
end

#days_gainObject (readonly)

Returns the value of attribute days_gain.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def days_gain
  @days_gain
end

Returns the value of attribute feed_link.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def feed_link
  @feed_link
end

#gainObject (readonly)

Returns the value of attribute gain.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def gain
  @gain
end

#gain_percentageObject (readonly)

Returns the value of attribute gain_percentage.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def gain_percentage
  @gain_percentage
end

#idObject (readonly)

Returns the value of attribute id.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def id
  @id
end

#market_valueObject (readonly)

Returns the value of attribute market_value.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def market_value
  @market_value
end

#positionsObject

Returns the value of attribute positions.



5
6
7
# File 'lib/gmoney/portfolio.rb', line 5

def positions
  @positions
end

#return1wObject (readonly)

Returns the value of attribute return1w.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def return1w
  @return1w
end

#return1yObject (readonly)

Returns the value of attribute return1y.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def return1y
  @return1y
end

#return3mObject (readonly)

Returns the value of attribute return3m.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def return3m
  @return3m
end

#return3yObject (readonly)

Returns the value of attribute return3y.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def return3y
  @return3y
end

#return4wObject (readonly)

Returns the value of attribute return4w.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def return4w
  @return4w
end

#return5yObject (readonly)

Returns the value of attribute return5y.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def return5y
  @return5y
end

#return_overallObject (readonly)

Returns the value of attribute return_overall.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def return_overall
  @return_overall
end

#return_ytdObject (readonly)

Returns the value of attribute return_ytd.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def return_ytd
  @return_ytd
end

#titleObject

Returns the value of attribute title.



5
6
7
# File 'lib/gmoney/portfolio.rb', line 5

def title
  @title
end

#updatedObject (readonly)

Returns the value of attribute updated.



7
8
9
# File 'lib/gmoney/portfolio.rb', line 7

def updated
  @updated
end

Class Method Details

.all(options = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/gmoney/portfolio.rb', line 15

def self.all(options = {})
  url = "#{GF_FEED_URL}/portfolios"
  url += "?returns=true" if options[:with_returns]
  portfolios = []
  
  response = GFService.send_request(GFRequest.new(url, :headers => {"Authorization" => "GoogleLogin auth=#{GFSession.auth_token}"}))

  if response.status_code == HTTPOK
    portfolios = PortfolioFeedParser.parse_portfolio_feed(response.body)
  else
    raise PortfolioRequestError
  end

  portfolios.each do |portfolio|
    portfolio.positions = Position.find_by_url(portfolio.feed_link, {:with_returns => options[:with_returns]})
  end      
  portfolios  
end