gmoney 0.4.2 → 0.4.3

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.
@@ -82,6 +82,9 @@ Transactions
82
82
  > transaction.price = 3.50
83
83
  > transaction.save #returns transaction object
84
84
 
85
+ Note: While updating transactions it is not possible to change the portfolio or ticker property as these values are used
86
+ by Google to identify specific transactions.
87
+
85
88
  Deleting
86
89
  > GMoney::Transaction.delete '2/NASDAQ:GOOG/1'
87
90
 
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ desc "Gemify GMoney"
20
20
  namespace :gemify do
21
21
  Echoe.new('gmoney', GMoney.version) do |p|
22
22
  p.description = "A gem for interacting with the Google Finance API"
23
- p.url = "http://github.com/jspradlin/gmoney"
23
+ p.url = "http://www.justinspradlin.com/programming/introducing-gmoney-a-rubygem-for-interacting-with-the-google-finance-api/"
24
24
  p.author = "Justin Spradlin"
25
25
  p.email = "jspradlin@gmail.com"
26
26
  p.ignore_pattern = ["coverage/*", "*~"]
@@ -2,16 +2,16 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{gmoney}
5
- s.version = "0.4.2"
5
+ s.version = "0.4.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Justin Spradlin"]
9
- s.date = %q{2010-01-30}
9
+ s.date = %q{2010-03-02}
10
10
  s.description = %q{A gem for interacting with the Google Finance API}
11
11
  s.email = %q{jspradlin@gmail.com}
12
12
  s.extra_rdoc_files = ["README.rdoc", "lib/extensions/fixnum.rb", "lib/extensions/nil_class.rb", "lib/extensions/string.rb", "lib/gmoney.rb", "lib/gmoney/authentication_request.rb", "lib/gmoney/feed_parser.rb", "lib/gmoney/gf_request.rb", "lib/gmoney/gf_response.rb", "lib/gmoney/gf_service.rb", "lib/gmoney/gf_session.rb", "lib/gmoney/portfolio.rb", "lib/gmoney/portfolio_feed_parser.rb", "lib/gmoney/position.rb", "lib/gmoney/position_feed_parser.rb", "lib/gmoney/transaction.rb", "lib/gmoney/transaction_feed_parser.rb"]
13
13
  s.files = ["Manifest", "README.rdoc", "Rakefile", "gmoney.gemspec", "lib/extensions/fixnum.rb", "lib/extensions/nil_class.rb", "lib/extensions/string.rb", "lib/gmoney.rb", "lib/gmoney/authentication_request.rb", "lib/gmoney/feed_parser.rb", "lib/gmoney/gf_request.rb", "lib/gmoney/gf_response.rb", "lib/gmoney/gf_service.rb", "lib/gmoney/gf_session.rb", "lib/gmoney/portfolio.rb", "lib/gmoney/portfolio_feed_parser.rb", "lib/gmoney/position.rb", "lib/gmoney/position_feed_parser.rb", "lib/gmoney/transaction.rb", "lib/gmoney/transaction_feed_parser.rb", "spec/authentication_request_spec.rb", "spec/fixtures/cacert.pem", "spec/fixtures/default_portfolios_feed.xml", "spec/fixtures/empty_portfolio_feed.xml", "spec/fixtures/new_portfolio_feed.xml", "spec/fixtures/new_transaction_feed.xml", "spec/fixtures/portfolio_9_feed.xml", "spec/fixtures/portfolio_feed_with_returns.xml", "spec/fixtures/position_feed_for_9_GOOG.xml", "spec/fixtures/positions_feed_for_portfolio_14.xml", "spec/fixtures/positions_feed_for_portfolio_9.xml", "spec/fixtures/positions_feed_for_portfolio_9r.xml", "spec/fixtures/transaction_feed_for_GOOG_1.xml", "spec/fixtures/transactions_feed_for_GOOG.xml", "spec/fixtures/updated_portfolio_feed.xml", "spec/gmoney_spec.rb", "spec/nil_class_spec.rb", "spec/portfolio_feed_parser_spec.rb", "spec/portfolio_spec.rb", "spec/position_feed_parser_spec.rb", "spec/position_spec.rb", "spec/request_spec.rb", "spec/response_spec.rb", "spec/service_spec.rb", "spec/session_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/string_spec.rb", "spec/transaction_feed_parser_spec.rb", "spec/transaction_spec.rb"]
14
- s.homepage = %q{http://github.com/jspradlin/gmoney}
14
+ s.homepage = %q{http://www.justinspradlin.com/programming/introducing-gmoney-a-rubygem-for-interacting-with-the-google-finance-api/}
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Gmoney", "--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = %q{gmoney}
@@ -28,10 +28,11 @@ require 'gmoney/transaction'
28
28
  require 'gmoney/transaction_feed_parser'
29
29
 
30
30
  module GMoney
31
- VERSION = '0.4.2'
32
- GF_URL = "https://finance.google.com/finance"
31
+ VERSION = '0.4.3'
32
+ GF_URL = "http://finance.google.com/finance"
33
33
  GF_FEED_URL = "#{GF_URL}/feeds/default"
34
34
  GF_PORTFOLIO_FEED_URL = "#{GF_FEED_URL}/portfolios"
35
+ GF_GOOGLE_DATA_VERSION = 2
35
36
 
36
37
  HTTPOK = 200
37
38
  HTTPCreated = 201
@@ -9,7 +9,8 @@ module GMoney
9
9
  end
10
10
 
11
11
  @method ||= :get
12
- @headers ||= {}
12
+ @headers ||= {}
13
+ @headers['GData-Version'] = GF_GOOGLE_DATA_VERSION
13
14
  end
14
15
  end
15
16
  end
@@ -71,7 +71,6 @@ module GMoney
71
71
 
72
72
  @currency_code ||= 'USD'
73
73
 
74
- #Rcov hates multi-line strings and I hate red on my test coverage report.
75
74
  atom_string = "<?xml version='1.0'?><entry xmlns='http://www.w3.org/2005/Atom' xmlns:gf='http://schemas.google.com/finance/2007' xmlns:gd='http://schemas.google.com/g/2005'><title type='text'>#{title}</title> <gf:portfolioData currencyCode='#{currency_code}'/></entry>"
76
75
 
77
76
  url = @id ? @id : GF_PORTFOLIO_FEED_URL
@@ -11,7 +11,7 @@ describe GMoney::Portfolio do
11
11
  end
12
12
 
13
13
  before(:each) do
14
- @url = 'https://finance.google.com/finance/feeds/default/portfolios'
14
+ @url = "#{GMoney::GF_URL}/feeds/default/portfolios"
15
15
 
16
16
  @gf_request = GMoney::GFRequest.new(@url)
17
17
  @gf_request.method = :get
@@ -40,7 +40,7 @@ describe GMoney::Portfolio do
40
40
  end
41
41
 
42
42
  it "should return a portfolio with returns data is :returns == true" do
43
- @url = 'https://finance.google.com/finance/feeds/default/portfolios?returns=true'
43
+ @url = "#{GMoney::GF_URL}/feeds/default/portfolios?returns=true"
44
44
  @gf_response.body = @feed_with_returns
45
45
 
46
46
  portfolios = portfolio_helper(@url, :all, {:returns => true})
@@ -158,7 +158,7 @@ describe GMoney::Portfolio do
158
158
 
159
159
  portfolio_return = portfolio.save
160
160
 
161
- portfolio_return.id.should be_eql('http://finance.google.com/finance/feeds/user@example.com/portfolios/38')
161
+ portfolio_return.id.should be_eql("#{GMoney::GF_URL}/feeds/user@example.com/portfolios/38")
162
162
  portfolio_return.title.should be_eql("New Portfolio")
163
163
  end
164
164
 
@@ -18,7 +18,7 @@ describe GMoney::GFRequest do
18
18
 
19
19
  it "should be able to take header parameters as a Hash" do
20
20
  gfrequest_with_header_hash = GMoney::GFRequest.new('http://someurl.com', {:headers => {:header1 => 'some header'}})
21
- gfrequest_with_header_hash.headers.should == {:header1 => 'some header'}
21
+ gfrequest_with_header_hash.headers.should == {:header1 => 'some header', "GData-Version" => 2}
22
22
  end
23
23
 
24
24
  it "should not accept random options" do
@@ -74,7 +74,7 @@ describe GMoney::GFService do
74
74
  set_url_expectations
75
75
  http = set_http_expectations
76
76
  request = set_request_expecations(class_type)
77
- set_header_expectations(request) if with_headers
77
+ set_header_expectations(request)
78
78
  res = set_response_expecations
79
79
 
80
80
  http.should_receive(:request).with(request).and_return(res)
@@ -123,5 +123,6 @@ describe GMoney::GFService do
123
123
  def set_header_expectations(req)
124
124
  req.should_receive(:[]=).with(:h1, "header 1").any_number_of_times
125
125
  req.should_receive(:[]=).with(:h2, "header 2").any_number_of_times
126
+ req.should_receive(:[]=).with("GData-Version", 2).any_number_of_times
126
127
  end
127
128
  end
@@ -8,7 +8,7 @@ describe GMoney::Transaction do
8
8
  end
9
9
 
10
10
  before(:each) do
11
- @url = 'https://finance.google.com/finance/feeds/default/portfolios/9/positions/NASDAQ:GOOG/transactions'
11
+ @url = "#{GMoney::GF_URL}/feeds/default/portfolios/9/positions/NASDAQ:GOOG/transactions"
12
12
  @transaction_id = '9/NASDAQ:GOOG'
13
13
 
14
14
  @gf_request = GMoney::GFRequest.new(@url)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmoney
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Spradlin
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-30 00:00:00 -05:00
12
+ date: 2010-03-02 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -89,7 +89,7 @@ files:
89
89
  - spec/transaction_feed_parser_spec.rb
90
90
  - spec/transaction_spec.rb
91
91
  has_rdoc: true
92
- homepage: http://github.com/jspradlin/gmoney
92
+ homepage: http://www.justinspradlin.com/programming/introducing-gmoney-a-rubygem-for-interacting-with-the-google-finance-api/
93
93
  licenses: []
94
94
 
95
95
  post_install_message: