Skip to content

Instantly share code, notes, and snippets.

@Znow

Znow/error Secret

Created July 11, 2012 18:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Znow/ab8650f6861ead915151 to your computer and use it in GitHub Desktop.
Save Znow/ab8650f6861ead915151 to your computer and use it in GitHub Desktop.
can't convert Symbol into Integer
/var/www/apps/advicecapital/releases/20120711175558/lib/tasks/stock_info_update.rake:28:in `[]'
/var/www/apps/advicecapital/releases/20120711175558/lib/tasks/stock_info_update.rake:28:in `block (2 levels) in <top (required)>'
/var/www/apps/advicecapital/releases/20120711175558/lib/tasks/stock_info_update.rake:27:in `each'
/var/www/apps/advicecapital/releases/20120711175558/lib/tasks/stock_info_update.rake:27:in `block in <top (required)>'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/share/ruby-rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/bin/rake:19:in `load'
/usr/share/ruby-rvm/gems/ruby-1.9.3-p125/bin/rake:19:in `<main>'
Tasks: TOP => stock_info_update
irb(main):001:0> stock_data = Ystock.find([
irb(main):002:2* 'MAERSK-A.CO', # A.P. Møller Mærsk A
irb(main):003:2* 'MAERSK-B.CO', # A.P. Møller Mærsk B
irb(main):004:2* 'CARL-B.CO', # Carlsberg
irb(main):005:2* 'CHR.CO', # Chr. Hansen Holding
irb(main):006:2* 'COLO-B.CO', # Coloplast
irb(main):007:2* 'DANSKE.CO', # Danske Bank
irb(main):008:2* 'DSV.CO', # DSV
irb(main):009:2* 'FLS.CO', # FLSmidth & Co
irb(main):010:2* 'GN.CO', # GN Store Nord
irb(main):011:2* 'LUN.CO', # H. Lundbeck
irb(main):012:2* 'NKT.CO', # NKT Holding
irb(main):013:2* 'NDA-DKK.CO', # Nordea Bank
irb(main):014:2* 'NOVO-B.CO', # Novo Nordisk
irb(main):015:2* 'NZYM-B.CO', # Novozymes
irb(main):016:2* 'SYDB.Co', # Sydbank
irb(main):017:2* 'TDC.CO', # TDC
irb(main):018:2* 'TOP.CO', # Topdanmark
irb(main):019:2* 'TRYG.CO', # Tryg
irb(main):020:2* 'VWS.CO', # Vestas
irb(main):021:2* 'WDH.CO' # William Demant Holding
irb(main):022:2> ])
=> {:"MAERSK-A.CO"=>{:symbol=>"MAERSK-A.CO", :price=>"37600.00", :change=>"-100.00", :volume=>"-"}, :"MAERSK-B.CO"=>{:symbol=>"MAERSK-B.CO", :price=>"39300.00", :change=>"-360.00", :volume=>"-"}, :"CARL-B.CO"=>{:symbol=>"CARL-B.CO", :price=>"466.90", :change=>"-10.60", :volume=>"-"}, :"CHR.CO"=>{:symbol=>"CHR.CO", :price=>"169.50", :change=>"-0.90", :volume=>"-"}, :"COLO-B.CO"=>{:symbol=>"COLO-B.CO", :price=>"1091.00", :change=>"+6.00", :volume=>"-"}, :"DANSKE.CO"=>{:symbol=>"DANSKE.CO", :price=>"85.80", :change=>"+0.45", :volume=>"-"}, :"DSV.CO"=>{:symbol=>"DSV.CO", :price=>"117.70", :change=>"-0.90", :volume=>"-"}, :"FLS.CO"=>{:symbol=>"FLS.CO", :price=>"333.50", :change=>"-4.10", :volume=>"-"}, :"GN.CO"=>{:symbol=>"GN.CO", :price=>"73.20", :change=>"-0.70", :volume=>"-"}, :"LUN.CO"=>{:symbol=>"LUN.CO", :price=>"120.00", :change=>"-0.30", :volume=>"-"}, :"NKT.CO"=>{:symbol=>"NKT.CO", :price=>"183.30", :change=>"-0.90", :volume=>"-"}, :"NDA-DKK.CO"=>{:symbol=>"NDA-DKK.CO", :price=>"52.30", :change=>"+0.40", :volume=>"-"}, :"NOVO-B.CO"=>{:symbol=>"NOVO-B.CO", :price=>"884.00", :change=>"-9.50", :volume=>"-"}, :"NZYM-B.CO"=>{:symbol=>"NZYM-B.CO", :price=>"152.80", :change=>"-2.10", :volume=>"-"}, :"SYDB.CO"=>{:symbol=>"SYDB.CO", :price=>"95.40", :change=>"+0.40", :volume=>"-"}, :"TDC.CO"=>{:symbol=>"TDC.CO", :price=>"40.94", :change=>"-0.08", :volume=>"-"}, :"TOP.CO"=>{:symbol=>"TOP.CO", :price=>"1012.00", :change=>"-4.00", :volume=>"-"}, :"TRYG.CO"=>{:symbol=>"TRYG.CO", :price=>"333.00", :change=>"+1.20", :volume=>"-"}, :"VWS.CO"=>{:symbol=>"VWS.CO", :price=>"25.28", :change=>"-1.09", :volume=>"-"}, :"WDH.CO"=>{:symbol=>"WDH.CO", :price=>"544.00", :change=>"+2.00", :volume=>"-"}}
irb(main):023:0> stock_data.each do |key, hash|
irb(main):024:1* StockData.where(:symbol => hash[:symbol]).last.update_attributes(:price => hash[:price], :change => hash[:change],:volume => hash[:volume])
irb(main):025:1> end
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'MAERSK-A.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.1ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'MAERSK-B.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'CARL-B.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'CHR.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'COLO-B.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'DANSKE.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'DSV.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'FLS.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'GN.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'LUN.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'NKT.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'NDA-DKK.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'NOVO-B.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'NZYM-B.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
(0.0ms) begin transaction
WARNING: Can't mass-assign protected attributes: volume
(0.0ms) commit transaction
StockData Load (0.1ms) SELECT "stock_data".* FROM "stock_data" WHERE "stock_data"."symbol" = 'SYDB.CO' ORDER BY "stock_data"."id" DESC LIMIT 1
NoMethodError: undefined method `update_attributes' for nil:NilClass
from (irb):24:in `block in irb_binding'
from (irb):23:in `each'
from (irb):23
from /Users/znowm4n/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands/console.rb:47:in `start'
from /Users/znowm4n/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands/console.rb:8:in `start'
from /Users/znowm4n/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
irb(main):026:0> exit
# encoding: utf-8
namespace :stock_table do
desc "Prep stock_data table"
task :setup => :environment do
StockData.delete_all
stock = [
{:symbol=>"MAERSK-A.CO", :price=>"40000.00", :change=>"-340.00", :volume=>"3000"},
{:symbol=>"MAERSK-B.CO", :price=>"35900.00", :change=>"-380.00",:volume=>"6653"},
{:symbol=>"CARL-B.CO", :price=>"397.30", :change=>"+8.30", :volume=>"568789"},
{:symbol=>"CHR.CO", :price=>"20.95", :change=>"0.00", :volume=>"0"},
{:symbol=>"COLO-B.CO", :price=>"806.00", :change=>"+28.50", :volume=>"93403"},
{:symbol=>"DANSKE.CO", :price=>"77.10", :change=>"+0.30", :volume=>"3591025"},
{:symbol=>"DSV.CO", :price=>"107.70", :change=>"-1.00", :volume=>"895219"},
{:symbol=>"FLS.CO", :price=>"322.80", :change=>"+5.10", :volume=>"509116"},
{:symbol=>"GN.CO", :price=>"36.87", :change=>"+0.50", :volume=>"589297"},
{:symbol=>"LUN.CO", :price=>"115.60", :change=>"+0.80", :volume=>"301292"},
{:symbol=>"NKT.CO", :price=>"193.90", :change=>"-3.50", :volume=>"208805"},
{:symbol=>"NDA-DKK.CO", :price=>"100.00", :change=>"-1.00", :volume=>"200100"},
{:symbol=>"NOVO-B.CO", :price=>"560.50", :change=>"+7.00", :volume=>"901981"},
{:symbol=>"NZYM-B.CO",:price=>"744.00", :change=>"-15.50", :volume=>"100456"},
{:symbol=>"PNDORA.CO", :price=>"104.50", :change=>"-0.50", :volume=>"220223"},
{:symbol=>"TDC.CO", :price=>"45.99", :change=>"+0.84", :volume=>"1744640"},
{:symbol=>"TOP.CO", :price=>"839.50", :change=>"+7.50", :volume=>"53123"},
{:symbol=>"TRYG.CO", :price=>"290.80", :change=>"+0.70", :volume=>"94504"},
{:symbol=>"VWS.CO", :price=>"108.60", :change=>"-0.40", :volume=>"1001839"},
{:symbol=>"WDH.CO", :price=>"424.60", :change=>"-3.80", :volume=>"262782"}
]
stock.each do |hash|
StockData.create(:symbol => hash[:symbol],:price => hash[:price], :change => hash[:change],:volume => hash[:volume])
end
# set price, change, and volume fields to 'NaN'
StockData.all.each do |r|
r.update_attributes(:price => "NaN", :change => "NaN", :volume => "NaN")
end
end
end
# encoding: utf-8
desc "rake task to update stock info from Yahoo"
task :stock_info_update => :environment do
stock_data = Ystock.find([
'MAERSK-A.CO', # A.P. Møller Mærsk A
'MAERSK-B.CO', # A.P. Møller Mærsk B
'CARL-B.CO', # Carlsberg
'CHR.CO', # Chr. Hansen Holding
'COLO-B.CO', # Coloplast
'DANSKE.CO', # Danske Bank
'DSV.CO', # DSV
'FLS.CO', # FLSmidth & Co
'GN.CO', # GN Store Nord
'LUN.CO', # H. Lundbeck
'NKT.CO', # NKT Holding
'NDA-DKK.CO', # Nordea Bank
'NOVO-B.CO', # Novo Nordisk
'NZYM-B.CO', # Novozymes
'SYDB.Co', # Sydbank
'TDC.CO', # TDC
'TOP.CO', # Topdanmark
'TRYG.CO', # Tryg
'VWS.CO', # Vestas
'WDH.CO' # William Demant Holding
])
stock_data.each do |key, hash|
StockData.where(:symbol => hash[:symbol]).last.update_attributes(:price => hash[:price], :change => hash[:change],:volume => hash[:volume])
end
puts "Rake[:stock_info_update] => StockData updated at #{Time.now.strftime("%D @ %H%M %z")}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment