iron_warbler 2.0.7.18 → 2.0.7.20

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascript/iron_warbler/application.js +2 -0
  3. data/app/assets/javascript/iron_warbler/gameui.js +9 -0
  4. data/app/assets/stylesheets/iron_warbler/application.css +13 -3
  5. data/app/assets/stylesheets/iron_warbler/positions.scss +9 -1
  6. data/app/assets/stylesheets/iron_warbler/purses_gameui.scss +191 -0
  7. data/app/assets/stylesheets/iron_warbler/purses_gameui.scss-bk +112 -0
  8. data/app/assets/stylesheets/iron_warbler/utils.scss +82 -0
  9. data/app/controllers/iro/api/stocks_controller.rb +87 -0
  10. data/app/controllers/iro/api_controller.rb +19 -0
  11. data/app/controllers/iro/positions_controller.rb +16 -4
  12. data/app/controllers/iro/purses_controller.rb +8 -3
  13. data/app/controllers/iro/strategies_controller.rb +7 -7
  14. data/app/helpers/iro/application_helper.rb +5 -2
  15. data/app/models/iro/alert.rb +2 -1
  16. data/app/models/iro/datapoint.rb +48 -8
  17. data/app/models/iro/position.rb +55 -14
  18. data/app/models/iro/position_covered_call.rb +4 -0
  19. data/app/models/iro/position_debit_spread.rb +251 -0
  20. data/app/models/iro/price_item.rb +51 -1
  21. data/app/models/iro/stock.rb +5 -2
  22. data/app/models/iro/strategy.rb +76 -10
  23. data/app/models/tda/stock.rb +3 -0
  24. data/app/views/iro/_main_header.haml +18 -17
  25. data/app/views/iro/api/stocks/show.jbuilder +11 -0
  26. data/app/views/iro/positions/_form.haml +11 -38
  27. data/app/views/iro/positions/_formpart_4data.haml +46 -0
  28. data/app/views/iro/positions/_gameui_covered_call.haml +36 -0
  29. data/app/views/iro/positions/_gameui_covered_call.haml-bk +59 -0
  30. data/app/views/iro/positions/_gameui_long_debit_call_spread.haml +37 -0
  31. data/app/views/iro/positions/_gameui_short_debit_put_spread.haml +39 -0
  32. data/app/views/iro/positions/_header.haml +6 -0
  33. data/app/views/iro/positions/_header_covered_call.haml +6 -0
  34. data/app/views/iro/positions/_header_long_debit_call_spread.haml +14 -0
  35. data/app/views/iro/positions/_header_short_debit_put_spread.haml +1 -0
  36. data/app/views/iro/positions/_table.haml +118 -123
  37. data/app/views/iro/positions/roll.haml +83 -0
  38. data/app/views/iro/positions/trash/_header_short_debit_put_spread.haml +9 -0
  39. data/app/views/iro/purses/_header.haml +18 -0
  40. data/app/views/iro/purses/gameui.haml +18 -0
  41. data/app/views/iro/purses/gameui.haml-bk +44 -0
  42. data/app/views/iro/purses/gameui.haml-bk2 +89 -0
  43. data/app/views/iro/purses/show.haml +1 -7
  44. data/app/views/iro/stocks/_grid_is_long.haml +13 -0
  45. data/app/views/iro/stocks/_grid_is_short.haml +13 -0
  46. data/app/views/iro/strategies/_form.haml +12 -5
  47. data/app/views/iro/strategies/_show.haml +3 -2
  48. data/app/views/iro/strategies/_table.haml +16 -10
  49. data/app/views/iro/strategies/index.haml +8 -0
  50. data/app/views/layouts/iro/application.haml +1 -1
  51. data/config/routes.rb +14 -1
  52. data/lib/tasks/db_tasks.rake +9 -3
  53. metadata +29 -8
  54. data/app/assets/stylesheets/iron_warbler/alerts.css +0 -8
  55. data/app/assets/stylesheets/iron_warbler/datapoints.css +0 -0
  56. data/app/assets/stylesheets/iron_warbler/profiles.css +0 -4
  57. data/app/assets/stylesheets/iron_warbler/strategies.scss +0 -0
  58. data/app/assets/stylesheets/iron_warbler/utils.css +0 -44
  59. data/app/jobs/iro/application_job.rb-trash +0 -4
@@ -0,0 +1,83 @@
1
+
2
+ - unit = u = 50 # pixels per dollar
3
+ - grid_size = 100 # dollars to each side of origin
4
+ - strategy = @position.strategy
5
+ .purses-gameui.padded
6
+ = render '/iro/purses/header', purse: @position.purse
7
+
8
+ .a
9
+ - position = @position
10
+ - stock = position.stock
11
+ %h4= stock
12
+
13
+ .header
14
+ = position.quantity
15
+ = stock
16
+ = position.expires_on.to_datetime.strftime("%b %d")
17
+ = link_to '[roll]', roll_position_path(position)
18
+ = link_to '[~]', edit_position_path(position)
19
+
20
+ - nearest_strike = stock.last.round
21
+ .StockCoordinatesW
22
+
23
+ .StockCoordinates
24
+ .grid-mark.mark0
25
+ .label= nearest_strike
26
+ - (1...grid_size).each_with_index do |idx|
27
+ .grid-mark{ class: "mark#{idx}", style: "left: -#{idx * u}px" }
28
+ .label
29
+ = nearest_strike + idx
30
+ .grid-mark{ class: "mark-#{idx}", style: "left: #{idx * u}px" }
31
+ .label
32
+ = nearest_strike - idx
33
+ .Origin{ style: "left: #{ ( nearest_strike - stock.last )* u}px" }
34
+ .label
35
+ Last:
36
+ = stock.last
37
+
38
+
39
+ .PositionW{ style: "width: #{ position.begin_inner_price * u}px; left: #{ (stock.last - position.inner_strike - position.begin_inner_price) * u}px" }
40
+
41
+ .Position
42
+ - if position.net_amount >= 0
43
+ .Net.NetPositive{ style: "width: #{ (position.net_amount / 100) * u }px; right: 0" }
44
+ .label
45
+ net
46
+ = pp_amount position.net_amount
47
+ - else
48
+ .Net.NetNegative{ style: "width: #{ (-1 * position.net_amount / 100) * u }px; left: 100%" }
49
+ .label
50
+ net
51
+ = pp_amount position.net_amount
52
+ .c
53
+
54
+ - @positions.each do |position|
55
+ .reviewing
56
+ - stock = position.stock
57
+ - nearest_strike = stock.last.round
58
+ .StockCoordinatesW
59
+ .StockCoordinates
60
+ .grid-mark.mark0
61
+ .label= nearest_strike
62
+ - (1...grid_size).each_with_index do |idx|
63
+ .grid-mark{ class: "mark#{idx}", style: "left: -#{idx * u}px" }
64
+ .label
65
+ = nearest_strike + idx
66
+ .grid-mark{ class: "mark-#{idx}", style: "left: #{idx * u}px" }
67
+ .label
68
+ = nearest_strike - idx
69
+ .Origin{ style: "left: #{ ( nearest_strike - stock.last )* u}px" }
70
+ .label
71
+ Last:
72
+ = stock.last
73
+ - amnt = position.gain_loss_amount
74
+ - border = amnt >= 0 ? "#{amnt * u}px solid green" : "#{amnt * -1 * u}px solid red"
75
+ .PositionW{ style: "width: #{ position.begin_inner_price * u}px; left: #{ (stock.last - position.inner_strike - position.begin_inner_price) * u}px; border: #{border}; border-bottom-width: 2px" }
76
+ .Position
77
+ .c
78
+
79
+
80
+
81
+
82
+ %br
83
+ %br
@@ -0,0 +1,9 @@
1
+
2
+ .maxwidth
3
+ %ul.m-0.p-0
4
+ %li <b>outer,inner_strike:</b> #{pp_amount pos.outer_strike} -> #{pp_amount pos.inner_strike}
5
+ %li
6
+ <b>begin_outer,inner_price:</b> #{pp_amount pos.begin_outer_price} -> #{pp_amount pos.begin_inner_price}
7
+ &nbsp;&nbsp;
8
+ <b>max gain:</b> #{pp_amount pos.max_gain}
9
+ %li <b>Net:</b> #{pp_amount pos.net_amount} &nbsp;&nbsp; <i>#{pp_percent pos.net_percent}</i>
@@ -0,0 +1,18 @@
1
+
2
+ - purse ||= @purse
3
+ .maxwidth
4
+ .header
5
+ %h5.title
6
+ Purse `#{purse.slug}`
7
+ = link_to '[~]', edit_purse_path(purse)
8
+ = link_to '[view GameUI]', gameui_purse_path(purse)
9
+ = link_to '[view]', purse_path(purse)
10
+ (#{purse.positions.length})
11
+
12
+
13
+
14
+ = link_to '[+position]', new_position_path({ purse_id: purse.id })
15
+ = link_to '[+long]', new_position_path({ purse_id: purse.id, long_or_short: Iro::Strategy::LONG })
16
+ = link_to '[+short]', new_position_path({ purse_id: purse.id, long_or_short: Iro::Strategy::SHORT })
17
+ %br
18
+ %br
@@ -0,0 +1,18 @@
1
+
2
+ = render '/iro/purses/header', purse: @purse
3
+
4
+ - u = @unit
5
+ .purses-gameuiW{ data: { margin: { left: u*@grid_size } } }
6
+ .purses-gameui
7
+ .a
8
+
9
+ %div{ style: "margin-left: #{u*@grid_size}px; width: 100% " }
10
+ - @positions.each_with_index do |pos, idx|
11
+ - if idx == 0
12
+ %h4.maxwidth= pos.stock
13
+ - else
14
+ - prev_ = @positions[idx-1]
15
+ - if pos.stock != prev_.stock
16
+ %hr
17
+ %h4.maxwidth= pos.stock
18
+ = render "/iro/positions/gameui_#{pos.strategy.kind}", position: pos
@@ -0,0 +1,44 @@
1
+
2
+ - unit = u = 50 # pixels per dollar
3
+ - grid_size = 100 # dollars to each side of origin
4
+ .purses-gameui.padded
5
+ = render '/iro/purses/header', purse: @purse
6
+
7
+
8
+ - @positions.each_with_index do |position, idx|
9
+ .CoordinatesW
10
+ .Origin
11
+ .Coordinates
12
+ -# .Coordinates{ style: "left: #{ (position.inner_strike - position.stock.last) * u }px" }
13
+ .grid-mark.mark0.origin
14
+ .label
15
+ Begin strike:
16
+ = position.inner_strike
17
+
18
+ - (1...grid_size).each_with_index do |idx|
19
+ .grid-mark{ class: "mark#{idx}", style: "left: #{idx * u}px" }
20
+ .label
21
+ = position.inner_strike + idx
22
+ .grid-mark{ class: "mark-#{idx}", style: "left: -#{idx * u}px" }
23
+ .label
24
+ = position.inner_strike - idx
25
+
26
+ .Net{ style: "width: #{ (position.net_amount / 100) * u }px" }
27
+ .label
28
+ Net:
29
+ = pp_amount position.net_amount
30
+
31
+ .marker.sprite-bottom.Breakeven{ style: "width: #{ (position.begin_inner_price) * u }px" }
32
+ .half-circle
33
+ .label.hide
34
+ Breakeven:
35
+ = position.inner_strike + position.begin_inner_price
36
+
37
+ .marker.Last{ style: "left: #{ (position.stock.last - position.inner_strike) * u }px" }
38
+ .label
39
+ Last:
40
+ = position.stock.last
41
+
42
+
43
+ %br
44
+ %br
@@ -0,0 +1,89 @@
1
+
2
+ - unit = u = 50 # pixels per dollar
3
+ - grid_size = 100 # dollars to each side of origin
4
+ .purses-gameui.padded
5
+ = render '/iro/purses/header', purse: @purse
6
+
7
+
8
+ -# - @positions.map &:id
9
+ - @positions.each_with_index do |position, idx|
10
+ - stock = position.stock
11
+ - if idx == 0
12
+ %h4= stock
13
+ - else
14
+ - prev_ = @positions[idx-1]
15
+ - if stock != prev_.stock
16
+ %hr
17
+ %h4= stock
18
+
19
+
20
+
21
+
22
+ .header
23
+ = position.quantity
24
+ = stock
25
+ = position.expires_on.to_datetime.strftime("%b %d")
26
+ = link_to '[roll]', roll_position_path(position)
27
+ = link_to '[~]', edit_position_path(position)
28
+
29
+ - nearest_strike = stock.last.round
30
+ - # for Mu ( positions in one stock )
31
+ .StockCoordinatesW
32
+
33
+ .StockCoordinates
34
+ .grid-mark.mark0
35
+ .label= nearest_strike
36
+ - (1...grid_size).each_with_index do |idx|
37
+ .grid-mark{ class: "mark#{idx}", style: "left: -#{idx * u}px" }
38
+ .label
39
+ = nearest_strike + idx
40
+ .grid-mark{ class: "mark-#{idx}", style: "left: #{idx * u}px" }
41
+ .label
42
+ = nearest_strike - idx
43
+ .Origin{ style: "left: #{ ( nearest_strike - stock.last )* u}px" }
44
+ .label
45
+ Last:
46
+ = stock.last
47
+
48
+
49
+ .PositionW{ style: "width: #{ position.begin_inner_price * u}px; left: #{ (stock.last - position.inner_strike - position.begin_inner_price) * u}px" }
50
+
51
+ .Position
52
+ -# .label
53
+ -# BeginStrike:
54
+ -# = position.inner_strike
55
+ -# .label
56
+ -# begin inner price:
57
+ -# = position.begin_inner_price
58
+ - if position.net_amount >= 0
59
+ .Net.NetPositive{ style: "width: #{ (position.net_amount / 100) * u }px; right: 0" }
60
+ .label
61
+ net
62
+ = pp_amount position.net_amount
63
+ - else
64
+ .Net.NetNegative{ style: "width: #{ (-1 * position.net_amount / 100) * u }px; left: 100%" }
65
+ .label
66
+ net
67
+ = pp_amount position.net_amount
68
+
69
+
70
+ -# .label
71
+ -# net:
72
+ -# = pp_amount position.net_amount
73
+
74
+ -# .BeginInnerPrice
75
+ -# .label
76
+ -# Begin Inner Price:
77
+ -# = pp_amount position.begin_inner_price
78
+
79
+ -# .marker.sprite-bottom.Breakeven{ style: "width: #{ (position.begin_inner_price) * u }px" }
80
+ -# .half-circle
81
+ -# .label.hide
82
+ -# Breakeven:
83
+ -# = position.inner_strike + position.begin_inner_price
84
+
85
+
86
+
87
+
88
+ %br
89
+ %br
@@ -1,10 +1,4 @@
1
1
 
2
2
  .purses-show.padded
3
-
4
- .maxwidth
5
- .header
6
- %h5.title Purse `#{@purse.slug}` (#{@purse.positions.length})
7
- %ul.menu-secondary
8
- %li= link_to '[+position]', new_position_path({ purse_id: @purse.id })
9
-
3
+ = render '/iro/purses/header', purse: @purse
10
4
  = render '/iro/positions/table', positions: @purse.positions
@@ -0,0 +1,13 @@
1
+
2
+ - nearest_strike = stock.last.round
3
+ - u = @unit
4
+
5
+ .grid-mark.mark0
6
+ .label= nearest_strike
7
+ - (1...@grid_size).each_with_index do |idx|
8
+ .grid-mark{ class: "mark#{idx}", style: "left: #{idx * u}px" }
9
+ .label
10
+ = nearest_strike + idx
11
+ .grid-mark{ class: "mark-#{idx}", style: "left: -#{idx * u}px" }
12
+ .label
13
+ = nearest_strike - idx
@@ -0,0 +1,13 @@
1
+
2
+ - nearest_strike = stock.last.round
3
+ - u = @unit
4
+
5
+ .grid-mark.mark0
6
+ .label= nearest_strike
7
+ - (1...@grid_size).each_with_index do |idx|
8
+ .grid-mark{ class: "mark#{idx}", style: "left: -#{idx * u}px" }
9
+ .label
10
+ = nearest_strike + idx
11
+ .grid-mark{ class: "mark-#{idx}", style: "left: #{idx * u}px" }
12
+ .label
13
+ = nearest_strike - idx
@@ -4,20 +4,27 @@
4
4
  .actions
5
5
  = f.submit
6
6
 
7
- .field
8
- %label Ticker
9
- = f.select :ticker, options_for_select( @tickers_list, selected: strategy.ticker )
10
7
 
8
+ .field
9
+ %label Kind
10
+ = f.select :kind, options_for_select( Iro::Strategy::KINDS, selected: strategy.kind )
11
11
  .field
12
12
  %label slug
13
13
  = f.text_field :slug
14
+ .field
15
+ %label long or short?
16
+ = f.select :long_or_short, options_for_select([nil, Iro::Strategy::LONG, Iro::Strategy::SHORT], selected: strategy.long_or_short)
17
+
14
18
 
15
19
  .field
16
20
  = f.label :buffer_above_water
17
21
  = f.number_field :buffer_above_water, placeholder: "0.49", step: 0.01
18
22
  .field
19
- = f.label :next_max_delta
20
- = f.number_field :next_max_delta, placeholder: "0.25", step: 0.01
23
+ = f.label :next_max_outer_delta
24
+ = f.number_field :next_max_outer_delta, placeholder: "0.25", step: 0.01
25
+ .field
26
+ = f.label :next_max_inner_delta
27
+ = f.number_field :next_max_inner_delta, placeholder: "0.25", step: 0.01
21
28
  .field
22
29
  = f.label :next_min_strike
23
30
  = f.number_field :next_min_strike, placeholder: "20.0", step: 0.01
@@ -5,12 +5,13 @@
5
5
  = link_to '[~]', edit_strategy_path(strategy)
6
6
  = strategy
7
7
  %ul
8
- %li <b>ticker:</b> #{strategy.ticker}
8
+ -# %li <b>ticker:</b> #{strategy.ticker}
9
9
  %li <b>slug:</b> #{strategy.slug}
10
10
 
11
11
  %li <b>buffer_above_water:</b> #{strategy.buffer_above_water}
12
12
 
13
- %li <b>next_max_delta:</b> #{strategy.next_max_delta}
13
+ %li <b>next_max_inner_delta:</b> #{strategy.next_max_inner_delta}
14
+ %li <b>next_max_outer_delta:</b> #{strategy.next_max_outer_delta}
14
15
  %li <b>next_min_strike:</b> #{strategy.next_min_strike}
15
16
 
16
17
  %li <b>threshold_delta:</b> #{strategy.threshold_delta}
@@ -4,15 +4,21 @@
4
4
  .strategies--table
5
5
 
6
6
  %table.bordered
7
- %tr
8
- %th &nbsp;
9
- %th ticker
10
- %th slug
11
- %th next_max_delta
12
- - strategies.each do |sss|
7
+ %thead
13
8
  %tr
14
- %td= link_to '[~]', edit_strategy_path(sss)
15
- %td= sss.ticker
16
- %td= sss.slug
17
- %td= sss.next_max_delta
9
+ %th.actions &nbsp;
10
+ %th kind
11
+ %th slug
12
+ %th next_max_inner_delta
13
+ %tbody
14
+ - strategies.each do |sss|
15
+ %tr
16
+ %td.actions.d-flex
17
+ = link_to '[~]', edit_strategy_path(sss)
18
+ = button_to 'x', strategy_path(sss), method: :delete, data: { confirm: 'Are you sure?' }
19
+ %td= sss.kind
20
+ %td= sss.slug
21
+ %td= sss.next_max_inner_delta
22
+
23
+ .h-50px
18
24
 
@@ -0,0 +1,8 @@
1
+
2
+ .maxwidth
3
+ .header
4
+ %h5.title
5
+ Strategies
6
+ = link_to '[+]', iro.new_strategy_path
7
+
8
+ = render '/iro/strategies/table', strategies: @strategies
@@ -44,7 +44,7 @@
44
44
  = render "/wco/main_header"
45
45
  = render "/iro/main_header"
46
46
  = render '/wco/alerts_notices' if notice || alert
47
- %hr
47
+ .spacer-small
48
48
 
49
49
  %span.absolute.collapse-expand#mainW
50
50
  = yield
data/config/routes.rb CHANGED
@@ -9,12 +9,25 @@ Iro::Engine.routes.draw do
9
9
 
10
10
  resources :option_watches
11
11
 
12
- post 'positions/:id/roll', to: 'positions#roll', as: :roll_position
12
+ get 'positions/:id/roll', to: 'positions#roll', as: :roll_position
13
+ post 'positions/:id/roll', to: 'positions#do_roll'
13
14
  resources :positions
14
15
  resources :profiles
16
+
17
+ get 'purses/:id/gameui', to: 'purses#show', as: :gameui_purse, defaults: { template: 'gameui' }
18
+ get 'purses/:id', to: 'purses#show', as: :purse, defaults: { template: 'show' }
15
19
  resources :purses
16
20
 
17
21
  resources :stocks
18
22
  resources :strategies
19
23
 
24
+ namespace :api do
25
+ # resources :stocks
26
+ get 'stocks/:ticker/period/:period', to: 'stocks#show'
27
+ get 'stocks/:ticker/from/:begin_on', to: 'stocks#show'
28
+ get 'stocks/:ticker/begin_on/:begin_on', to: 'stocks#show'
29
+ get 'stocks/:ticker/from/:begin_on/to/:end_on', to: 'stocks#show'
30
+ get 'stocks/:ticker/begin_on/:begin_on/end_on/:end_on', to: 'stocks#show'
31
+ end
32
+
20
33
  end
@@ -1,9 +1,10 @@
1
1
 
2
2
  namespace :db do
3
3
 
4
- desc 'test'
5
- task test: :environment do
6
- Iro::Datapoint.test
4
+ ## date, volume, open, high, low, close
5
+ desc 'import_stock symbol=GME path=./data/GME-test.csv'
6
+ task import_stock: :environment do
7
+ Iro::Datapoint.import_stock( symbol: ENV['symbol'], path: ENV['path'] )
7
8
  end
8
9
 
9
10
  desc 'create calendar mdb'
@@ -77,4 +78,9 @@ namespace :db do
77
78
  })
78
79
  end
79
80
 
81
+ desc 'test'
82
+ task test: :environment do
83
+ Iro::Datapoint.test
84
+ end
85
+
80
86
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron_warbler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.7.18
4
+ version: 2.0.7.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Pudeyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-07 00:00:00.000000000 Z
11
+ date: 2024-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: business_time
@@ -201,14 +201,15 @@ files:
201
201
  - Rakefile
202
202
  - app/assets/config/iron_warbler_manifest.js
203
203
  - app/assets/javascript/iron_warbler/application.js
204
- - app/assets/stylesheets/iron_warbler/alerts.css
204
+ - app/assets/javascript/iron_warbler/gameui.js
205
205
  - app/assets/stylesheets/iron_warbler/application.css
206
- - app/assets/stylesheets/iron_warbler/datapoints.css
207
206
  - app/assets/stylesheets/iron_warbler/positions.scss
208
- - app/assets/stylesheets/iron_warbler/profiles.css
209
- - app/assets/stylesheets/iron_warbler/strategies.scss
210
- - app/assets/stylesheets/iron_warbler/utils.css
207
+ - app/assets/stylesheets/iron_warbler/purses_gameui.scss
208
+ - app/assets/stylesheets/iron_warbler/purses_gameui.scss-bk
209
+ - app/assets/stylesheets/iron_warbler/utils.scss
211
210
  - app/controllers/iro/alerts_controller.rb
211
+ - app/controllers/iro/api/stocks_controller.rb
212
+ - app/controllers/iro/api_controller.rb
212
213
  - app/controllers/iro/application_controller.rb
213
214
  - app/controllers/iro/datapoints_controller.rb
214
215
  - app/controllers/iro/positions_controller.rb
@@ -217,7 +218,6 @@ files:
217
218
  - app/controllers/iro/stocks_controller.rb
218
219
  - app/controllers/iro/strategies_controller.rb
219
220
  - app/helpers/iro/application_helper.rb
220
- - app/jobs/iro/application_job.rb-trash
221
221
  - app/mailers/iro/alert_mailer.rb
222
222
  - app/mailers/iro/application_mailer.rb
223
223
  - app/models/iro/alert.rb
@@ -225,6 +225,8 @@ files:
225
225
  - app/models/iro/date.rb
226
226
  - app/models/iro/option.rb
227
227
  - app/models/iro/position.rb
228
+ - app/models/iro/position_covered_call.rb
229
+ - app/models/iro/position_debit_spread.rb
228
230
  - app/models/iro/price_item.rb
229
231
  - app/models/iro/purse.rb
230
232
  - app/models/iro/stock.rb
@@ -236,23 +238,42 @@ files:
236
238
  - app/views/iro/alert_mailer/stock_alert.haml
237
239
  - app/views/iro/alerts/_form.haml
238
240
  - app/views/iro/alerts/index.haml
241
+ - app/views/iro/api/stocks/show.jbuilder
239
242
  - app/views/iro/application/home.haml
240
243
  - app/views/iro/positions/_form.haml
244
+ - app/views/iro/positions/_formpart_4data.haml
245
+ - app/views/iro/positions/_gameui_covered_call.haml
246
+ - app/views/iro/positions/_gameui_covered_call.haml-bk
247
+ - app/views/iro/positions/_gameui_long_debit_call_spread.haml
248
+ - app/views/iro/positions/_gameui_short_debit_put_spread.haml
249
+ - app/views/iro/positions/_header.haml
250
+ - app/views/iro/positions/_header_covered_call.haml
251
+ - app/views/iro/positions/_header_long_debit_call_spread.haml
252
+ - app/views/iro/positions/_header_short_debit_put_spread.haml
241
253
  - app/views/iro/positions/_reasons.haml
242
254
  - app/views/iro/positions/_table.haml
243
255
  - app/views/iro/positions/edit.haml
244
256
  - app/views/iro/positions/new.haml
257
+ - app/views/iro/positions/roll.haml
258
+ - app/views/iro/positions/trash/_header_short_debit_put_spread.haml
245
259
  - app/views/iro/purses/_form.haml
260
+ - app/views/iro/purses/_header.haml
246
261
  - app/views/iro/purses/edit.haml
262
+ - app/views/iro/purses/gameui.haml
263
+ - app/views/iro/purses/gameui.haml-bk
264
+ - app/views/iro/purses/gameui.haml-bk2
247
265
  - app/views/iro/purses/index.haml
248
266
  - app/views/iro/purses/show.haml
249
267
  - app/views/iro/stocks/_form.haml
268
+ - app/views/iro/stocks/_grid_is_long.haml
269
+ - app/views/iro/stocks/_grid_is_short.haml
250
270
  - app/views/iro/stocks/index.haml
251
271
  - app/views/iro/strategies/_form.haml
252
272
  - app/views/iro/strategies/_header.haml
253
273
  - app/views/iro/strategies/_show.haml
254
274
  - app/views/iro/strategies/_table.haml
255
275
  - app/views/iro/strategies/edit.haml
276
+ - app/views/iro/strategies/index.haml
256
277
  - app/views/iro/strategies/new.haml
257
278
  - app/views/layouts/iro/application.haml
258
279
  - config/initializers/assets.rb
@@ -1,8 +0,0 @@
1
- /*
2
- Place all the styles related to the matching controller here.
3
- They will automatically be included in application.css.
4
- */
5
-
6
- body {
7
- colod: red !important;
8
- }
File without changes
@@ -1,4 +0,0 @@
1
- /*
2
- Place all the styles related to the matching controller here.
3
- They will automatically be included in application.css.
4
- */
File without changes
@@ -1,44 +0,0 @@
1
-
2
- /* F */
3
-
4
- .flex-row {
5
- display: flex;
6
- margin-bottom: 0.4em;
7
- }
8
- .field {
9
- min-width: 100px;
10
- margin-right: 1em;
11
- }
12
-
13
- /* M */
14
-
15
- .modal-absolute {
16
- border: 1px solid green;
17
- border-radius: 5px;
18
- box-shadow: 2px 2px;
19
-
20
- padding: 0.5em;
21
-
22
- position: absolute;
23
-
24
- min-width: 200px;
25
- width: 400px;
26
-
27
- min-height: 200px;
28
- height: 300px;
29
- /* overflow: auto; */
30
-
31
- background: white;
32
-
33
- z-index: 2;
34
-
35
- }
36
-
37
-
38
-
39
- /* W */
40
-
41
- .w-min-50px {
42
- min-width: 50px;
43
- }
44
-
@@ -1,4 +0,0 @@
1
- module Iro
2
- class ApplicationJob < ActiveJob::Base
3
- end
4
- end