ish_manager 0.1.8.296 → 0.1.8.298
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- metadata +2 -12
- data/app/assets/images/bg/weather-development.png~ +0 -0
- data/app/views/ish_manager/trash/option_watches-trash/_form.haml +0 -37
- data/app/views/ish_manager/trash/stock_actions/_form.haml +0 -27
- data/app/views/ish_manager/trash/stock_actions/index.haml +0 -13
- data/app/views/ish_manager/trash/stock_options/_form.haml +0 -22
- data/app/views/ish_manager/trash/stock_options/index.haml +0 -11
- data/app/views/ish_manager/trash/stock_watches/_form.haml +0 -28
- data/app/views/ish_manager/trash/stock_watches/index.haml +0 -24
- data/app/views/layouts/ish_manager/application.haml-trash +0 -40
- data/lib/tasks/warbler_tasks.rake-trash +0 -69
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 633c637aedac1a994211764707c2ebad1b69cd97410a1c90451f77c8a1cc3485
|
4
|
+
data.tar.gz: b4ca5ba260cb3476de1f41c5b2cce4d0bf70c4bb92cf632b297a17cd1af61e21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5ebf371b3be78b358e86b7b9745e8bb8d939eecf0bc34b3ef8248fbe5e8cf33844fa66947ac65e68ecc39000ff67eb9bc6b1e1b1d37a2ad31b3c21805b56452
|
7
|
+
data.tar.gz: c9cf963d8c86ae4e06dfd9067dd7d7a19decfe0aac69ea56f70ed7eb7ff59deea83f9326bc6f8d55edd6bb06d3bcedc77d9ccf95dfe55d4cdaa15025a36c6aa0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ish_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.8.
|
4
|
+
version: 0.1.8.298
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- piousbox
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -205,7 +205,6 @@ files:
|
|
205
205
|
- app/assets/images/bg/gplaypattern.png
|
206
206
|
- app/assets/images/bg/triangular.png
|
207
207
|
- app/assets/images/bg/weather-development.png
|
208
|
-
- app/assets/images/bg/weather-development.png~
|
209
208
|
- app/assets/images/bg/weather.png
|
210
209
|
- app/assets/images/favicon.gif
|
211
210
|
- app/assets/images/icons/10x10_red-cross.png
|
@@ -409,13 +408,6 @@ files:
|
|
409
408
|
- app/views/ish_manager/tags/index.haml
|
410
409
|
- app/views/ish_manager/tags/new.haml
|
411
410
|
- app/views/ish_manager/tags/show.haml
|
412
|
-
- app/views/ish_manager/trash/option_watches-trash/_form.haml
|
413
|
-
- app/views/ish_manager/trash/stock_actions/_form.haml
|
414
|
-
- app/views/ish_manager/trash/stock_actions/index.haml
|
415
|
-
- app/views/ish_manager/trash/stock_options/_form.haml
|
416
|
-
- app/views/ish_manager/trash/stock_options/index.haml
|
417
|
-
- app/views/ish_manager/trash/stock_watches/_form.haml
|
418
|
-
- app/views/ish_manager/trash/stock_watches/index.haml
|
419
411
|
- app/views/ish_manager/user_profiles/_form.haml
|
420
412
|
- app/views/ish_manager/user_profiles/edit.haml
|
421
413
|
- app/views/ish_manager/user_profiles/index.haml
|
@@ -447,7 +439,6 @@ files:
|
|
447
439
|
- app/views/ish_manager/videos/show.haml
|
448
440
|
- app/views/layouts/ish_manager/README.txt
|
449
441
|
- app/views/layouts/ish_manager/application.haml
|
450
|
-
- app/views/layouts/ish_manager/application.haml-trash
|
451
442
|
- app/views/layouts/ish_manager/application2.haml
|
452
443
|
- app/views/layouts/ish_manager/application_no_material.haml
|
453
444
|
- config/routes.rb
|
@@ -459,7 +450,6 @@ files:
|
|
459
450
|
- lib/ish_manager/version.rb
|
460
451
|
- lib/tasks/ish_manager_tasks.rake
|
461
452
|
- lib/tasks/migrate.rake
|
462
|
-
- lib/tasks/warbler_tasks.rake-trash
|
463
453
|
homepage: http://wasya.co
|
464
454
|
licenses:
|
465
455
|
- MIT
|
Binary file
|
@@ -1,37 +0,0 @@
|
|
1
|
-
|
2
|
-
- if option_watch.persisted?
|
3
|
-
.float-left= button_to '[X]', option_watch_path(option_watch.id), method: :delete, data: { confirm: 'Are you sure?' }
|
4
|
-
|
5
|
-
|
6
|
-
- url = option_watches_path if !option_watch.persisted?
|
7
|
-
- url = option_watch_path( option_watch ) if option_watch.persisted?
|
8
|
-
|
9
|
-
= form_for option_watch, :url => url, :html => { :class => 'form-inline well' } do |f|
|
10
|
-
.flex-row
|
11
|
-
.form-group
|
12
|
-
= f.label :action
|
13
|
-
= f.select :action, options_for_select( Warbler::StockWatch::ACTIONS.map{|a|[a,a]}, :selected => option_watch.action )
|
14
|
-
.form-group
|
15
|
-
= f.label :profile
|
16
|
-
= f.select :profile, options_for_select( [[nil,nil]]+@profiles.map{|p|[p.email,p.id]}, :selected => option_watch.profile ? option_watch.profile.id : nil )
|
17
|
-
.form-group
|
18
|
-
%label.control-label When
|
19
|
-
= f.text_field :ticker, :class => 'form-control', :placeholder => 'ticker'
|
20
|
-
.form-group
|
21
|
-
%label.control-label Type
|
22
|
-
= f.select :contractType, options_for_select( [['none',nil],['PUT', 'PUT'], ['CALL', 'CALL']], :selected => option_watch.contractType )
|
23
|
-
.form-group
|
24
|
-
%label.control-label On date
|
25
|
-
= f.text_field :date, :class => 'form-control', :placeholder => 'date'
|
26
|
-
.form-group
|
27
|
-
%label.control-label Strike
|
28
|
-
= f.number_field :strike, :step => 0.01, :placeholder => "0.01"
|
29
|
-
.form-group
|
30
|
-
%label.control-label Is
|
31
|
-
= f.select :direction, options_for_select( Warbler::StockWatch::DIRECTIONS.map{|d|[d,d]}, :selected => option_watch.direction )
|
32
|
-
.form-group
|
33
|
-
%label.control-label Price
|
34
|
-
= f.number_field :price, :step => 0.01, :placeholder => "0.01"
|
35
|
-
.form-group
|
36
|
-
= f.submit ">", :class => %w(btn blue)
|
37
|
-
|
@@ -1,27 +0,0 @@
|
|
1
|
-
|
2
|
-
-#
|
3
|
-
-# ish_manager / stock_actions / _form
|
4
|
-
-#
|
5
|
-
|
6
|
-
- url = stock_actions_path if !stock_action.persisted?
|
7
|
-
- url = stock_action_path( stock_action ) if stock_action.persisted?
|
8
|
-
|
9
|
-
- if stock_action.profile
|
10
|
-
Belongs to #{stock_action.profile.email}
|
11
|
-
= form_for stock_action, :url => url, :html => { :class => 'form-inline well' } do |f|
|
12
|
-
.form-group
|
13
|
-
%label.control-label Active?
|
14
|
-
= f.check_box :is_active
|
15
|
-
.form-group
|
16
|
-
- which_selected = stock_action.stock_watch ? stock_action.stock_watch.id : nil
|
17
|
-
%label.control-label When stock watch
|
18
|
-
= f.select :stock_watch, options_for_select( @stock_watches_list, :selected => which_selected )
|
19
|
-
.form-group
|
20
|
-
%label.control-label Sell options
|
21
|
-
- @stock_options_list.each do |item|
|
22
|
-
- checked = stock_action.stock_options.map(&:id).include?(item[1])
|
23
|
-
.stock-option
|
24
|
-
= f.check_box :stock_options, { :multiple => true, :checked => checked }, item[1], nil
|
25
|
-
= item[0]
|
26
|
-
.form-group
|
27
|
-
= f.submit ">", :class => %w(btn blue)
|
@@ -1,13 +0,0 @@
|
|
1
|
-
|
2
|
-
%h4 Stock Actions
|
3
|
-
|
4
|
-
%p <b>Note:</b> a stock option cannot belong to two actions.
|
5
|
-
|
6
|
-
%hr
|
7
|
-
- @stock_actions.each do |stock_action|
|
8
|
-
= render 'form', :stock_action => stock_action
|
9
|
-
|
10
|
-
%hr
|
11
|
-
%h5 New
|
12
|
-
= render 'form', :stock_action => @stock_action
|
13
|
-
|
@@ -1,22 +0,0 @@
|
|
1
|
-
|
2
|
-
- url = stock_options_path if !stock_option.persisted?
|
3
|
-
- url = stock_options_path( stock_option ) if stock_option.persisted?
|
4
|
-
|
5
|
-
- if stock_option.profile
|
6
|
-
Belongs to #{stock_option.profile.email}
|
7
|
-
= form_for stock_option, :url => url, :html => { :class => 'form-inline well' } do |f|
|
8
|
-
.form-group
|
9
|
-
= f.text_field :ticker, :class => 'form-control', :placeholder => 'ticker'
|
10
|
-
.form-group
|
11
|
-
= f.text_field :expires_on, :class => 'form-control', :placeholder => 'YYYYMMDD' # :placeholder => 'MON(TH) DD YYYY'
|
12
|
-
.form-group
|
13
|
-
%label.control-label $
|
14
|
-
= f.number_field :strike, :step => 0.01, :class => 'form-control', :placeholder => '0.01'
|
15
|
-
.form-group
|
16
|
-
%label.control-label CALL/PUT?
|
17
|
-
= f.select :direction, options_for_select( Ish::StockOption::DIRECTIONS.map{|d|[d,d]}, :selected => stock_option.direction )
|
18
|
-
.form-group
|
19
|
-
%label.control-label quantity:
|
20
|
-
= f.number_field :quantity, :placeholder => 0
|
21
|
-
.form-group
|
22
|
-
= f.submit ">", :class => %w(btn blue)
|
@@ -1,28 +0,0 @@
|
|
1
|
-
|
2
|
-
- if stock_watch.persisted?
|
3
|
-
.float-left= button_to '[X]', stock_watch_path(stock_watch.id), method: :delete, data: { confirm: 'Are you sure?' }
|
4
|
-
|
5
|
-
|
6
|
-
- url = stock_watches_path if !stock_watch.persisted?
|
7
|
-
- url = stock_watch_path( stock_watch ) if stock_watch.persisted?
|
8
|
-
|
9
|
-
= form_for stock_watch, :url => url, :html => { :class => 'form-inline well' } do |f|
|
10
|
-
.flex-row
|
11
|
-
.form-group
|
12
|
-
= f.label :action
|
13
|
-
= f.select :action, options_for_select( Warbler::StockWatch::ACTIONS.map{|a|[a,a]}, :selected => stock_watch.action )
|
14
|
-
.form-group
|
15
|
-
= f.label :profile
|
16
|
-
= f.select :profile, options_for_select( [[nil,nil]]+@profiles.map{|p|[p.email,p.id]}, :selected => stock_watch.profile ? stock_watch.profile.id : nil )
|
17
|
-
.form-group
|
18
|
-
%label.control-label When
|
19
|
-
= f.text_field :ticker, :class => 'form-control', :placeholder => 'ticker'
|
20
|
-
.form-group
|
21
|
-
%label.control-label Price
|
22
|
-
= f.select :direction, options_for_select( Warbler::StockWatch::DIRECTIONS.map{|d|[d,d]}, :selected => stock_watch.direction )
|
23
|
-
.form-group
|
24
|
-
%label.control-label $
|
25
|
-
= f.number_field :price, :step => 0.01, :placeholder => "0.01"
|
26
|
-
.form-group
|
27
|
-
= f.submit ">", :class => %w(btn blue)
|
28
|
-
|
@@ -1,24 +0,0 @@
|
|
1
|
-
|
2
|
-
%h4 Stock Watches
|
3
|
-
|
4
|
-
- @stock_watches.each do |stock|
|
5
|
-
%hr
|
6
|
-
= render 'form', :stock_watch => stock
|
7
|
-
|
8
|
-
%hr
|
9
|
-
%h5 New
|
10
|
-
= render 'form', :stock_watch => @stock_watch
|
11
|
-
|
12
|
-
|
13
|
-
%hr
|
14
|
-
%hr
|
15
|
-
|
16
|
-
%h4 Option Watches
|
17
|
-
|
18
|
-
- @option_watches.each do |option|
|
19
|
-
%hr
|
20
|
-
= render 'ish_manager/option_watches/form', option_watch: option
|
21
|
-
|
22
|
-
%hr
|
23
|
-
%h5 New
|
24
|
-
= render 'ish_manager/option_watches/form', option_watch: @option_watch
|
@@ -1,40 +0,0 @@
|
|
1
|
-
!!!
|
2
|
-
%html
|
3
|
-
%head
|
4
|
-
%title Ish Manager
|
5
|
-
%link{ :rel => 'icon', :href => "/favicon_#{ENV['RAILS_ENV']}.gif" }
|
6
|
-
%meta{ :name => :viewport, :content => 'width=device-width, initial-scale=1.0' }
|
7
|
-
%meta{ :charset => 'UTF-8' }
|
8
|
-
%meta{ :description => 'some description' }
|
9
|
-
%script{ :src => "//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" }
|
10
|
-
%script{ :src => "//cdnjs.cloudflare.com/ajax/libs/tinymce/4.6.3/jquery.tinymce.min.js" }
|
11
|
-
%script{ :src => "//cdnjs.cloudflare.com/ajax/libs/tinymce/4.6.3/tinymce.min.js" }
|
12
|
-
%script{ :src => "//cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js" }
|
13
|
-
= stylesheet_link_tag "//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css"
|
14
|
-
= stylesheet_link_tag "//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css", :media => 'all'
|
15
|
-
= stylesheet_link_tag "//fonts.googleapis.com/icon?family=Material+Icons"
|
16
|
-
|
17
|
-
= stylesheet_link_tag "ish_manager/materialize", media: "all"
|
18
|
-
= stylesheet_link_tag "ish_manager/application", media: "all"
|
19
|
-
|
20
|
-
= javascript_include_tag "ish_manager/application"
|
21
|
-
= javascript_include_tag "ish_manager/materialize"
|
22
|
-
|
23
|
-
= csrf_meta_tags
|
24
|
-
%body{ class: [ params[:controller].gsub("ish_manager/",""), "#{params[:controller].gsub("ish_manager/","")}-#{params[:action]}", params[:action]] }
|
25
|
-
.bg-white
|
26
|
-
- role = current_user ? current_user.profile.role_name : ''
|
27
|
-
= render :partial => "ish_manager/application/main_header_#{role}"
|
28
|
-
.container
|
29
|
-
.row
|
30
|
-
.col.s12
|
31
|
-
- if notice
|
32
|
-
%p.notice= notice
|
33
|
-
- if alert
|
34
|
-
%p.alert= alert
|
35
|
-
.container
|
36
|
-
= yield
|
37
|
-
= render 'ish_manager/application/main_footer'
|
38
|
-
= render 'analytics' unless Rails.env.development?
|
39
|
-
= render 'debug' if Rails.env.development?
|
40
|
-
|
@@ -1,69 +0,0 @@
|
|
1
|
-
|
2
|
-
def puts! a, b=''
|
3
|
-
puts "+++ +++ #{b}:"
|
4
|
-
pp a
|
5
|
-
end
|
6
|
-
|
7
|
-
namespace :warbler do
|
8
|
-
|
9
|
-
desc 'test placing orders for stock' do
|
10
|
-
task place_order_stock: :environment do
|
11
|
-
opts = {
|
12
|
-
"instruction": "BUY",
|
13
|
-
"price": "1.10",
|
14
|
-
"quantity": 1,
|
15
|
-
"symbol": "BAC",
|
16
|
-
}
|
17
|
-
out = Warbler::Ameritrade::Api.place_stock_limit_order opts
|
18
|
-
puts! out, 'out'
|
19
|
-
end
|
20
|
-
|
21
|
-
## @TODO: this is still in ish_manager namespace, need to actually move it here.
|
22
|
-
desc 'watch the stocks, and trigger actions - not alphavantage, tda now. 2021-08-08'
|
23
|
-
task watch_stocks: :environment do
|
24
|
-
while true
|
25
|
-
stocks = Warbler::StockWatch.where( notification_type: :EMAIL )
|
26
|
-
stocks.each do |stock|
|
27
|
-
begin
|
28
|
-
Timeout::timeout( 10 ) do
|
29
|
-
out = Warbler::Ameritrade::Api.get_quote({ symbol: stock.ticker })
|
30
|
-
r = out[:lastPrice]
|
31
|
-
if stock.direction == :ABOVE && r >= stock.price ||
|
32
|
-
stock.direction == :BELOW && r <= stock.price
|
33
|
-
IshManager::ApplicationMailer.stock_alert( stock ).deliver
|
34
|
-
end
|
35
|
-
end
|
36
|
-
rescue Exception => e
|
37
|
-
puts! e, 'Error in ish_manager:watch_stocks :'
|
38
|
-
end
|
39
|
-
end
|
40
|
-
print '.'
|
41
|
-
sleep Warbler::StockWatch::SLEEP_TIME_SECONDS
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
desc 'watch option: contractType=PUT|CALL strike symbol date=yyyy-mm-dd'
|
46
|
-
task watch_options: :environment do
|
47
|
-
while true
|
48
|
-
option_watches = Warbler::OptionWatch.where( notification_type: :EMAIL )
|
49
|
-
option_watches.each do |option|
|
50
|
-
begin
|
51
|
-
Timeout::timeout( 10 ) do
|
52
|
-
## opts = { contractType: 'PUT', strike: 355.0, symbol: 'NVDA', date: '2022-02-18' }
|
53
|
-
out = Warbler::Ameritrade::Api.get_option( option )
|
54
|
-
r = out[:last]
|
55
|
-
if option.direction == :ABOVE && r >= option.price ||
|
56
|
-
option.direction == :BELOW && r <= option.price
|
57
|
-
IshManager::ApplicationMailer.option_alert( option ).deliver
|
58
|
-
end
|
59
|
-
end
|
60
|
-
rescue Exception => e
|
61
|
-
puts! e, 'Error in ish_manager:watch_options :'
|
62
|
-
end
|
63
|
-
end
|
64
|
-
print '.'
|
65
|
-
sleep Warbler::OptionWatch::SLEEP_TIME_SECONDS
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|