Sha256: cc96c9ad37f23d9144686b7705eb269b1cefedbbf79f079bb3ce15e5c23fe341
Contents?: true
Size: 1.67 KB
Versions: 2
Compression:
Stored size: 1.67 KB
Contents
def puts! a, b='' puts "+++ +++ #{b}" puts a.inspect end namespace :ish_manager do desc "every user needs a user_profile" task :generate_user_profiles => :environment do User.all.map do |u| unless u.profile p = ::IshModels::UserProfile.new :email => u.email, :user => u, :role_name => :guy u.profile = p u.save && p.save && print('.') end end puts 'OK' end =begin desc 'watch the stocks, and trigger actions' task :watch_stocks => :environment do while true stocks = Ish::StockWatch.where( :notification_type => :EMAIL ) puts! stocks.map(&:ticker), "Watching these stocks on #{Time.now}" stocks.each do |stock| begin Timeout::timeout( 10 ) do r = HTTParty.get "https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=#{stock.ticker}&interval=1min&apikey=X1C5GGH5MZSXMF3O" end rescue Exception => e puts! e, 'e in :watch_stocks' end r = JSON.parse( r.body )['Time Series (1min)'] r = r[r.keys.first]['4. close'].to_f if stock.direction == :ABOVE && r >= stock.price || stock.direction == :BELOW && r <= stock.price IshManager::ApplicationMailer.stock_alert( stock ).deliver ## actions # stock.stock_actions.where( :is_active => true ).each do |action| # # @TODO: actions # end end end sleep 60 end end =end desc 'yahoo-watch the stocks' task :stockwatcher => :environment do watcher = YahooStockwatcher.new while true watcher.watch_once print '.' sleep 60 # seconds end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ish_manager-0.1.8.201 | lib/tasks/ish_manager_tasks.rake |
ish_manager-0.1.8.200 | lib/tasks/ish_manager_tasks.rake |