toji 2.15.0 → 2.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 992db213aef7df46ad7fb1daf6bdaacf6ef74aa753a5ca9bd3538d808ff55335
4
- data.tar.gz: ea97a83429363cbe1437433a3abacb51132d2107100ff0e920c2f577970ad548
3
+ metadata.gz: a6ad4bdc7122ba4ec4f2adcbc6195053ea360234c584ffe253bb4a622f4f8cda
4
+ data.tar.gz: 78eee224e64461812fa9afdebb2f524277617c361148b810c58abc70438099bc
5
5
  SHA512:
6
- metadata.gz: 659b02383e2cd9b5014447a5c05227179949b96cb8d899a9828bf486bb42a34658507e6ea12b0f6e1ae150b313837add6f6cf7e558847ddbcc8a1e077c082223
7
- data.tar.gz: 7927be3a32db507af849963f3f78f90c6f924a1b72df3c9d9395a61285074f45cb50f5f182423068354c1758739b47594778ce71b59d05f92b7f56a74cd1309b
6
+ metadata.gz: e50e3b61d68cd65359fe16542d76b7a01cf2bfeba73cace8ea115f03067475b8e7e4337d747cb161eeeee08499ee67a71a40693972e161972799f4cca0b22186
7
+ data.tar.gz: 003cbaaac2e1bd7fa45c73b36f934392548baedd5d604357d1823a8ece558bd19e5234e9b63d71890f55c31d7e17ea1209527e6e8244778356a6102f45ef96fc
@@ -8,8 +8,12 @@ module Example
8
8
  include Toji::Product
9
9
  include Toji::Product::ScheduleFactory
10
10
 
11
- attr_accessor :description
12
- attr_accessor :color
11
+ attr_reader :name
12
+ attr_reader :recipe
13
+ attr_reader :base_date
14
+
15
+ attr_reader :description
16
+ attr_reader :color
13
17
 
14
18
  def initialize(id, name, description, recipe, base_date, color=nil)
15
19
  @id = id
@@ -86,6 +90,15 @@ module Example
86
90
  class Step
87
91
  include Toji::Recipe::Step
88
92
 
93
+ attr_reader :index
94
+ attr_reader :subindex
95
+ attr_accessor :kojis
96
+ attr_accessor :kakes
97
+ attr_accessor :waters
98
+ attr_accessor :lactic_acids
99
+ attr_accessor :alcohols
100
+ attr_accessor :yeasts
101
+
89
102
  def initialize(index:, subindex:, kojis: [], kakes: [], waters: [], lactic_acids: [], alcohols: [], yeasts: [])
90
103
  @index = index
91
104
  @subindex = subindex
@@ -110,6 +123,18 @@ module Example
110
123
  class Koji
111
124
  include Toji::Ingredient::Koji
112
125
 
126
+ attr_accessor :weight
127
+ attr_reader :brand
128
+ attr_reader :polishing_ratio
129
+ attr_reader :made_in
130
+ attr_reader :year
131
+ attr_reader :soaking_ratio
132
+ attr_reader :steaming_ratio
133
+ attr_reader :cooling_ratio
134
+ attr_reader :tanekojis
135
+ attr_reader :dekoji_ratio
136
+ attr_reader :interval_days
137
+
113
138
  def initialize(weight:, brand:, polishing_ratio:, made_in:, year:, soaking_ratio:, steaming_ratio:, cooling_ratio:, tanekojis:, dekoji_ratio:, interval_days:)
114
139
  @weight = weight
115
140
  @brand = brand
@@ -152,6 +177,8 @@ module Example
152
177
  include Toji::Ingredient::Tanekoji
153
178
 
154
179
  attr_accessor :koji
180
+ attr_reader :brand
181
+ attr_reader :ratio
155
182
 
156
183
  def initialize(koji: nil, brand:, ratio:)
157
184
  @brand = brand
@@ -167,6 +194,16 @@ module Example
167
194
  class Kake
168
195
  include Toji::Ingredient::Kake
169
196
 
197
+ attr_accessor :weight
198
+ attr_reader :brand
199
+ attr_reader :polishing_ratio
200
+ attr_reader :made_in
201
+ attr_reader :year
202
+ attr_reader :soaking_ratio
203
+ attr_reader :steaming_ratio
204
+ attr_reader :cooling_ratio
205
+ attr_reader :interval_days
206
+
170
207
  def initialize(weight:, brand:, polishing_ratio:, made_in:, year:, soaking_ratio:, steaming_ratio:, cooling_ratio:, interval_days:)
171
208
  @weight = weight
172
209
  @brand = brand
@@ -183,6 +220,10 @@ module Example
183
220
  class Water
184
221
  include Toji::Ingredient::Water
185
222
 
223
+ attr_accessor :weight
224
+ attr_reader :calcium_hardness
225
+ attr_reader :magnesium_hardness
226
+
186
227
  def initialize(weight:)
187
228
  @weight = weight
188
229
  end
@@ -191,6 +232,8 @@ module Example
191
232
  class LacticAcid
192
233
  include Toji::Ingredient::LacticAcid
193
234
 
235
+ attr_accessor :weight
236
+
194
237
  def initialize(weight:)
195
238
  @weight = weight
196
239
  end
@@ -199,6 +242,8 @@ module Example
199
242
  class Alcohol
200
243
  include Toji::Ingredient::Alcohol
201
244
 
245
+ attr_accessor :weight
246
+
202
247
  def initialize(weight:)
203
248
  @weight = weight
204
249
  end
@@ -207,6 +252,10 @@ module Example
207
252
  class Yeast
208
253
  include Toji::Ingredient::Yeast
209
254
 
255
+ attr_accessor :weight
256
+ attr_reader :unit
257
+ attr_reader :brand
258
+
210
259
  def initialize(weight:)
211
260
  @weight = weight
212
261
  end
@@ -216,22 +265,48 @@ module Example
216
265
  class Action
217
266
  include Toji::Recipe::Action
218
267
 
268
+ attr_reader :type
269
+ attr_reader :interval_days
270
+
219
271
  def initialize(type:, interval_days:)
220
272
  @type = type
221
273
  @interval_days = interval_days
222
274
  end
223
275
  end
224
276
 
277
+ class AbExpect
278
+ include Toji::Recipe::AbExpect
279
+
280
+ attr_reader :alcohol
281
+ attr_reader :nihonshudo
282
+
283
+ def initialize(alcohol:, nihonshudo:)
284
+ @alcohol = alcohol
285
+ @nihonshudo = nihonshudo
286
+ end
287
+ end
288
+
225
289
 
226
290
  class Recipe
227
291
  include Toji::Recipe
228
292
 
229
- def initialize(steps)
293
+ attr_reader :steps
294
+ attr_reader :actions
295
+ attr_reader :ab_coef
296
+ attr_reader :ab_expects
297
+
298
+ def initialize(steps:, actions:, ab_coef:, ab_expects:)
230
299
  @steps = steps
300
+ @actions = actions
301
+ @ab_coef = ab_coef
302
+ @ab_expects = ab_expects
231
303
  end
232
304
 
233
305
  def initialize_copy(obj)
234
306
  @steps = obj.steps.deep_dup
307
+ @actions = obj.actions.deep_dup
308
+ @ab_coef = obj.ab_coef.dup
309
+ @ab_expects = obj.ab_expects.deep_dup
235
310
  end
236
311
 
237
312
  # 乳酸は汲水100L当たり比重1.21の乳酸(90%乳酸と称される)を650〜720ml添加する。
@@ -244,7 +319,7 @@ module Example
244
319
  # 酒造教本による標準型仕込配合
245
320
  # 出典: 酒造教本 P97
246
321
  sokujo_textbook: new(
247
- [
322
+ steps: [
248
323
  Step.new(
249
324
  index: 0,
250
325
  subindex: 0,
@@ -445,12 +520,29 @@ module Example
445
520
  ),
446
521
  ],
447
522
  ),
448
- ].map(&:freeze).freeze
523
+ ].map(&:freeze).freeze,
524
+ actions: [
525
+ Action.new(
526
+ type: :squeeze,
527
+ interval_days: 50,
528
+ ),
529
+ ].map(&:freeze).freeze,
530
+ ab_coef: 1.4,
531
+ ab_expects: [
532
+ AbExpect.new(
533
+ alcohol: 15.0,
534
+ nihonshudo: 0.0,
535
+ ),
536
+ AbExpect.new(
537
+ alcohol: 16.0,
538
+ nihonshudo: 3.0,
539
+ ),
540
+ ].map(&:freeze).freeze,
449
541
  ).freeze,
450
542
  # 灘における仕込配合の平均値
451
543
  # 出典: http://www.nada-ken.com/main/jp/index_shi/234.html
452
544
  sokujo_nada: new(
453
- [
545
+ steps: [
454
546
  Step.new(
455
547
  index: 0,
456
548
  subindex: 0,
@@ -638,12 +730,29 @@ module Example
638
730
  ),
639
731
  ],
640
732
  ),
641
- ].map(&:freeze).freeze
733
+ ].map(&:freeze).freeze,
734
+ actions: [
735
+ Action.new(
736
+ type: :squeeze,
737
+ interval_days: 50,
738
+ ),
739
+ ].map(&:freeze).freeze,
740
+ ab_coef: 1.4,
741
+ ab_expects: [
742
+ AbExpect.new(
743
+ alcohol: 15.0,
744
+ nihonshudo: 0.0,
745
+ ),
746
+ AbExpect.new(
747
+ alcohol: 16.0,
748
+ nihonshudo: 3.0,
749
+ ),
750
+ ].map(&:freeze).freeze,
642
751
  ).freeze,
643
752
  # 簡易酒母省略仕込
644
753
  # 出典: https://www.jstage.jst.go.jp/article/jbrewsocjapan1915/60/11/60_11_999/_article/-char/ja/
645
754
  simple_sokujo_himeno: new(
646
- [
755
+ steps: [
647
756
  Step.new(
648
757
  index: 0,
649
758
  subindex: 0,
@@ -668,17 +777,6 @@ module Example
668
777
  ),
669
778
  ],
670
779
  kakes: [
671
- Kake.new(
672
- weight: 0,
673
- brand: :yamadanishiki,
674
- polishing_ratio: 0.55,
675
- made_in: :hyogo,
676
- year: 2020,
677
- soaking_ratio: 0.33,
678
- steaming_ratio: 0.41,
679
- cooling_ratio: 0.33,
680
- interval_days: 6,
681
- ),
682
780
  ],
683
781
  waters: [
684
782
  Water.new(
@@ -700,24 +798,6 @@ module Example
700
798
  index: 1,
701
799
  subindex: 0,
702
800
  kojis: [
703
- Koji.new(
704
- weight: 0,
705
- brand: :yamadanishiki,
706
- polishing_ratio: 0.55,
707
- made_in: :hyogo,
708
- year: 2020,
709
- soaking_ratio: 0.33,
710
- steaming_ratio: 0.41,
711
- cooling_ratio: 0.33,
712
- tanekojis: [
713
- Tanekoji.new(
714
- brand: :byakuya,
715
- ratio: 0.001,
716
- ),
717
- ],
718
- dekoji_ratio: 0.18,
719
- interval_days: 0,
720
- ),
721
801
  ],
722
802
  kakes: [
723
803
  Kake.new(
@@ -739,7 +819,7 @@ module Example
739
819
  ],
740
820
  ),
741
821
  Step.new(
742
- index: 1,
822
+ index: 2,
743
823
  subindex: 0,
744
824
  kojis: [
745
825
  Koji.new(
@@ -781,7 +861,7 @@ module Example
781
861
  ],
782
862
  ),
783
863
  Step.new(
784
- index: 2,
864
+ index: 3,
785
865
  subindex: 0,
786
866
  kojis: [
787
867
  Koji.new(
@@ -823,7 +903,7 @@ module Example
823
903
  ],
824
904
  ),
825
905
  Step.new(
826
- index: 3,
906
+ index: 4,
827
907
  subindex: 0,
828
908
  waters: [
829
909
  Water.new(
@@ -831,7 +911,24 @@ module Example
831
911
  ),
832
912
  ],
833
913
  ),
834
- ].map(&:freeze).freeze
914
+ ].map(&:freeze).freeze,
915
+ actions: [
916
+ Action.new(
917
+ type: :squeeze,
918
+ interval_days: 50,
919
+ ),
920
+ ].map(&:freeze).freeze,
921
+ ab_coef: 1.4,
922
+ ab_expects: [
923
+ AbExpect.new(
924
+ alcohol: 15.0,
925
+ nihonshudo: 0.0,
926
+ ),
927
+ AbExpect.new(
928
+ alcohol: 16.0,
929
+ nihonshudo: 3.0,
930
+ ),
931
+ ].map(&:freeze).freeze,
835
932
  ).freeze,
836
933
  }.freeze
837
934
  end
@@ -840,6 +937,12 @@ module Example
840
937
  class KojiSchedule
841
938
  include Toji::Schedule::KojiSchedule
842
939
 
940
+ attr_reader :product
941
+ attr_reader :date
942
+
943
+ attr_reader :step_indexes
944
+ attr_reader :expect
945
+
843
946
  def initialize(product:, date:, step_indexes:, expect:)
844
947
  @product = product
845
948
  @date = date
@@ -851,6 +954,12 @@ module Example
851
954
  class KakeSchedule
852
955
  include Toji::Schedule::KakeSchedule
853
956
 
957
+ attr_reader :product
958
+ attr_reader :date
959
+
960
+ attr_reader :step_indexes
961
+ attr_reader :expect
962
+
854
963
  def initialize(product:, date:, step_indexes:, expect:)
855
964
  @product = product
856
965
  @date = date
@@ -862,6 +971,12 @@ module Example
862
971
  class ActionSchedule
863
972
  include Toji::Schedule::ActionSchedule
864
973
 
974
+ attr_reader :product
975
+ attr_reader :date
976
+ attr_reader :type
977
+
978
+ attr_reader :index_index
979
+
865
980
  def initialize(product:, date:, type:, action_index:)
866
981
  @product = product
867
982
  @date = date
@@ -904,6 +1019,16 @@ module Example
904
1019
  class KojiState
905
1020
  include Toji::Progress::KojiState
906
1021
 
1022
+ attr_accessor :progress
1023
+ attr_accessor :time
1024
+ attr_accessor :mark
1025
+
1026
+ attr_accessor :temps
1027
+ attr_accessor :preset_temp
1028
+ attr_accessor :room_temp
1029
+ attr_accessor :room_psychrometry
1030
+ attr_accessor :note
1031
+
907
1032
  def self.create(args)
908
1033
  new.tap {|s|
909
1034
  s.progress = args[:progress]
@@ -933,6 +1058,19 @@ module Example
933
1058
  class MotoState
934
1059
  include Toji::Progress::MotoState
935
1060
 
1061
+ attr_accessor :progress
1062
+ attr_accessor :time
1063
+ attr_accessor :mark
1064
+
1065
+ attr_accessor :temps
1066
+ attr_accessor :preset_temp
1067
+ attr_accessor :room_temp
1068
+ attr_accessor :room_psychrometry
1069
+ attr_accessor :baume
1070
+ attr_accessor :acid
1071
+ attr_accessor :warmings
1072
+ attr_accessor :note
1073
+
936
1074
  def self.create(args)
937
1075
  new.tap {|s|
938
1076
  s.progress = args[:progress]
@@ -968,6 +1106,21 @@ module Example
968
1106
  include Toji::Progress::MoromiState
969
1107
  include Toji::Progress::State::BaumeToNihonshudo
970
1108
 
1109
+ attr_accessor :progress
1110
+ attr_accessor :time
1111
+ attr_accessor :mark
1112
+
1113
+ attr_accessor :temps
1114
+ attr_accessor :preset_temp
1115
+ attr_accessor :room_temp
1116
+ attr_accessor :room_psychrometry
1117
+ attr_accessor :baume
1118
+ attr_accessor :acid
1119
+ attr_accessor :amino_acid
1120
+ attr_accessor :alcohol
1121
+ attr_accessor :warmings
1122
+ attr_accessor :note
1123
+
971
1124
  def self.create(args)
972
1125
  new.tap {|s|
973
1126
  s.progress = args[:progress]
@@ -4,7 +4,7 @@ module Toji
4
4
  include Base
5
5
 
6
6
  # 醸造用アルコール
7
- attr_accessor :weight
7
+ # @dynamic weight
8
8
 
9
9
  def group_key
10
10
  ""
@@ -2,10 +2,11 @@ module Toji
2
2
  module Ingredient
3
3
  module Base
4
4
  # 重量
5
- attr_accessor :weight
5
+ # @dynamic weight
6
+ # @dynamic weight=
6
7
 
7
8
  # グループ識別子
8
- attr_reader :group_key
9
+ # @dynamic group_key
9
10
  end
10
11
  end
11
12
  end
@@ -4,14 +4,14 @@ module Toji
4
4
  include Rice
5
5
 
6
6
  # 種麹 (has_many: Toji::Ingredient::Tanekoji)
7
- attr_reader :tanekojis
7
+ # @dynamic tanekojis
8
8
 
9
9
  # 出麹歩合
10
10
  #
11
11
  # 出麹歩合17〜19%のものが麹菌の繁殖のほどよい麹である
12
12
  #
13
13
  # 出典: 酒造教本 P67
14
- attr_reader :dekoji_ratio
14
+ # @dynamic dekoji_ratio
15
15
 
16
16
  def dekoji
17
17
  weight + weight * dekoji_ratio
@@ -4,7 +4,7 @@ module Toji
4
4
  include Base
5
5
 
6
6
  # 乳酸
7
- attr_accessor :weight
7
+ # @dynamic weight
8
8
 
9
9
  def group_key
10
10
  ""
@@ -4,20 +4,21 @@ module Toji
4
4
  include Base
5
5
 
6
6
  # 白米
7
- attr_accessor :weight
7
+ # @dynamic weight
8
+ # @dynamic weight=
8
9
 
9
10
  # 品種、精米歩合、産地、年度
10
- attr_reader :brand
11
- attr_reader :polishing_ratio
12
- attr_reader :made_in
13
- attr_reader :year
11
+ # @dynamic brand
12
+ # @dynamic polishing_ratio
13
+ # @dynamic made_in
14
+ # @dynamic year
14
15
 
15
16
  # 浸漬米吸水率
16
17
  #
17
18
  # 標準的な白米吸水率は掛米で30〜35%、麹米で33%前後で許容範囲はかなり狭い
18
19
  #
19
20
  # 出典: 酒造教本 P38
20
- attr_reader :soaking_ratio
21
+ # @dynamic soaking_ratio
21
22
 
22
23
  def soaked
23
24
  weight + weight * soaking_ratio
@@ -30,7 +31,7 @@ module Toji
30
31
  # 蒸米吸水率は麹米及び酒母米で41〜43%、掛米は39〜40%で、吟醸造りの場合は数%低い
31
32
  #
32
33
  # 出典: 酒造教本 P48
33
- attr_reader :steaming_ratio
34
+ # @dynamic steaming_ratio
34
35
 
35
36
  def steamed
36
37
  weight + weight * steaming_ratio
@@ -43,14 +44,14 @@ module Toji
43
44
  #
44
45
  # 麹を造るのに適した蒸米は、引込時の吸水率が33%を理想とし、許容幅はプラスマイナス1%である
45
46
  # 出典: 酒造教本 P59
46
- attr_reader :cooling_ratio
47
+ # @dynamic cooling_ratio
47
48
 
48
49
  def cooled
49
50
  weight + weight * cooling_ratio
50
51
  end
51
52
 
52
53
  # Product.base_dateからの日数差
53
- attr_reader :interval_days
54
+ # @dynamic interval_days
54
55
  end
55
56
  end
56
57
  end
@@ -4,10 +4,10 @@ module Toji
4
4
  include Base
5
5
 
6
6
  # 麹 (belongs_to: Toji::Ingredient::Koji)
7
- attr_reader :koji
7
+ # @dynamic koji
8
8
 
9
9
  # 種麹の種類
10
- attr_reader :brand
10
+ # @dynamic brand
11
11
 
12
12
  # 種麹
13
13
  #
@@ -15,7 +15,7 @@ module Toji
15
15
  # 突き破精麹を造るには、種麹の量を麹米100kgあたり種麹80gとする
16
16
  #
17
17
  # 出典: 酒造教本 P66
18
- attr_reader :ratio
18
+ # @dynamic ratio
19
19
 
20
20
  def weight
21
21
  koji.weight * ratio
@@ -4,11 +4,11 @@ module Toji
4
4
  include Base
5
5
 
6
6
  # 汲水
7
- attr_accessor :weight
7
+ # @dynamic weight
8
8
 
9
9
  # 硬度
10
- attr_reader :calcium_hardness
11
- attr_reader :magnesium_hardness
10
+ # @dynamic calcium_hardness
11
+ # @dynamic magnesium_hardness
12
12
 
13
13
  def group_key
14
14
  [calcium_hardness, magnesium_hardness].join(":")
@@ -4,13 +4,14 @@ module Toji
4
4
  include Base
5
5
 
6
6
  # 酵母
7
- attr_accessor :weight
7
+ # @dynamic weight
8
+ # @dynamic weight=
8
9
 
9
10
  # 単位 (ex: ampoule, gram, ml)
10
- attr_reader :unit
11
+ # @dynamic unit
11
12
 
12
13
  # 酵母名、協会酵母番号
13
- attr_reader :brand
14
+ # @dynamic brand
14
15
 
15
16
  def group_key
16
17
  [brand, unit].join(":")
@@ -2,13 +2,13 @@ require 'toji/product/schedule_factory'
2
2
 
3
3
  module Toji
4
4
  module Product
5
- attr_reader :name
6
- attr_reader :recipe
7
- attr_reader :base_date
5
+ # @dynamic name
6
+ # @dynamic recipe
7
+ # @dynamic base_date
8
8
 
9
- attr_reader :koji_schedules
10
- attr_reader :kake_schedules
11
- attr_reader :action_schedules
9
+ # @dynamic koji_schedules
10
+ # @dynamic kake_schedules
11
+ # @dynamic action_schedules
12
12
 
13
13
  def rice_schedules
14
14
  koji_schedules + kake_schedules
@@ -31,7 +31,7 @@ module Toji
31
31
  0<schedule[:koji]&.weight.to_f
32
32
  }.group_by {|schedule|
33
33
  [schedule[:date], schedule[:koji].group_key]
34
- }.map {|(date, group_key), schedules|
34
+ }.map {|(date, _group_key), schedules|
35
35
  create_koji_schedule(
36
36
  date: date,
37
37
  step_indexes: schedules.map {|schedule| schedule[:step_index]}.sort_by {|x| [x[:index], x[:subindex]]},
@@ -57,7 +57,7 @@ module Toji
57
57
  0<schedule[:kake]&.weight.to_f
58
58
  }.group_by {|schedule|
59
59
  [schedule[:date], schedule[:kake].group_key, schedule[:step_index]]
60
- }.map {|(date, group_key, step_index), schedules|
60
+ }.map {|(date, _group_key, _step_index), schedules|
61
61
  create_kake_schedule(
62
62
  date: date,
63
63
  step_indexes: schedules.map {|schedule| schedule[:step_index]}.sort_by {|x| [x[:index], x[:subindex]]},
@@ -1,6 +1,8 @@
1
1
  module Toji
2
2
  module Progress
3
3
  module BaseState
4
+ include State
5
+
4
6
  REQUIRED_KEYS = [
5
7
  :time,
6
8
  :elapsed_time,
@@ -10,11 +12,6 @@ module Toji
10
12
  :mark,
11
13
  ].freeze
12
14
 
13
- attr_accessor :progress
14
-
15
- attr_accessor :time
16
- attr_accessor :mark
17
-
18
15
  def elapsed_time
19
16
  time - progress.base_time
20
17
  end
@@ -58,13 +58,13 @@ module Toji
58
58
  def min_baume
59
59
  @actuals.map {|moromi, name|
60
60
  moromi.states.map(&:baume).compact.min
61
- }.compact.min || 0
61
+ }.compact.min || 0.0
62
62
  end
63
63
 
64
64
  def max_baume
65
65
  @actuals.map {|moromi, name|
66
66
  moromi.states.map(&:baume).compact.max
67
- }.compact.max || 0
67
+ }.compact.max || 0.0
68
68
  end
69
69
 
70
70
  def plot
@@ -12,12 +12,12 @@ module Toji
12
12
  :note,
13
13
  ].freeze
14
14
 
15
- attr_accessor :temps
16
- attr_accessor :preset_temp
17
- attr_accessor :room_temp
18
- attr_accessor :room_psychrometry
15
+ # @dynamic temps
16
+ # @dynamic preset_temp
17
+ # @dynamic room_temp
18
+ # @dynamic room_psychrometry
19
19
 
20
- attr_accessor :note
20
+ # @dynamic note
21
21
  end
22
22
  end
23
23
  end
@@ -3,7 +3,7 @@ module Toji
3
3
  module MoromiProgress
4
4
  include BaseProgress
5
5
 
6
- attr_accessor :prefix_day_labels
6
+ # @dynamic prefix_day_labels
7
7
 
8
8
  def moromi_tome_day
9
9
  prefix_day_labels&.length
@@ -22,19 +22,19 @@ module Toji
22
22
  :note,
23
23
  ].freeze
24
24
 
25
- attr_accessor :temps
26
- attr_accessor :preset_temp
27
- attr_accessor :room_temp
28
- attr_accessor :room_psychrometry
25
+ # @dynamic temps
26
+ # @dynamic preset_temp
27
+ # @dynamic room_temp
28
+ # @dynamic room_psychrometry
29
29
 
30
- attr_accessor :baume
31
- attr_accessor :nihonshudo
32
- attr_accessor :acid
33
- attr_accessor :amino_acid
34
- attr_accessor :alcohol
30
+ # @dynamic baume
31
+ # @dynamic nihonshudo
32
+ # @dynamic acid
33
+ # @dynamic amino_acid
34
+ # @dynamic alcohol
35
35
 
36
- attr_accessor :warmings
37
- attr_accessor :note
36
+ # @dynamic warmings
37
+ # @dynamic note
38
38
 
39
39
  def moromi_day
40
40
  _tome_day = progress.moromi_tome_day
@@ -16,16 +16,16 @@ module Toji
16
16
  :note,
17
17
  ].freeze
18
18
 
19
- attr_accessor :temps
20
- attr_accessor :preset_temp
21
- attr_accessor :room_temp
22
- attr_accessor :room_psychrometry
19
+ # @dynamic temps
20
+ # @dynamic preset_temp
21
+ # @dynamic room_temp
22
+ # @dynamic room_psychrometry
23
23
 
24
- attr_accessor :baume
25
- attr_accessor :acid
24
+ # @dynamic baume
25
+ # @dynamic acid
26
26
 
27
- attr_accessor :warmings
28
- attr_accessor :note
27
+ # @dynamic warmings
28
+ # @dynamic note
29
29
  end
30
30
  end
31
31
  end
@@ -1,15 +1,16 @@
1
1
  module Toji
2
2
  module Progress
3
3
  module Progress
4
- attr_reader :states
5
- attr_reader :date_line
4
+ # @dynamic states
5
+ # @dynamic date_line
6
6
 
7
- attr_reader :base_time
8
- attr_reader :day_offset
9
- attr_reader :days
10
- attr_reader :day_labels
7
+ # @dynamic base_time
8
+ # @dynamic day_offset
9
+ # @dynamic days
10
+ # @dynamic day_labels
11
11
 
12
- attr_reader :all_keys
12
+ # @dynamic all_keys
13
+ # @dynamic has_keys
13
14
  end
14
15
  end
15
16
  end
@@ -4,6 +4,19 @@ require 'toji/progress/state/nihonshudo_to_baume'
4
4
  module Toji
5
5
  module Progress
6
6
  module State
7
+ # @dynamic progress
8
+ # @dynamic progress=
9
+
10
+ # @dynamic time
11
+ # @dynamic time=
12
+ # @dynamic mark
13
+ # @dynamic mark=
14
+
15
+ # @dynamic elapsed_time
16
+ # @dynamic elapsed_time_with_offset
17
+ # @dynamic day
18
+ # @dynamic day_label
19
+ # @dynamic display_time
7
20
  end
8
21
  end
9
22
  end
@@ -4,13 +4,13 @@ require 'toji/recipe/ab_expect'
4
4
 
5
5
  module Toji
6
6
  module Recipe
7
- attr_reader :steps
8
- attr_reader :actions
9
- attr_reader :ab_coef
10
- attr_reader :ab_expects
7
+ # @dynamic steps
8
+ # @dynamic actions
9
+ # @dynamic ab_coef
10
+ # @dynamic ab_expects
11
11
 
12
12
  def scale_rice_total(rice_total)
13
- ratio = rice_total / steps.map(&:rice_total).sum
13
+ ratio = rice_total.to_f / steps.map(&:rice_total).sum
14
14
  scale(ratio)
15
15
  end
16
16
 
@@ -1,8 +1,8 @@
1
1
  module Toji
2
2
  module Recipe
3
3
  module AbExpect
4
- attr_reader :alcohol
5
- attr_reader :nihonshudo
4
+ # @dynamic alcohol
5
+ # @dynamic nihonshudo
6
6
  end
7
7
  end
8
8
  end
@@ -1,8 +1,8 @@
1
1
  module Toji
2
2
  module Recipe
3
3
  module Action
4
- attr_reader :type
5
- attr_reader :interval_days
4
+ # @dynamic type
5
+ # @dynamic interval_days
6
6
  end
7
7
  end
8
8
  end
@@ -1,14 +1,21 @@
1
1
  module Toji
2
2
  module Recipe
3
3
  module Step
4
- attr_reader :index
5
- attr_reader :subindex
6
- attr_accessor :kojis
7
- attr_accessor :kakes
8
- attr_accessor :waters
9
- attr_accessor :lactic_acids
10
- attr_accessor :alcohols
11
- attr_accessor :yeasts
4
+ # @dynamic index
5
+ # @dynamic subindex
6
+
7
+ # @dynamic kojis
8
+ # @dynamic kojis=
9
+ # @dynamic kakes
10
+ # @dynamic kakes=
11
+ # @dynamic waters
12
+ # @dynamic waters=
13
+ # @dynamic lactic_acids
14
+ # @dynamic lactic_acids=
15
+ # @dynamic alcohols
16
+ # @dynamic alcohols=
17
+ # @dynamic yeasts
18
+ # @dynamic yeasts=
12
19
 
13
20
  # 麹米
14
21
  def koji_total
@@ -3,7 +3,7 @@ module Toji
3
3
  module ActionSchedule
4
4
  include Base
5
5
 
6
- attr_reader :index
6
+ # @dynamic action_index
7
7
  end
8
8
  end
9
9
  end
@@ -1,9 +1,9 @@
1
1
  module Toji
2
2
  module Schedule
3
3
  module Base
4
- attr_reader :product
5
- attr_reader :date
6
- attr_reader :type
4
+ # @dynamic product
5
+ # @dynamic date
6
+ # @dynamic type
7
7
  end
8
8
  end
9
9
  end
@@ -3,10 +3,10 @@ module Toji
3
3
  module RiceSchedule
4
4
  include Base
5
5
 
6
- attr_reader :rice_type
7
- attr_reader :step_indexes
6
+ # @dynamic rice_type
7
+ # @dynamic step_indexes
8
8
 
9
- attr_reader :expect
9
+ # @dynamic expect
10
10
 
11
11
  def type
12
12
  :rice
@@ -1,3 +1,3 @@
1
1
  module Toji
2
- VERSION = "2.15.0"
2
+ VERSION = "2.16.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toji
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.15.0
4
+ version: 2.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshida Tetsuya
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-07 00:00:00.000000000 Z
11
+ date: 2020-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -194,7 +194,7 @@ metadata:
194
194
  homepage_uri: https://github.com/yoshida-eth0/ruby-toji
195
195
  source_code_uri: https://github.com/yoshida-eth0/ruby-toji
196
196
  changelog_uri: https://github.com/yoshida-eth0/ruby-toji
197
- post_install_message:
197
+ post_install_message:
198
198
  rdoc_options: []
199
199
  require_paths:
200
200
  - lib
@@ -209,8 +209,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
209
  - !ruby/object:Gem::Version
210
210
  version: '0'
211
211
  requirements: []
212
- rubygems_version: 3.0.4
213
- signing_key:
212
+ rubygems_version: 3.1.2
213
+ signing_key:
214
214
  specification_version: 4
215
215
  summary: Management tools for brewing japanese sake.
216
216
  test_files: []