ish_manager 0.1.8.284 → 0.1.8.287

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43669b702b07d6fe56625d8627184844ca961c14363abf878edb580f7ea7074f
4
- data.tar.gz: a775cf8632f0275360b0cb7632bbca30414dcb9b7318f659e8d49b000baf2d24
3
+ metadata.gz: 237abaf7bf4203c9e2a2f4f83b44f191f28083cc8d76a97683643446d798d14c
4
+ data.tar.gz: 3a670cfeb3f49711419734dd1d28f3b241326607550d5231ad9edde1d54b560c
5
5
  SHA512:
6
- metadata.gz: 7090d09fc32da154da49bba462130634fc607cc376806c77c110f12e0f25d2ce0f5a50d2fe8189e60b922b056667133350bbff3998be953b2764a51d6bd4a54b
7
- data.tar.gz: ef0a3e0572f706f8d7b53e73c35114d43ef8c0c5220ee5d6dad48a08e7d9b79d62a464e4cb23818f2b0a5029259e7c93f2556ac50133c5c98ba9dd3041c15da0
6
+ metadata.gz: 9d4f055b9d0af25a25a50e4d9ac256e1a350a470fdcde56bd2c923108a26446c00c8ecf0062f3131a49a56f3deb5cd5a249ee2d9abdf1d3872a5bde268ce799a
7
+ data.tar.gz: 21d8017a28f7a23d24c0163ff4a8ef30acacb75797ff49a40475e75948ff9c3998bc25b1f51feef0b9b10d9448c1ca1a97c2c294824a3f097dbabd03ec0867c5
@@ -0,0 +1,37 @@
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
+
@@ -0,0 +1,27 @@
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)
@@ -0,0 +1,13 @@
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
+
@@ -0,0 +1,22 @@
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)
@@ -0,0 +1,11 @@
1
+
2
+ %h4 Stock Options Index
3
+
4
+ %hr
5
+ - @stock_options.each do |stock_option|
6
+ = render 'form', :stock_option => stock_option
7
+
8
+ %hr
9
+ %h5 New
10
+ = render 'form', :stock_option => @stock_option
11
+
@@ -0,0 +1,28 @@
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
+
@@ -0,0 +1,24 @@
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
@@ -0,0 +1,69 @@
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
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ish_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8.284
4
+ version: 0.1.8.287
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-30 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: cancancan
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.1'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.1'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: activeadmin
28
+ name: devise
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: '4.3'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.0'
40
+ version: '4.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: haml
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -53,63 +53,91 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: cancancan
56
+ name: kaminari-mongoid
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.0'
61
+ version: '1.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.0'
68
+ version: '1.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: devise
70
+ name: kaminari-actionview
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '4.3'
75
+ version: '1.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '4.3'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: kaminari-mongoid
84
+ name: mongoid
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.0'
89
+ version: 7.3.0
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.0'
96
+ version: 7.3.0
97
97
  - !ruby/object:Gem::Dependency
98
- name: kaminari-actionview
98
+ name: mongoid_paranoia
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: mongoid-paperclip
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: mongoid-autoinc
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: '1.0'
131
+ version: '6.0'
104
132
  type: :runtime
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: '1.0'
138
+ version: '6.0'
111
139
  - !ruby/object:Gem::Dependency
112
- name: mongoid-autoinc
140
+ name: rails
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - "~>"
@@ -345,6 +373,13 @@ files:
345
373
  - app/views/ish_manager/tags/index.haml
346
374
  - app/views/ish_manager/tags/new.haml
347
375
  - app/views/ish_manager/tags/show.haml
376
+ - app/views/ish_manager/trash/option_watches-trash/_form.haml
377
+ - app/views/ish_manager/trash/stock_actions/_form.haml
378
+ - app/views/ish_manager/trash/stock_actions/index.haml
379
+ - app/views/ish_manager/trash/stock_options/_form.haml
380
+ - app/views/ish_manager/trash/stock_options/index.haml
381
+ - app/views/ish_manager/trash/stock_watches/_form.haml
382
+ - app/views/ish_manager/trash/stock_watches/index.haml
348
383
  - app/views/ish_manager/user_profiles/_form.haml
349
384
  - app/views/ish_manager/user_profiles/edit.haml
350
385
  - app/views/ish_manager/user_profiles/index.haml
@@ -384,6 +419,7 @@ files:
384
419
  - lib/tasks/ish_manager_tasks.rake
385
420
  - lib/tasks/migrate.rake
386
421
  - lib/tasks/warbler_tasks.rake
422
+ - lib/tasks/warbler_tasks.rake-trash
387
423
  homepage: http://wasya.co
388
424
  licenses:
389
425
  - MIT