toji 1.6.8 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/example/calendar.ipynb +123 -0
  3. data/example/{schedule.yaml → calendar.yaml} +6 -30
  4. data/example/calendar_file.ipynb +338 -0
  5. data/example/example_core.rb +336 -0
  6. data/example/kake_recipe.rb +27 -0
  7. data/example/koji_making.ipynb +16 -15
  8. data/example/koji_making.rb +2 -1
  9. data/example/koji_making.yaml +9 -9
  10. data/example/koji_making_multi.ipynb +26 -25
  11. data/example/koji_recipe.rb +1 -1
  12. data/example/moromi.ipynb +25 -24
  13. data/example/moromi.rb +1 -0
  14. data/example/moromi.yaml +10 -4
  15. data/example/recipe.rb +75 -0
  16. data/example/shubo.ipynb +15 -14
  17. data/example/shubo.rb +2 -1
  18. data/example/shubo.yaml +10 -10
  19. data/lib/toji.rb +3 -1
  20. data/lib/toji/brew.rb +1 -2
  21. data/lib/toji/brew/base.rb +7 -71
  22. data/lib/toji/brew/builder.rb +47 -4
  23. data/lib/toji/brew/graph/bmd.rb +0 -1
  24. data/lib/toji/brew/graph/progress.rb +1 -1
  25. data/lib/toji/brew/koji.rb +0 -10
  26. data/lib/toji/brew/moromi.rb +2 -36
  27. data/lib/toji/brew/shubo.rb +0 -5
  28. data/lib/toji/brew/state.rb +58 -111
  29. data/lib/toji/brew/state_wrapper.rb +135 -0
  30. data/lib/toji/calendar.rb +123 -0
  31. data/lib/toji/{schedule → calendar}/date_column.rb +3 -6
  32. data/lib/toji/{schedule → calendar}/date_row.rb +6 -6
  33. data/lib/toji/ingredient.rb +10 -0
  34. data/lib/toji/ingredient/kake.rb +17 -0
  35. data/lib/toji/ingredient/kake/actual.rb +27 -0
  36. data/lib/toji/ingredient/kake/base.rb +18 -0
  37. data/lib/toji/ingredient/kake/expected.rb +41 -0
  38. data/lib/toji/ingredient/koji.rb +19 -0
  39. data/lib/toji/ingredient/koji/actual.rb +30 -0
  40. data/lib/toji/ingredient/koji/actual_fermentable.rb +15 -0
  41. data/lib/toji/ingredient/koji/base.rb +35 -0
  42. data/lib/toji/ingredient/koji/expected.rb +46 -0
  43. data/lib/toji/ingredient/koji/expected_fermentable.rb +15 -0
  44. data/lib/toji/{recipe → ingredient}/koji_rate.rb +1 -1
  45. data/lib/toji/ingredient/rice.rb +10 -0
  46. data/lib/toji/ingredient/rice/actual_steamable.rb +27 -0
  47. data/lib/toji/ingredient/rice/base.rb +41 -0
  48. data/lib/toji/ingredient/rice/expected_steamable.rb +29 -0
  49. data/lib/toji/ingredient/rice_rate.rb +35 -0
  50. data/lib/toji/product.rb +65 -0
  51. data/lib/toji/{schedule/product_event.rb → product/event.rb} +4 -4
  52. data/lib/toji/recipe.rb +120 -5
  53. data/lib/toji/recipe/step.rb +46 -59
  54. data/lib/toji/version.rb +1 -1
  55. metadata +32 -38
  56. data/example/rice_recipe.rb +0 -28
  57. data/example/schedule.ipynb +0 -393
  58. data/example/schedule_file.ipynb +0 -337
  59. data/example/three_step_mashing_recipe.rb +0 -67
  60. data/lib/toji/brew/state_accessor.rb +0 -13
  61. data/lib/toji/brew/state_record.rb +0 -72
  62. data/lib/toji/recipe/ingredient.rb +0 -10
  63. data/lib/toji/recipe/ingredient/koji.rb +0 -21
  64. data/lib/toji/recipe/ingredient/koji/actual.rb +0 -32
  65. data/lib/toji/recipe/ingredient/koji/actual_fermentable.rb +0 -17
  66. data/lib/toji/recipe/ingredient/koji/base.rb +0 -37
  67. data/lib/toji/recipe/ingredient/koji/expected.rb +0 -48
  68. data/lib/toji/recipe/ingredient/koji/expected_fermentable.rb +0 -17
  69. data/lib/toji/recipe/ingredient/rice.rb +0 -21
  70. data/lib/toji/recipe/ingredient/rice/actual.rb +0 -29
  71. data/lib/toji/recipe/ingredient/rice/actual_steamable.rb +0 -29
  72. data/lib/toji/recipe/ingredient/rice/base.rb +0 -51
  73. data/lib/toji/recipe/ingredient/rice/expected.rb +0 -43
  74. data/lib/toji/recipe/ingredient/rice/expected_steamable.rb +0 -31
  75. data/lib/toji/recipe/ingredient/yeast.rb +0 -21
  76. data/lib/toji/recipe/rice_rate.rb +0 -10
  77. data/lib/toji/recipe/rice_rate/base.rb +0 -21
  78. data/lib/toji/recipe/rice_rate/cooked.rb +0 -67
  79. data/lib/toji/recipe/rice_rate/steamed.rb +0 -30
  80. data/lib/toji/recipe/three_step_mashing.rb +0 -274
  81. data/lib/toji/recipe/yeast_rate.rb +0 -41
  82. data/lib/toji/schedule.rb +0 -11
  83. data/lib/toji/schedule/calendar.rb +0 -139
  84. data/lib/toji/schedule/date_interval_enumerator.rb +0 -45
  85. data/lib/toji/schedule/product.rb +0 -117
@@ -1,28 +0,0 @@
1
- require 'toji'
2
- require 'terminal-table'
3
-
4
- rice = Toji::Recipe::Ingredient::Rice.expected(100, rice_rate: Toji::Recipe::RiceRate::Steamed::DEFAULT)
5
- #rice = Toji::Recipe::Ingredient::Rice.expected(100, rice_rate: Toji::Recipe::RiceRate::Cooked::DEFAULT)
6
-
7
- table = Terminal::Table.new do |t|
8
- t << ["", "分量", "白米を基準とした歩合"]
9
- t << :separator
10
- t << ["蒸米", rice.steamed&.round(2), (1.0 + rice.steamed_rate)&.round(2)]
11
- t << [" 白米", rice.raw&.round(2), 1.0]
12
- t << [" 汲水", rice.soaking_water&.round(2), rice.soaked_rate&.round(2)]
13
- end
14
- puts table
15
- puts
16
-
17
- table = Terminal::Table.new do |t|
18
- t << ["工程", "原料", "分量"]
19
- t << :separator
20
- t << ["洗米・浸漬", "白米", rice.raw&.round(2)]
21
- t << ["", "吸水増加量", rice.soaking_water&.round(2)]
22
- t << :separator
23
- t << ["水切り", "浸漬米", rice.soaked&.round(2)]
24
- t << ["", "蒸発・炊飯前の汲水", rice.steaming_water&.round(2)]
25
- t << :separator
26
- t << ["蒸し", "蒸米", rice.steamed&.round(2)]
27
- end
28
- puts table
@@ -1,393 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "metadata": {
7
- "scrolled": false
8
- },
9
- "outputs": [
10
- {
11
- "name": "stdout",
12
- "output_type": "stream",
13
- "text": [
14
- "仕1 姫野国夫による酒母省略仕込\n"
15
- ]
16
- },
17
- {
18
- "data": {
19
- "text/html": [
20
- "\n",
21
- " <script>\n",
22
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
23
- " </script>\n",
24
- "\n",
25
- "\n",
26
- "<div id=\"516412a0-4ac6-49cc-9ed5-0ab8372b69b4\" style=\"height: 100%; width: 100%;\"></div>\n",
27
- "\n",
28
- "<script>\n",
29
- " require(['plotly'], function(Plotly) { \n",
30
- "Plotly.newPlot(\n",
31
- " '516412a0-4ac6-49cc-9ed5-0ab8372b69b4',\n",
32
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[35.0,\"\",35.0,\"\",123.0,0.8],[65.0,65.0,\"\",\"\",\"\",\"\"],[200.0,150.0,50.0,\"\",200.0,\"\"],[300.0,245.0,55.0,\"\",400.0,\"\"],[\"\",\"\",\"\",\"\",128.0,\"\"],[600.0,460.0,140.0,\"\",851.0,0.8]]}}],\n",
33
- " {\"height\":350},\n",
34
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
35
- ")\n",
36
- "\n",
37
- "window.addEventListener('resize', function() {\n",
38
- " Plotly.Plots.resize(document.getElementById('516412a0-4ac6-49cc-9ed5-0ab8372b69b4'))\n",
39
- "})\n",
40
- " }) \n",
41
- "</script>"
42
- ],
43
- "text/plain": [
44
- "#<Plotly::Offline::HTML:0x00007fdea580e388 @id=\"516412a0-4ac6-49cc-9ed5-0ab8372b69b4\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :yodan, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [35.0, \"\", 35.0, \"\", 123.0, 0.8], [65.0, 65.0, \"\", \"\", \"\", \"\"], [200.0, 150.0, 50.0, \"\", 200.0, \"\"], [300.0, 245.0, 55.0, \"\", 400.0, \"\"], [\"\", \"\", \"\", \"\", 128.0, \"\"], [600.0, 460.0, 140.0, \"\", 851.0, 0.8]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
45
- ]
46
- },
47
- "metadata": {},
48
- "output_type": "display_data"
49
- },
50
- {
51
- "name": "stdout",
52
- "output_type": "stream",
53
- "text": [
54
- "仕2 姫野国夫による酒母省略仕込\n"
55
- ]
56
- },
57
- {
58
- "data": {
59
- "text/html": [
60
- "\n",
61
- " <script>\n",
62
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
63
- " </script>\n",
64
- "\n",
65
- "\n",
66
- "<div id=\"2bbb7089-b8dd-46c1-88f7-83b42bdba33a\" style=\"height: 100%; width: 100%;\"></div>\n",
67
- "\n",
68
- "<script>\n",
69
- " require(['plotly'], function(Plotly) { \n",
70
- "Plotly.newPlot(\n",
71
- " '2bbb7089-b8dd-46c1-88f7-83b42bdba33a',\n",
72
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[32.0,\"\",32.0,\"\",112.0,0.733],[60.0,60.0,\"\",\"\",\"\",\"\"],[184.0,138.0,46.0,\"\",183.0,\"\"],[275.0,225.0,50.0,\"\",367.0,\"\"],[\"\",\"\",\"\",\"\",117.0,\"\"],[551.0,423.0,128.0,\"\",779.0,0.733]]}}],\n",
73
- " {\"height\":350},\n",
74
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
75
- ")\n",
76
- "\n",
77
- "window.addEventListener('resize', function() {\n",
78
- " Plotly.Plots.resize(document.getElementById('2bbb7089-b8dd-46c1-88f7-83b42bdba33a'))\n",
79
- "})\n",
80
- " }) \n",
81
- "</script>"
82
- ],
83
- "text/plain": [
84
- "#<Plotly::Offline::HTML:0x00007fdea58b4788 @id=\"2bbb7089-b8dd-46c1-88f7-83b42bdba33a\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :yodan, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [32.0, \"\", 32.0, \"\", 112.0, 0.733], [60.0, 60.0, \"\", \"\", \"\", \"\"], [184.0, 138.0, 46.0, \"\", 183.0, \"\"], [275.0, 225.0, 50.0, \"\", 367.0, \"\"], [\"\", \"\", \"\", \"\", 117.0, \"\"], [551.0, 423.0, 128.0, \"\", 779.0, 0.733]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
85
- ]
86
- },
87
- "metadata": {},
88
- "output_type": "display_data"
89
- },
90
- {
91
- "name": "stdout",
92
- "output_type": "stream",
93
- "text": [
94
- "仕3 灘における仕込配合\n"
95
- ]
96
- },
97
- {
98
- "data": {
99
- "text/html": [
100
- "\n",
101
- " <script>\n",
102
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
103
- " </script>\n",
104
- "\n",
105
- "\n",
106
- "<div id=\"a71c4259-dcca-4528-806f-7f720eb6492a\" style=\"height: 100%; width: 100%;\"></div>\n",
107
- "\n",
108
- "<script>\n",
109
- " require(['plotly'], function(Plotly) { \n",
110
- "Plotly.newPlot(\n",
111
- " 'a71c4259-dcca-4528-806f-7f720eb6492a',\n",
112
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"alcohol\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[63.0,42.0,21.0,\"\",77.0,0.524],[143.0,98.0,45.0,\"\",122.0,\"\"],[254.0,190.0,64.0,\"\",302.0,\"\"],[440.0,366.0,74.0,\"\",599.0,\"\"],[\"\",\"\",\"\",405.0,\"\",\"\"],[900.0,696.0,204.0,405.0,1100.0,0.524]]}}],\n",
113
- " {\"height\":350},\n",
114
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
115
- ")\n",
116
- "\n",
117
- "window.addEventListener('resize', function() {\n",
118
- " Plotly.Plots.resize(document.getElementById('a71c4259-dcca-4528-806f-7f720eb6492a'))\n",
119
- "})\n",
120
- " }) \n",
121
- "</script>"
122
- ],
123
- "text/plain": [
124
- "#<Plotly::Offline::HTML:0x00007fdea39f2fe8 @id=\"a71c4259-dcca-4528-806f-7f720eb6492a\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :alcohol, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [63.0, 42.0, 21.0, \"\", 77.0, 0.524], [143.0, 98.0, 45.0, \"\", 122.0, \"\"], [254.0, 190.0, 64.0, \"\", 302.0, \"\"], [440.0, 366.0, 74.0, \"\", 599.0, \"\"], [\"\", \"\", \"\", 405.0, \"\", \"\"], [900.0, 696.0, 204.0, 405.0, 1100.0, 0.524]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
125
- ]
126
- },
127
- "metadata": {},
128
- "output_type": "display_data"
129
- },
130
- {
131
- "name": "stdout",
132
- "output_type": "stream",
133
- "text": [
134
- "仕4 酒造教本による標準型仕込配合\n"
135
- ]
136
- },
137
- {
138
- "data": {
139
- "text/html": [
140
- "\n",
141
- " <script>\n",
142
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
143
- " </script>\n",
144
- "\n",
145
- "\n",
146
- "<div id=\"a08eee03-ccb3-4c4e-9bc3-259a2d3f6094\" style=\"height: 100%; width: 100%;\"></div>\n",
147
- "\n",
148
- "<script>\n",
149
- " require(['plotly'], function(Plotly) { \n",
150
- "Plotly.newPlot(\n",
151
- " 'a08eee03-ccb3-4c4e-9bc3-259a2d3f6094',\n",
152
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[59.0,41.0,18.0,\"\",63.0,0.432],[126.0,90.0,36.0,\"\",117.0,\"\"],[248.0,194.0,54.0,\"\",297.0,\"\"],[396.0,324.0,72.0,\"\",567.0,\"\"],[72.0,72.0,\"\",\"\",108.0,\"\"],[901.0,721.0,180.0,\"\",1152.0,0.432]]}}],\n",
153
- " {\"height\":350},\n",
154
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
155
- ")\n",
156
- "\n",
157
- "window.addEventListener('resize', function() {\n",
158
- " Plotly.Plots.resize(document.getElementById('a08eee03-ccb3-4c4e-9bc3-259a2d3f6094'))\n",
159
- "})\n",
160
- " }) \n",
161
- "</script>"
162
- ],
163
- "text/plain": [
164
- "#<Plotly::Offline::HTML:0x00007fdea59b2ef0 @id=\"a08eee03-ccb3-4c4e-9bc3-259a2d3f6094\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :yodan, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [59.0, 41.0, 18.0, \"\", 63.0, 0.432], [126.0, 90.0, 36.0, \"\", 117.0, \"\"], [248.0, 194.0, 54.0, \"\", 297.0, \"\"], [396.0, 324.0, 72.0, \"\", 567.0, \"\"], [72.0, 72.0, \"\", \"\", 108.0, \"\"], [901.0, 721.0, 180.0, \"\", 1152.0, 0.432]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
165
- ]
166
- },
167
- "metadata": {},
168
- "output_type": "display_data"
169
- },
170
- {
171
- "name": "stdout",
172
- "output_type": "stream",
173
- "text": [
174
- "仕5 灘における仕込配合\n"
175
- ]
176
- },
177
- {
178
- "data": {
179
- "text/html": [
180
- "\n",
181
- " <script>\n",
182
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
183
- " </script>\n",
184
- "\n",
185
- "\n",
186
- "<div id=\"eacc12b9-d658-423d-9628-a4a4c94eb78d\" style=\"height: 100%; width: 100%;\"></div>\n",
187
- "\n",
188
- "<script>\n",
189
- " require(['plotly'], function(Plotly) { \n",
190
- "Plotly.newPlot(\n",
191
- " 'eacc12b9-d658-423d-9628-a4a4c94eb78d',\n",
192
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"alcohol\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[63.0,42.0,21.0,\"\",77.0,0.524],[143.0,98.0,45.0,\"\",122.0,\"\"],[254.0,190.0,64.0,\"\",302.0,\"\"],[440.0,366.0,74.0,\"\",599.0,\"\"],[\"\",\"\",\"\",405.0,\"\",\"\"],[900.0,696.0,204.0,405.0,1100.0,0.524]]}}],\n",
193
- " {\"height\":350},\n",
194
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
195
- ")\n",
196
- "\n",
197
- "window.addEventListener('resize', function() {\n",
198
- " Plotly.Plots.resize(document.getElementById('eacc12b9-d658-423d-9628-a4a4c94eb78d'))\n",
199
- "})\n",
200
- " }) \n",
201
- "</script>"
202
- ],
203
- "text/plain": [
204
- "#<Plotly::Offline::HTML:0x00007fdea3a68c98 @id=\"eacc12b9-d658-423d-9628-a4a4c94eb78d\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :alcohol, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [63.0, 42.0, 21.0, \"\", 77.0, 0.524], [143.0, 98.0, 45.0, \"\", 122.0, \"\"], [254.0, 190.0, 64.0, \"\", 302.0, \"\"], [440.0, 366.0, 74.0, \"\", 599.0, \"\"], [\"\", \"\", \"\", 405.0, \"\", \"\"], [900.0, 696.0, 204.0, 405.0, 1100.0, 0.524]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
205
- ]
206
- },
207
- "metadata": {},
208
- "output_type": "display_data"
209
- },
210
- {
211
- "name": "stdout",
212
- "output_type": "stream",
213
- "text": [
214
- "仕6 酒造教本による標準型仕込配合\n"
215
- ]
216
- },
217
- {
218
- "data": {
219
- "text/html": [
220
- "\n",
221
- " <script>\n",
222
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
223
- " </script>\n",
224
- "\n",
225
- "\n",
226
- "<div id=\"b9197332-3f45-44c9-868a-24264d2d3d90\" style=\"height: 100%; width: 100%;\"></div>\n",
227
- "\n",
228
- "<script>\n",
229
- " require(['plotly'], function(Plotly) { \n",
230
- "Plotly.newPlot(\n",
231
- " 'b9197332-3f45-44c9-868a-24264d2d3d90',\n",
232
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[59.0,41.0,18.0,\"\",63.0,0.432],[126.0,90.0,36.0,\"\",117.0,\"\"],[248.0,194.0,54.0,\"\",297.0,\"\"],[396.0,324.0,72.0,\"\",567.0,\"\"],[72.0,72.0,\"\",\"\",108.0,\"\"],[901.0,721.0,180.0,\"\",1152.0,0.432]]}}],\n",
233
- " {\"height\":350},\n",
234
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
235
- ")\n",
236
- "\n",
237
- "window.addEventListener('resize', function() {\n",
238
- " Plotly.Plots.resize(document.getElementById('b9197332-3f45-44c9-868a-24264d2d3d90'))\n",
239
- "})\n",
240
- " }) \n",
241
- "</script>"
242
- ],
243
- "text/plain": [
244
- "#<Plotly::Offline::HTML:0x00007fdea3aca6c8 @id=\"b9197332-3f45-44c9-868a-24264d2d3d90\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :yodan, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [59.0, 41.0, 18.0, \"\", 63.0, 0.432], [126.0, 90.0, 36.0, \"\", 117.0, \"\"], [248.0, 194.0, 54.0, \"\", 297.0, \"\"], [396.0, 324.0, 72.0, \"\", 567.0, \"\"], [72.0, 72.0, \"\", \"\", 108.0, \"\"], [901.0, 721.0, 180.0, \"\", 1152.0, 0.432]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
245
- ]
246
- },
247
- "metadata": {},
248
- "output_type": "display_data"
249
- },
250
- {
251
- "data": {
252
- "text/html": [
253
- "\n",
254
- " <script>\n",
255
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
256
- " </script>\n",
257
- "\n",
258
- "\n",
259
- "<div id=\"6227ffb4-4516-45f9-9b7c-5eb2e11a8095\" style=\"height: 100%; width: 100%;\"></div>\n",
260
- "\n",
261
- "<script>\n",
262
- " require(['plotly'], function(Plotly) { \n",
263
- "Plotly.newPlot(\n",
264
- " '6227ffb4-4516-45f9-9b7c-5eb2e11a8095',\n",
265
- " [{\"type\":\"table\",\"header\":{\"values\":[\"date\",\"moto_koji\",\"moromi_koji\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\"]},\"cells\":{\"values\":[[\"02/20\",\"02/21\",\"02/22\",\"02/23\",\"02/24\",\"02/25\",\"02/26\",\"02/27\",\"02/28\",\"02/29\",\"03/01\",\"03/02\",\"03/03\",\"03/04\",\"03/05\",\"03/06\",\"03/07\",\"03/08\",\"03/09\",\"03/10\",\"03/11\",\"03/12\",\"03/13\",\"03/14\",\"03/15\",\"03/16\",\"03/17\",\"03/18\",\"03/19\",\"03/20\",\"03/21\",\"03/22\"],[\"仕3: 21\\u003cbr\\u003e仕4: 18\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕5: 21\\u003cbr\\u003e仕6: 18\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"仕1: 140\",\"\",\"\",\"仕2: 128\",\"\",\"\",\"\",\"仕3: 183\",\"\",\"\",\"仕4: 162\",\"\",\"\",\"\",\"仕5: 183\",\"\",\"\",\"仕6: 162\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"仕3: 42\\u003cbr\\u003e仕4: 41\",\"\",\"\",\"\",\"\",\"仕1: 0\",\"\",\"仕2: 0\\u003cbr\\u003e仕5: 42\\u003cbr\\u003e仕6: 41\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕1: 65\",\"\",\"仕2: 60\",\"\",\"\",\"\",\"\",\"仕3: 98\",\"\",\"仕4: 90\",\"\",\"\",\"\",\"\",\"仕5: 98\",\"\",\"仕6: 90\",\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕1: 150\",\"\",\"\",\"仕2: 138\",\"\",\"\",\"\",\"仕3: 190\",\"\",\"仕4: 194\",\"\",\"\",\"\",\"\",\"仕5: 190\",\"\",\"仕6: 194\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕1: 245\",\"\",\"\",\"仕2: 225\",\"\",\"\",\"\",\"仕3: 366\",\"\",\"仕4: 324\",\"\",\"\",\"\",\"\",\"仕5: 366\",\"\",\"仕6: 324\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕4: 72\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕6: 72\"]]}}],\n",
266
- " {\"height\":1000},\n",
267
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
268
- ")\n",
269
- "\n",
270
- "window.addEventListener('resize', function() {\n",
271
- " Plotly.Plots.resize(document.getElementById('6227ffb4-4516-45f9-9b7c-5eb2e11a8095'))\n",
272
- "})\n",
273
- " }) \n",
274
- "</script>"
275
- ],
276
- "text/plain": [
277
- "#<Plotly::Offline::HTML:0x00007fdea5a22890 @id=\"6227ffb4-4516-45f9-9b7c-5eb2e11a8095\", @data=[{:type=>:table, :header=>{:values=>[:date, :moto_koji, :moromi_koji, :moto, :soe, :naka, :tome, :yodan]}, :cells=>{:values=>[[\"02/20\", \"02/21\", \"02/22\", \"02/23\", \"02/24\", \"02/25\", \"02/26\", \"02/27\", \"02/28\", \"02/29\", \"03/01\", \"03/02\", \"03/03\", \"03/04\", \"03/05\", \"03/06\", \"03/07\", \"03/08\", \"03/09\", \"03/10\", \"03/11\", \"03/12\", \"03/13\", \"03/14\", \"03/15\", \"03/16\", \"03/17\", \"03/18\", \"03/19\", \"03/20\", \"03/21\", \"03/22\"], [\"仕3: 21<br>仕4: 18\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕5: 21<br>仕6: 18\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"仕1: 140\", \"\", \"\", \"仕2: 128\", \"\", \"\", \"\", \"仕3: 183\", \"\", \"\", \"仕4: 162\", \"\", \"\", \"\", \"仕5: 183\", \"\", \"\", \"仕6: 162\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"仕3: 42<br>仕4: 41\", \"\", \"\", \"\", \"\", \"仕1: 0\", \"\", \"仕2: 0<br>仕5: 42<br>仕6: 41\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕1: 65\", \"\", \"仕2: 60\", \"\", \"\", \"\", \"\", \"仕3: 98\", \"\", \"仕4: 90\", \"\", \"\", \"\", \"\", \"仕5: 98\", \"\", \"仕6: 90\", \"\", \"\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕1: 150\", \"\", \"\", \"仕2: 138\", \"\", \"\", \"\", \"仕3: 190\", \"\", \"仕4: 194\", \"\", \"\", \"\", \"\", \"仕5: 190\", \"\", \"仕6: 194\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕1: 245\", \"\", \"\", \"仕2: 225\", \"\", \"\", \"\", \"仕3: 366\", \"\", \"仕4: 324\", \"\", \"\", \"\", \"\", \"仕5: 366\", \"\", \"仕6: 324\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕4: 72\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕6: 72\"]]}}], @layout={:height=>1000}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
278
- ]
279
- },
280
- "metadata": {},
281
- "output_type": "display_data"
282
- },
283
- {
284
- "data": {
285
- "text/plain": [
286
- "#<CZTop::Socket::PUB:0x7fdea7883bf0 last_endpoint=\"tcp://127.0.0.1:54635\">"
287
- ]
288
- },
289
- "execution_count": 1,
290
- "metadata": {},
291
- "output_type": "execute_result"
292
- }
293
- ],
294
- "source": [
295
- "$LOAD_PATH << File.dirname(__FILE__) + \"/../lib\"\n",
296
- "require 'toji'\n",
297
- "require 'rbplotly'\n",
298
- "\n",
299
- "cal = Toji::Schedule::Calendar.new\n",
300
- ".add(Toji::Schedule::Product.create(\n",
301
- " name: \"仕1\",\n",
302
- " description: \"姫野国夫による酒母省略仕込\",\n",
303
- " recipe: :simple_sokujo_himeno,\n",
304
- " scale: 600,\n",
305
- " round: 0,\n",
306
- " koji_dates: Time.mktime(2020, 2, 24),\n",
307
- " rice_dates: Time.mktime(2020, 3, 1),\n",
308
- " moto_days: 1,\n",
309
- " odori_days: 1\n",
310
- "))\n",
311
- ".add(Toji::Schedule::Product.create(\n",
312
- " name: \"仕2\",\n",
313
- " description: \"姫野国夫による酒母省略仕込\",\n",
314
- " recipe: :simple_sokujo_himeno,\n",
315
- " scale: 550,\n",
316
- " round: 0,\n",
317
- " koji_dates: Time.mktime(2020, 2, 27),\n",
318
- " rice_dates: Time.mktime(2020, 3, 3)\n",
319
- "))\n",
320
- ".add(Toji::Schedule::Product.create(\n",
321
- " name: \"仕3\",\n",
322
- " description: \"灘における仕込配合\",\n",
323
- " recipe: :sokujo_nada,\n",
324
- " scale: 900,\n",
325
- " round: 0,\n",
326
- " koji_dates: [Time.mktime(2020, 2, 20), Time.mktime(2020, 3, 2)],\n",
327
- " rice_dates: [Time.mktime(2020, 2, 25), Time.mktime(2020, 3, 9)]\n",
328
- "))\n",
329
- ".add(Toji::Schedule::Product.create(\n",
330
- " name: \"仕4\",\n",
331
- " description: \"酒造教本による標準型仕込配合\",\n",
332
- " recipe: :sokujo_textbook,\n",
333
- " scale: 900,\n",
334
- " round: 0,\n",
335
- " koji_dates: [Time.mktime(2020, 2, 20), Time.mktime(2020, 3, 5)],\n",
336
- " rice_dates: [Time.mktime(2020, 2, 25), Time.mktime(2020, 3, 11)]\n",
337
- "))\n",
338
- ".add(Toji::Schedule::Product.create(\n",
339
- " name: \"仕5\",\n",
340
- " description: \"灘における仕込配合\",\n",
341
- " recipe: :sokujo_nada,\n",
342
- " scale: 900,\n",
343
- " round: 0,\n",
344
- " koji_dates: [Time.mktime(2020, 2, 27), Time.mktime(2020, 3, 9)],\n",
345
- " rice_dates: [Time.mktime(2020, 3, 3), Time.mktime(2020, 3, 16)]\n",
346
- "))\n",
347
- ".add(Toji::Schedule::Product.create(\n",
348
- " name: \"仕6\",\n",
349
- " description: \"酒造教本による標準型仕込配合\",\n",
350
- " recipe: :sokujo_textbook,\n",
351
- " scale: 900,\n",
352
- " round: 0,\n",
353
- " koji_dates: [Time.mktime(2020, 2, 27), Time.mktime(2020, 3, 12)],\n",
354
- " rice_dates: [Time.mktime(2020, 3, 3), Time.mktime(2020, 3, 18)]\n",
355
- "))\n",
356
- "\n",
357
- "cal.products.each {|product|\n",
358
- " puts \"%s %s\" % [product.name, product.description]\n",
359
- " \n",
360
- " product.recipe.table.tap {|t|\n",
361
- " t.layout.height = 350\n",
362
- " }.show\n",
363
- "}\n",
364
- "\n",
365
- "cal.table.tap {|t|\n",
366
- " t.layout.height = 1000\n",
367
- "}.show"
368
- ]
369
- },
370
- {
371
- "cell_type": "code",
372
- "execution_count": null,
373
- "metadata": {},
374
- "outputs": [],
375
- "source": []
376
- }
377
- ],
378
- "metadata": {
379
- "kernelspec": {
380
- "display_name": "Ruby 2.7.0",
381
- "language": "ruby",
382
- "name": "ruby"
383
- },
384
- "language_info": {
385
- "file_extension": ".rb",
386
- "mimetype": "application/x-ruby",
387
- "name": "ruby",
388
- "version": "2.6.3"
389
- }
390
- },
391
- "nbformat": 4,
392
- "nbformat_minor": 2
393
- }
@@ -1,337 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 3,
6
- "metadata": {
7
- "scrolled": false
8
- },
9
- "outputs": [
10
- {
11
- "name": "stdout",
12
- "output_type": "stream",
13
- "text": [
14
- "仕1 姫野国夫による酒母省略仕込\n"
15
- ]
16
- },
17
- {
18
- "data": {
19
- "text/html": [
20
- "\n",
21
- " <script>\n",
22
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
23
- " </script>\n",
24
- "\n",
25
- "\n",
26
- "<div id=\"39130064-7a13-4f3e-b33a-3bc1b965112b\" style=\"height: 100%; width: 100%;\"></div>\n",
27
- "\n",
28
- "<script>\n",
29
- " require(['plotly'], function(Plotly) { \n",
30
- "Plotly.newPlot(\n",
31
- " '39130064-7a13-4f3e-b33a-3bc1b965112b',\n",
32
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[35.0,\"\",35.0,\"\",123.0,0.8],[65.0,65.0,\"\",\"\",\"\",\"\"],[200.0,150.0,50.0,\"\",200.0,\"\"],[300.0,245.0,55.0,\"\",400.0,\"\"],[\"\",\"\",\"\",\"\",128.0,\"\"],[600.0,460.0,140.0,\"\",851.0,0.8]]}}],\n",
33
- " {\"height\":350},\n",
34
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
35
- ")\n",
36
- "\n",
37
- "window.addEventListener('resize', function() {\n",
38
- " Plotly.Plots.resize(document.getElementById('39130064-7a13-4f3e-b33a-3bc1b965112b'))\n",
39
- "})\n",
40
- " }) \n",
41
- "</script>"
42
- ],
43
- "text/plain": [
44
- "#<Plotly::Offline::HTML:0x00007f9f66a736d8 @id=\"39130064-7a13-4f3e-b33a-3bc1b965112b\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :yodan, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [35.0, \"\", 35.0, \"\", 123.0, 0.8], [65.0, 65.0, \"\", \"\", \"\", \"\"], [200.0, 150.0, 50.0, \"\", 200.0, \"\"], [300.0, 245.0, 55.0, \"\", 400.0, \"\"], [\"\", \"\", \"\", \"\", 128.0, \"\"], [600.0, 460.0, 140.0, \"\", 851.0, 0.8]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
45
- ]
46
- },
47
- "metadata": {},
48
- "output_type": "display_data"
49
- },
50
- {
51
- "name": "stdout",
52
- "output_type": "stream",
53
- "text": [
54
- "仕2 姫野国夫による酒母省略仕込\n"
55
- ]
56
- },
57
- {
58
- "data": {
59
- "text/html": [
60
- "\n",
61
- " <script>\n",
62
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
63
- " </script>\n",
64
- "\n",
65
- "\n",
66
- "<div id=\"2ed48f7b-70a7-4bd1-ae81-828cbfa7f566\" style=\"height: 100%; width: 100%;\"></div>\n",
67
- "\n",
68
- "<script>\n",
69
- " require(['plotly'], function(Plotly) { \n",
70
- "Plotly.newPlot(\n",
71
- " '2ed48f7b-70a7-4bd1-ae81-828cbfa7f566',\n",
72
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[32.0,\"\",32.0,\"\",112.0,0.733],[60.0,60.0,\"\",\"\",\"\",\"\"],[184.0,138.0,46.0,\"\",183.0,\"\"],[275.0,225.0,50.0,\"\",367.0,\"\"],[\"\",\"\",\"\",\"\",117.0,\"\"],[551.0,423.0,128.0,\"\",779.0,0.733]]}}],\n",
73
- " {\"height\":350},\n",
74
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
75
- ")\n",
76
- "\n",
77
- "window.addEventListener('resize', function() {\n",
78
- " Plotly.Plots.resize(document.getElementById('2ed48f7b-70a7-4bd1-ae81-828cbfa7f566'))\n",
79
- "})\n",
80
- " }) \n",
81
- "</script>"
82
- ],
83
- "text/plain": [
84
- "#<Plotly::Offline::HTML:0x00007f9f66aa4418 @id=\"2ed48f7b-70a7-4bd1-ae81-828cbfa7f566\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :yodan, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [32.0, \"\", 32.0, \"\", 112.0, 0.733], [60.0, 60.0, \"\", \"\", \"\", \"\"], [184.0, 138.0, 46.0, \"\", 183.0, \"\"], [275.0, 225.0, 50.0, \"\", 367.0, \"\"], [\"\", \"\", \"\", \"\", 117.0, \"\"], [551.0, 423.0, 128.0, \"\", 779.0, 0.733]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
85
- ]
86
- },
87
- "metadata": {},
88
- "output_type": "display_data"
89
- },
90
- {
91
- "name": "stdout",
92
- "output_type": "stream",
93
- "text": [
94
- "仕3 灘における仕込配合\n"
95
- ]
96
- },
97
- {
98
- "data": {
99
- "text/html": [
100
- "\n",
101
- " <script>\n",
102
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
103
- " </script>\n",
104
- "\n",
105
- "\n",
106
- "<div id=\"7798a74d-847a-4159-ba5c-50680a26309e\" style=\"height: 100%; width: 100%;\"></div>\n",
107
- "\n",
108
- "<script>\n",
109
- " require(['plotly'], function(Plotly) { \n",
110
- "Plotly.newPlot(\n",
111
- " '7798a74d-847a-4159-ba5c-50680a26309e',\n",
112
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"alcohol\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[63.0,42.0,21.0,\"\",77.0,0.524],[143.0,98.0,45.0,\"\",122.0,\"\"],[254.0,190.0,64.0,\"\",302.0,\"\"],[440.0,366.0,74.0,\"\",599.0,\"\"],[\"\",\"\",\"\",405.0,\"\",\"\"],[900.0,696.0,204.0,405.0,1100.0,0.524]]}}],\n",
113
- " {\"height\":350},\n",
114
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
115
- ")\n",
116
- "\n",
117
- "window.addEventListener('resize', function() {\n",
118
- " Plotly.Plots.resize(document.getElementById('7798a74d-847a-4159-ba5c-50680a26309e'))\n",
119
- "})\n",
120
- " }) \n",
121
- "</script>"
122
- ],
123
- "text/plain": [
124
- "#<Plotly::Offline::HTML:0x00007f9f64356190 @id=\"7798a74d-847a-4159-ba5c-50680a26309e\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :alcohol, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [63.0, 42.0, 21.0, \"\", 77.0, 0.524], [143.0, 98.0, 45.0, \"\", 122.0, \"\"], [254.0, 190.0, 64.0, \"\", 302.0, \"\"], [440.0, 366.0, 74.0, \"\", 599.0, \"\"], [\"\", \"\", \"\", 405.0, \"\", \"\"], [900.0, 696.0, 204.0, 405.0, 1100.0, 0.524]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
125
- ]
126
- },
127
- "metadata": {},
128
- "output_type": "display_data"
129
- },
130
- {
131
- "name": "stdout",
132
- "output_type": "stream",
133
- "text": [
134
- "仕4 酒造教本による標準型仕込配合\n"
135
- ]
136
- },
137
- {
138
- "data": {
139
- "text/html": [
140
- "\n",
141
- " <script>\n",
142
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
143
- " </script>\n",
144
- "\n",
145
- "\n",
146
- "<div id=\"24cc1c11-7b4e-4d22-99f6-e83c76860db3\" style=\"height: 100%; width: 100%;\"></div>\n",
147
- "\n",
148
- "<script>\n",
149
- " require(['plotly'], function(Plotly) { \n",
150
- "Plotly.newPlot(\n",
151
- " '24cc1c11-7b4e-4d22-99f6-e83c76860db3',\n",
152
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[59.0,41.0,18.0,\"\",63.0,0.432],[126.0,90.0,36.0,\"\",117.0,\"\"],[248.0,194.0,54.0,\"\",297.0,\"\"],[396.0,324.0,72.0,\"\",567.0,\"\"],[72.0,72.0,\"\",\"\",108.0,\"\"],[901.0,721.0,180.0,\"\",1152.0,0.432]]}}],\n",
153
- " {\"height\":350},\n",
154
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
155
- ")\n",
156
- "\n",
157
- "window.addEventListener('resize', function() {\n",
158
- " Plotly.Plots.resize(document.getElementById('24cc1c11-7b4e-4d22-99f6-e83c76860db3'))\n",
159
- "})\n",
160
- " }) \n",
161
- "</script>"
162
- ],
163
- "text/plain": [
164
- "#<Plotly::Offline::HTML:0x00007f9f643864f8 @id=\"24cc1c11-7b4e-4d22-99f6-e83c76860db3\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :yodan, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [59.0, 41.0, 18.0, \"\", 63.0, 0.432], [126.0, 90.0, 36.0, \"\", 117.0, \"\"], [248.0, 194.0, 54.0, \"\", 297.0, \"\"], [396.0, 324.0, 72.0, \"\", 567.0, \"\"], [72.0, 72.0, \"\", \"\", 108.0, \"\"], [901.0, 721.0, 180.0, \"\", 1152.0, 0.432]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
165
- ]
166
- },
167
- "metadata": {},
168
- "output_type": "display_data"
169
- },
170
- {
171
- "name": "stdout",
172
- "output_type": "stream",
173
- "text": [
174
- "仕5 灘における仕込配合\n"
175
- ]
176
- },
177
- {
178
- "data": {
179
- "text/html": [
180
- "\n",
181
- " <script>\n",
182
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
183
- " </script>\n",
184
- "\n",
185
- "\n",
186
- "<div id=\"ca599c2f-3651-4ffa-81c5-47869735f251\" style=\"height: 100%; width: 100%;\"></div>\n",
187
- "\n",
188
- "<script>\n",
189
- " require(['plotly'], function(Plotly) { \n",
190
- "Plotly.newPlot(\n",
191
- " 'ca599c2f-3651-4ffa-81c5-47869735f251',\n",
192
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"alcohol\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[63.0,42.0,21.0,\"\",77.0,0.524],[143.0,98.0,45.0,\"\",122.0,\"\"],[254.0,190.0,64.0,\"\",302.0,\"\"],[440.0,366.0,74.0,\"\",599.0,\"\"],[\"\",\"\",\"\",405.0,\"\",\"\"],[900.0,696.0,204.0,405.0,1100.0,0.524]]}}],\n",
193
- " {\"height\":350},\n",
194
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
195
- ")\n",
196
- "\n",
197
- "window.addEventListener('resize', function() {\n",
198
- " Plotly.Plots.resize(document.getElementById('ca599c2f-3651-4ffa-81c5-47869735f251'))\n",
199
- "})\n",
200
- " }) \n",
201
- "</script>"
202
- ],
203
- "text/plain": [
204
- "#<Plotly::Offline::HTML:0x00007f9f66aede10 @id=\"ca599c2f-3651-4ffa-81c5-47869735f251\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :alcohol, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [63.0, 42.0, 21.0, \"\", 77.0, 0.524], [143.0, 98.0, 45.0, \"\", 122.0, \"\"], [254.0, 190.0, 64.0, \"\", 302.0, \"\"], [440.0, 366.0, 74.0, \"\", 599.0, \"\"], [\"\", \"\", \"\", 405.0, \"\", \"\"], [900.0, 696.0, 204.0, 405.0, 1100.0, 0.524]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
205
- ]
206
- },
207
- "metadata": {},
208
- "output_type": "display_data"
209
- },
210
- {
211
- "name": "stdout",
212
- "output_type": "stream",
213
- "text": [
214
- "仕6 酒造教本による標準型仕込配合\n"
215
- ]
216
- },
217
- {
218
- "data": {
219
- "text/html": [
220
- "\n",
221
- " <script>\n",
222
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
223
- " </script>\n",
224
- "\n",
225
- "\n",
226
- "<div id=\"8e361747-1c89-45d0-b67a-9e8b300479c8\" style=\"height: 100%; width: 100%;\"></div>\n",
227
- "\n",
228
- "<script>\n",
229
- " require(['plotly'], function(Plotly) { \n",
230
- "Plotly.newPlot(\n",
231
- " '8e361747-1c89-45d0-b67a-9e8b300479c8',\n",
232
- " [{\"type\":\"table\",\"header\":{\"values\":[\"\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\",\"total\"]},\"cells\":{\"values\":[[\"rice_total\",\"rice\",\"koji\",\"alcohol\",\"water\",\"lactic_acid\"],[59.0,41.0,18.0,\"\",63.0,0.432],[126.0,90.0,36.0,\"\",117.0,\"\"],[248.0,194.0,54.0,\"\",297.0,\"\"],[396.0,324.0,72.0,\"\",567.0,\"\"],[72.0,72.0,\"\",\"\",108.0,\"\"],[901.0,721.0,180.0,\"\",1152.0,0.432]]}}],\n",
233
- " {\"height\":350},\n",
234
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
235
- ")\n",
236
- "\n",
237
- "window.addEventListener('resize', function() {\n",
238
- " Plotly.Plots.resize(document.getElementById('8e361747-1c89-45d0-b67a-9e8b300479c8'))\n",
239
- "})\n",
240
- " }) \n",
241
- "</script>"
242
- ],
243
- "text/plain": [
244
- "#<Plotly::Offline::HTML:0x00007f9f66b1d688 @id=\"8e361747-1c89-45d0-b67a-9e8b300479c8\", @data=[{:type=>:table, :header=>{:values=>[\"\", :moto, :soe, :naka, :tome, :yodan, :total]}, :cells=>{:values=>[[:rice_total, :rice, :koji, :alcohol, :water, :lactic_acid], [59.0, 41.0, 18.0, \"\", 63.0, 0.432], [126.0, 90.0, 36.0, \"\", 117.0, \"\"], [248.0, 194.0, 54.0, \"\", 297.0, \"\"], [396.0, 324.0, 72.0, \"\", 567.0, \"\"], [72.0, 72.0, \"\", \"\", 108.0, \"\"], [901.0, 721.0, 180.0, \"\", 1152.0, 0.432]]}}], @layout={:height=>350}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
245
- ]
246
- },
247
- "metadata": {},
248
- "output_type": "display_data"
249
- },
250
- {
251
- "data": {
252
- "text/html": [
253
- "\n",
254
- " <script>\n",
255
- " requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})\n",
256
- " </script>\n",
257
- "\n",
258
- "\n",
259
- "<div id=\"49661286-297c-4903-b104-ec162ad2613a\" style=\"height: 100%; width: 100%;\"></div>\n",
260
- "\n",
261
- "<script>\n",
262
- " require(['plotly'], function(Plotly) { \n",
263
- "Plotly.newPlot(\n",
264
- " '49661286-297c-4903-b104-ec162ad2613a',\n",
265
- " [{\"type\":\"table\",\"header\":{\"values\":[\"date\",\"moto_koji\",\"moromi_koji\",\"moto\",\"soe\",\"naka\",\"tome\",\"yodan\"]},\"cells\":{\"values\":[[\"02/20\",\"02/21\",\"02/22\",\"02/23\",\"02/24\",\"02/25\",\"02/26\",\"02/27\",\"02/28\",\"02/29\",\"03/01\",\"03/02\",\"03/03\",\"03/04\",\"03/05\",\"03/06\",\"03/07\",\"03/08\",\"03/09\",\"03/10\",\"03/11\",\"03/12\",\"03/13\",\"03/14\",\"03/15\",\"03/16\",\"03/17\",\"03/18\",\"03/19\",\"03/20\",\"03/21\",\"03/22\"],[\"仕3: 21\\u003cbr\\u003e仕4: 18\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕5: 21\\u003cbr\\u003e仕6: 18\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"仕1: 140\",\"\",\"\",\"仕2: 128\",\"\",\"\",\"\",\"仕3: 183\",\"\",\"\",\"仕4: 162\",\"\",\"\",\"\",\"仕5: 183\",\"\",\"\",\"仕6: 162\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"仕3: 42\\u003cbr\\u003e仕4: 41\",\"\",\"\",\"\",\"\",\"仕1: 0\",\"\",\"仕2: 0\\u003cbr\\u003e仕5: 42\\u003cbr\\u003e仕6: 41\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕1: 65\",\"\",\"仕2: 60\",\"\",\"\",\"\",\"\",\"仕3: 98\",\"\",\"仕4: 90\",\"\",\"\",\"\",\"\",\"仕5: 98\",\"\",\"仕6: 90\",\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕1: 150\",\"\",\"\",\"仕2: 138\",\"\",\"\",\"\",\"仕3: 190\",\"\",\"仕4: 194\",\"\",\"\",\"\",\"\",\"仕5: 190\",\"\",\"仕6: 194\",\"\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕1: 245\",\"\",\"\",\"仕2: 225\",\"\",\"\",\"\",\"仕3: 366\",\"\",\"仕4: 324\",\"\",\"\",\"\",\"\",\"仕5: 366\",\"\",\"仕6: 324\",\"\"],[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕4: 72\",\"\",\"\",\"\",\"\",\"\",\"\",\"仕6: 72\"]]}}],\n",
266
- " {\"height\":1000},\n",
267
- " {\"linkText\":\"Export to plot.ly\",\"showLink\":true}\n",
268
- ")\n",
269
- "\n",
270
- "window.addEventListener('resize', function() {\n",
271
- " Plotly.Plots.resize(document.getElementById('49661286-297c-4903-b104-ec162ad2613a'))\n",
272
- "})\n",
273
- " }) \n",
274
- "</script>"
275
- ],
276
- "text/plain": [
277
- "#<Plotly::Offline::HTML:0x00007f9f639ab050 @id=\"49661286-297c-4903-b104-ec162ad2613a\", @data=[{:type=>:table, :header=>{:values=>[:date, :moto_koji, :moromi_koji, :moto, :soe, :naka, :tome, :yodan]}, :cells=>{:values=>[[\"02/20\", \"02/21\", \"02/22\", \"02/23\", \"02/24\", \"02/25\", \"02/26\", \"02/27\", \"02/28\", \"02/29\", \"03/01\", \"03/02\", \"03/03\", \"03/04\", \"03/05\", \"03/06\", \"03/07\", \"03/08\", \"03/09\", \"03/10\", \"03/11\", \"03/12\", \"03/13\", \"03/14\", \"03/15\", \"03/16\", \"03/17\", \"03/18\", \"03/19\", \"03/20\", \"03/21\", \"03/22\"], [\"仕3: 21<br>仕4: 18\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕5: 21<br>仕6: 18\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"仕1: 140\", \"\", \"\", \"仕2: 128\", \"\", \"\", \"\", \"仕3: 183\", \"\", \"\", \"仕4: 162\", \"\", \"\", \"\", \"仕5: 183\", \"\", \"\", \"仕6: 162\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"仕3: 42<br>仕4: 41\", \"\", \"\", \"\", \"\", \"仕1: 0\", \"\", \"仕2: 0<br>仕5: 42<br>仕6: 41\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕1: 65\", \"\", \"仕2: 60\", \"\", \"\", \"\", \"\", \"仕3: 98\", \"\", \"仕4: 90\", \"\", \"\", \"\", \"\", \"仕5: 98\", \"\", \"仕6: 90\", \"\", \"\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕1: 150\", \"\", \"\", \"仕2: 138\", \"\", \"\", \"\", \"仕3: 190\", \"\", \"仕4: 194\", \"\", \"\", \"\", \"\", \"仕5: 190\", \"\", \"仕6: 194\", \"\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕1: 245\", \"\", \"\", \"仕2: 225\", \"\", \"\", \"\", \"仕3: 366\", \"\", \"仕4: 324\", \"\", \"\", \"\", \"\", \"仕5: 366\", \"\", \"仕6: 324\", \"\"], [\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕4: 72\", \"\", \"\", \"\", \"\", \"\", \"\", \"仕6: 72\"]]}}], @layout={:height=>1000}, @config={:linkText=>\"Export to plot.ly\", :showLink=>true}, @embedded=true>"
278
- ]
279
- },
280
- "metadata": {},
281
- "output_type": "display_data"
282
- },
283
- {
284
- "data": {
285
- "text/plain": [
286
- "#<CZTop::Socket::PUB:0x7f9f6818f480 last_endpoint=\"tcp://127.0.0.1:49446\">"
287
- ]
288
- },
289
- "execution_count": 3,
290
- "metadata": {},
291
- "output_type": "execute_result"
292
- }
293
- ],
294
- "source": [
295
- "$LOAD_PATH << File.dirname(__FILE__) + \"/../lib\"\n",
296
- "require 'toji'\n",
297
- "require 'rbplotly'\n",
298
- "\n",
299
- "cal = Toji::Schedule::Calendar.load_yaml_file(\"schedule.yaml\")\n",
300
- "\n",
301
- "cal.products.each {|product|\n",
302
- " puts \"%s %s\" % [product.name, product.description]\n",
303
- " \n",
304
- " product.recipe.table.tap {|t|\n",
305
- " t.layout.height = 350\n",
306
- " }.show\n",
307
- "}\n",
308
- "\n",
309
- "cal.table.tap {|t|\n",
310
- " t.layout.height = 1000\n",
311
- "}.show"
312
- ]
313
- },
314
- {
315
- "cell_type": "code",
316
- "execution_count": null,
317
- "metadata": {},
318
- "outputs": [],
319
- "source": []
320
- }
321
- ],
322
- "metadata": {
323
- "kernelspec": {
324
- "display_name": "Ruby 2.7.0",
325
- "language": "ruby",
326
- "name": "ruby"
327
- },
328
- "language_info": {
329
- "file_extension": ".rb",
330
- "mimetype": "application/x-ruby",
331
- "name": "ruby",
332
- "version": "2.6.3"
333
- }
334
- },
335
- "nbformat": 4,
336
- "nbformat_minor": 2
337
- }