toji 2.20.0 → 2.21.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: 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