iron_warbler 2.0.7.19 → 2.0.7.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) 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/datapoint.rb +48 -8
  16. data/app/models/iro/position.rb +55 -14
  17. data/app/models/iro/position_covered_call.rb +4 -0
  18. data/app/models/iro/position_debit_spread.rb +251 -0
  19. data/app/models/iro/price_item.rb +51 -1
  20. data/app/models/iro/stock.rb +5 -2
  21. data/app/models/iro/strategy.rb +76 -10
  22. data/app/views/iro/_main_header.haml +18 -17
  23. data/app/views/iro/api/stocks/show.jbuilder +11 -0
  24. data/app/views/iro/positions/_form.haml +11 -38
  25. data/app/views/iro/positions/_formpart_4data.haml +46 -0
  26. data/app/views/iro/positions/_gameui_covered_call.haml +36 -0
  27. data/app/views/iro/positions/_gameui_covered_call.haml-bk +59 -0
  28. data/app/views/iro/positions/_gameui_long_debit_call_spread.haml +37 -0
  29. data/app/views/iro/positions/_gameui_short_debit_put_spread.haml +39 -0
  30. data/app/views/iro/positions/_header.haml +6 -0
  31. data/app/views/iro/positions/_header_covered_call.haml +6 -0
  32. data/app/views/iro/positions/_header_long_debit_call_spread.haml +14 -0
  33. data/app/views/iro/positions/_header_short_debit_put_spread.haml +1 -0
  34. data/app/views/iro/positions/_table.haml +118 -123
  35. data/app/views/iro/positions/roll.haml +83 -0
  36. data/app/views/iro/positions/trash/_header_short_debit_put_spread.haml +9 -0
  37. data/app/views/iro/purses/_header.haml +18 -0
  38. data/app/views/iro/purses/gameui.haml +18 -0
  39. data/app/views/iro/purses/gameui.haml-bk +44 -0
  40. data/app/views/iro/purses/gameui.haml-bk2 +89 -0
  41. data/app/views/iro/purses/show.haml +1 -7
  42. data/app/views/iro/stocks/_grid_is_long.haml +13 -0
  43. data/app/views/iro/stocks/_grid_is_short.haml +13 -0
  44. data/app/views/iro/strategies/_form.haml +12 -5
  45. data/app/views/iro/strategies/_show.haml +3 -2
  46. data/app/views/iro/strategies/_table.haml +16 -10
  47. data/app/views/iro/strategies/index.haml +8 -0
  48. data/app/views/layouts/iro/application.haml +1 -1
  49. data/config/routes.rb +14 -1
  50. data/lib/tasks/db_tasks.rake +9 -3
  51. metadata +29 -8
  52. data/app/assets/stylesheets/iron_warbler/alerts.css +0 -8
  53. data/app/assets/stylesheets/iron_warbler/datapoints.css +0 -0
  54. data/app/assets/stylesheets/iron_warbler/profiles.css +0 -4
  55. data/app/assets/stylesheets/iron_warbler/strategies.scss +0 -0
  56. data/app/assets/stylesheets/iron_warbler/utils.css +0 -44
  57. data/app/jobs/iro/application_job.rb-trash +0 -4
@@ -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.19
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-11 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