toji 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a6e1a509c1fdf68216659098e2084cf5754844178417aa8ecb0fb803e2a1b19
4
- data.tar.gz: d51550d76a45b2e21d9530608820d76a5805638445b7a07f9350055874a58df5
3
+ metadata.gz: b77f334631cb7f784010f180c140f1d62e602b2bd38f3df985f253b0882e3002
4
+ data.tar.gz: b60120e7f1dd12480b51900e1e737c83fac9d0d8fdc94f844b5e3a1b0a8d113f
5
5
  SHA512:
6
- metadata.gz: 010b97ab4c669bbe741ae0c10248967fff8f5c7b484171397f491bf91d7e073e17e6e06e074d69ff188039dd41948daae0234f9592163f4bd06c35ccd0689538
7
- data.tar.gz: 3f8d0b3306a50784df5c8eda013bcf8cd049cd5592f8c38285fa20a5e1662ee511defb82ca37befb127fdc41553483d9db653a6b256733e9cdb1acd18fc72177
6
+ metadata.gz: 2290fd226b0b15ba3dd1eb9559dcf0ece2b53098eda7ce7f7615d2b2d5d33cbeb4dc74197be54a4b08864ecb0ff8ffed0257626f327ce273c35e4a47d447afbf
7
+ data.tar.gz: d1b7a139f56511611b5936dea84d3a4a90965cb9c736947dfa74003c85f4e2bd663960320bded0e08c30d4b49d386bf54e53f4286b48fcd4e67bdac1c5ccd6e3
@@ -24,25 +24,27 @@ module Example
24
24
  @color = color
25
25
  end
26
26
 
27
- def create_koji_schedule(date:, step_weights:, kojis:)
27
+ def create_koji_schedule(date:, group_key:, step_weights:, kojis:)
28
28
  expect = kojis.first.dup
29
29
  expect.weight = kojis.map(&:weight).sum
30
30
 
31
31
  KojiSchedule.new(
32
32
  product: self,
33
33
  date: date,
34
+ group_key: group_key,
34
35
  step_weights: step_weights,
35
36
  expect: expect,
36
37
  )
37
38
  end
38
39
 
39
- def create_kake_schedule(date:, step_weights:, kakes:)
40
+ def create_kake_schedule(date:, group_key:, step_weights:, kakes:)
40
41
  expect = kakes.first.dup
41
42
  expect.weight = kakes.map(&:weight).sum
42
43
 
43
44
  KakeSchedule.new(
44
45
  product: self,
45
46
  date: date,
47
+ group_key: group_key,
46
48
  step_weights: step_weights,
47
49
  expect: expect,
48
50
  )
@@ -941,13 +943,15 @@ module Example
941
943
 
942
944
  attr_reader :product
943
945
  attr_reader :date
946
+ attr_reader :group_key
944
947
 
945
948
  attr_reader :step_weights
946
949
  attr_reader :expect
947
950
 
948
- def initialize(product:, date:, step_weights:, expect:)
951
+ def initialize(product:, date:, group_key:, step_weights:, expect:)
949
952
  @product = product
950
953
  @date = date
954
+ @group_key = group_key
951
955
  @step_weights = step_weights
952
956
  @expect = expect
953
957
  end
@@ -958,13 +962,15 @@ module Example
958
962
 
959
963
  attr_reader :product
960
964
  attr_reader :date
965
+ attr_reader :group_key
961
966
 
962
967
  attr_reader :step_weights
963
968
  attr_reader :expect
964
969
 
965
- def initialize(product:, date:, step_weights:, expect:)
970
+ def initialize(product:, date:, group_key:, step_weights:, expect:)
966
971
  @product = product
967
972
  @date = date
973
+ @group_key = group_key
968
974
  @step_weights = step_weights
969
975
  @expect = expect
970
976
  end
@@ -6,7 +6,7 @@ module Toji
6
6
  # 醸造用アルコール
7
7
  # @dynamic weight
8
8
 
9
- def group_key
9
+ def ingredient_key
10
10
  [].join(":")
11
11
  end
12
12
  end
@@ -6,7 +6,7 @@ module Toji
6
6
  # @dynamic weight=
7
7
 
8
8
  # グループ識別子
9
- # @dynamic group_key
9
+ # @dynamic ingredient_key
10
10
  end
11
11
  end
12
12
  end
@@ -3,8 +3,12 @@ module Toji
3
3
  module Kake
4
4
  include Rice
5
5
 
6
- def group_key
7
- [brand, polishing_ratio, made_in, year, soaking_ratio, steaming_ratio, cooling_ratio, process_group].join(":")
6
+ def ingredient_key
7
+ [brand, polishing_ratio, made_in, year, soaking_ratio, steaming_ratio, cooling_ratio].join(":")
8
+ end
9
+
10
+ def default_process_group
11
+ self.hash
8
12
  end
9
13
  end
10
14
  end
@@ -18,11 +18,15 @@ module Toji
18
18
  end
19
19
 
20
20
  # Scheduleへのグループ識別子
21
- def group_key
22
- keys1 = [brand, polishing_ratio, made_in, year, soaking_ratio, steaming_ratio, cooling_ratio, dekoji_ratio, process_group]
23
- keys2 = tanekojis&.map(&:group_key)&.sort || []
21
+ def ingredient_key
22
+ keys1 = [brand, polishing_ratio, made_in, year, soaking_ratio, steaming_ratio, cooling_ratio, dekoji_ratio]
23
+ keys2 = tanekojis&.map(&:ingredient_key)&.sort || []
24
24
  (keys1 + keys2).join(":")
25
25
  end
26
+
27
+ def default_process_group
28
+ ""
29
+ end
26
30
  end
27
31
  end
28
32
  end
@@ -6,7 +6,7 @@ module Toji
6
6
  # 乳酸
7
7
  # @dynamic weight
8
8
 
9
- def group_key
9
+ def ingredient_key
10
10
  [].join(":")
11
11
  end
12
12
  end
@@ -55,6 +55,14 @@ module Toji
55
55
 
56
56
  # グループ識別子
57
57
  # @dynamic process_group
58
+ # @dyanmic default_process_group
59
+
60
+ def group_key
61
+ [
62
+ ingredient_key,
63
+ process_group.presence || default_process_group,
64
+ ].join(":")
65
+ end
58
66
  end
59
67
  end
60
68
  end
@@ -21,7 +21,7 @@ module Toji
21
21
  koji.weight * ratio
22
22
  end
23
23
 
24
- def group_key
24
+ def ingredient_key
25
25
  [brand, ratio].join(":")
26
26
  end
27
27
  end
@@ -10,7 +10,7 @@ module Toji
10
10
  # @dynamic calcium_hardness
11
11
  # @dynamic magnesium_hardness
12
12
 
13
- def group_key
13
+ def ingredient_key
14
14
  [calcium_hardness, magnesium_hardness].join(":")
15
15
  end
16
16
  end
@@ -13,7 +13,7 @@ module Toji
13
13
  # 酵母名、協会酵母番号
14
14
  # @dynamic brand
15
15
 
16
- def group_key
16
+ def ingredient_key
17
17
  [brand, unit].join(":")
18
18
  end
19
19
  end
@@ -2,11 +2,14 @@ module Toji
2
2
  module Product
3
3
  module ScheduleFactory
4
4
 
5
- def create_koji_schedule(date:, step_weights:, kojis:)
5
+ # @dynamic recipe
6
+ # @dynamic base_date
7
+
8
+ def create_koji_schedule(date:, group_key:, step_weights:, kojis:)
6
9
  raise Error, "implement required: create_koji_schedule"
7
10
  end
8
11
 
9
- def create_kake_schedule(date:, step_weights:, kakes:)
12
+ def create_kake_schedule(date:, group_key:, step_weights:, kakes:)
10
13
  raise Error, "implement required: create_kake_schedule"
11
14
  end
12
15
 
@@ -32,9 +35,10 @@ module Toji
32
35
  0<schedule[:koji]&.weight.to_f
33
36
  }.group_by {|schedule|
34
37
  [schedule[:date], schedule[:koji].group_key]
35
- }.map {|(date, _group_key), schedules|
38
+ }.map {|(date, group_key), schedules|
36
39
  create_koji_schedule(
37
40
  date: date,
41
+ group_key: group_key,
38
42
  step_weights: schedules.map {|schedule| schedule[:step_weight]}.sort_by {|x| [x[:index], x[:subindex]]},
39
43
  kojis: schedules.map{|schedule| schedule[:koji]},
40
44
  )
@@ -58,10 +62,11 @@ module Toji
58
62
  }.select {|schedule|
59
63
  0<schedule[:kake]&.weight.to_f
60
64
  }.group_by {|schedule|
61
- [schedule[:date], schedule[:kake].group_key, schedule[:step_weight]]
62
- }.map {|(date, _group_key, _step_weight), schedules|
65
+ [schedule[:date], schedule[:kake].group_key]
66
+ }.map {|(date, group_key), schedules|
63
67
  create_kake_schedule(
64
68
  date: date,
69
+ group_key: group_key,
65
70
  step_weights: schedules.map {|schedule| schedule[:step_weight]}.sort_by {|x| [x[:index], x[:subindex]]},
66
71
  kakes: schedules.map{|schedule| schedule[:kake]},
67
72
  )
@@ -20,20 +20,20 @@ module Toji
20
20
  result = {}
21
21
 
22
22
  ingredients1&.each {|src|
23
- dst = result[src.group_key]
23
+ dst = result[src.ingredient_key]
24
24
  if dst
25
25
  dst.weight = dst.weight.to_f + src.weight.to_f
26
26
  else
27
- result[src.group_key] = src
27
+ result[src.ingredient_key] = src
28
28
  end
29
29
  }
30
30
 
31
31
  ingredients2&.each {|src|
32
- dst = result[src.group_key]
32
+ dst = result[src.ingredient_key]
33
33
  if dst
34
34
  dst.weight = dst.weight.to_f + src.weight.to_f
35
35
  else
36
- result[src.group_key] = src.dup
36
+ result[src.ingredient_key] = src.dup
37
37
  end
38
38
  }
39
39
 
@@ -1,3 +1,3 @@
1
1
  module Toji
2
- VERSION = "2.20.0"
2
+ VERSION = "2.21.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toji
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.20.0
4
+ version: 2.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshida Tetsuya