Sha256: 97b8890572e263e4a21dcd5f6182e6017bf8bad24befe700f7bbdf4f72a05985

Contents?: true

Size: 1.87 KB

Versions: 38

Compression:

Stored size: 1.87 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 'watch condors'
  task watch_condors: :environment do
    watcher = ::Ish::IronCondorWatcher.new
    while true
      watcher.watch_once
      print '.'
      sleep 60 # seconds
    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

38 entries across 38 versions & 1 rubygems

Version Path
ish_manager-0.1.8.239 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.238 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.237 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.236 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.235 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.234 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.233 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.232 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.231 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.230 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.229 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.228 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.227 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.226 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.225 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.224 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.223 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.222 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.221 lib/tasks/ish_manager_tasks.rake
ish_manager-0.1.8.220 lib/tasks/ish_manager_tasks.rake