toji 2.3.0 → 2.5.1

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: ec68ce9ca3d8e0b3414b7e5bc2407acd0c921dded8e2c81d803d7113faf16377
4
- data.tar.gz: a87f5732226f22c2ffde9f1dd0390d33f4cbc82f6123a6dce317561e25933e18
3
+ metadata.gz: 31d789207932cd0399eaf06699ebd22bac870f4809cd112c53486ca5ca8e3164
4
+ data.tar.gz: aa1b306d160102b281101ac6651ffe94debe5364b335a1e09987622b025f10f0
5
5
  SHA512:
6
- metadata.gz: 47a3a740eed016bf412dec866c68a4b64ca6ad026373a37c504993ea79912739b399691d13148b372d290adb00664c4a3e546b2b52be05f6c6d39fa3399bfaa0
7
- data.tar.gz: 773cf147acf53eb4f3954d766c6d6f316a49b7614d58cb10d1214d5d6c20bd3d5f98418c46e5fdfa3666d0d3af43ea6e08a640a41d0937d19bf7cb888d87af87
6
+ metadata.gz: 31deda45a392f5a565d9074b6bcf35163ed21d9a69614cbff3669ec8dc36affa0587f8ba511695c7d33fad781ea2fcc205066be8c53f056349b40e384de18b92
7
+ data.tar.gz: daa506c803091bdc3bc6409f502419565308610642bd3c3d565234b624daf0fd13198044658dca7bf462348b5e8c2df3bdf0d9cd228a3a5199ec2f05e76ffc3f
@@ -302,7 +302,7 @@
302
302
  " name: \"仕1\",\n",
303
303
  " description: \"姫野国夫による酒母省略仕込\",\n",
304
304
  " recipe: Example::Recipe::TEMPLATES[:simple_sokujo_himeno].scale(600).round(0),\n",
305
- " start_date: Time.mktime(2020, 2, 24)\n",
305
+ " base_date: Time.mktime(2020, 2, 24)\n",
306
306
  "))\n",
307
307
  ".add(Example::Product.create(\n",
308
308
  " name: \"仕2\",\n",
@@ -311,7 +311,7 @@
311
311
  " r.steps[0].kake_interval_days = 5\n",
312
312
  " r.steps[2].kake_interval_days = 3\n",
313
313
  " },\n",
314
- " start_date: Time.mktime(2020, 2, 27)\n",
314
+ " base_date: Time.mktime(2020, 2, 27)\n",
315
315
  "))\n",
316
316
  ".add(Example::Product.create(\n",
317
317
  " name: \"仕3\",\n",
@@ -320,13 +320,13 @@
320
320
  " r.steps[1].koji_interval_days = 11\n",
321
321
  " r.steps[1].kake_interval_days = 13\n",
322
322
  " },\n",
323
- " start_date: Time.mktime(2020, 2, 20)\n",
323
+ " base_date: Time.mktime(2020, 2, 20)\n",
324
324
  "))\n",
325
325
  ".add(Example::Product.create(\n",
326
326
  " name: \"仕4\",\n",
327
327
  " description: \"酒造教本による標準型仕込配合\",\n",
328
328
  " recipe: Example::Recipe::TEMPLATES[:sokujo_textbook].scale(900).round(0),\n",
329
- " start_date: Time.mktime(2020, 2, 20)\n",
329
+ " base_date: Time.mktime(2020, 2, 20)\n",
330
330
  "))\n",
331
331
  ".add(Example::Product.create(\n",
332
332
  " name: \"仕5\",\n",
@@ -335,13 +335,13 @@
335
335
  " r.steps[1].koji_interval_days = 11\n",
336
336
  " r.steps[1].kake_interval_days = 13\n",
337
337
  " },\n",
338
- " start_date: Time.mktime(2020, 2, 27)\n",
338
+ " base_date: Time.mktime(2020, 2, 27)\n",
339
339
  "))\n",
340
340
  ".add(Example::Product.create(\n",
341
341
  " name: \"仕6\",\n",
342
342
  " description: \"酒造教本による標準型仕込配合\",\n",
343
343
  " recipe: Example::Recipe::TEMPLATES[:sokujo_textbook].scale(900).round(0),\n",
344
- " start_date: Time.mktime(2020, 2, 27)\n",
344
+ " base_date: Time.mktime(2020, 2, 27)\n",
345
345
  "))\n",
346
346
  "\n",
347
347
  "cal.products.each {|product|\n",
@@ -4,34 +4,34 @@ products:
4
4
  recipe: :simple_sokujo_himeno
5
5
  scale: 600
6
6
  round: 0
7
- start_date: 2020-2-24
7
+ base_date: 2020-2-24
8
8
  - name: 仕2
9
9
  description: 姫野国夫による酒母省略仕込
10
10
  recipe: :simple_sokujo_himeno
11
11
  scale: 550
12
12
  round: 0
13
- start_date: 2020-2-27
13
+ base_date: 2020-2-27
14
14
  - name: 仕3
15
15
  description: 灘における仕込配合
16
16
  recipe: :sokujo_nada
17
17
  scale: 900
18
18
  round: 0
19
- start_date: 2020-2-20
19
+ base_date: 2020-2-20
20
20
  - name: 仕4
21
21
  description: 酒造教本による標準型仕込配合
22
22
  recipe: :sokujo_textbook
23
23
  scale: 900
24
24
  round: 0
25
- start_date: 2020-2-20
25
+ base_date: 2020-2-20
26
26
  - name: 仕5
27
27
  description: 灘における仕込配合
28
28
  recipe: :sokujo_nada
29
29
  scale: 900
30
30
  round: 0
31
- start_date: 2020-2-27
31
+ base_date: 2020-2-27
32
32
  - name: 仕6
33
33
  description: 酒造教本による標準型仕込配合
34
34
  recipe: :sokujo_textbook
35
35
  scale: 900
36
36
  round: 0
37
- start_date: 2020-2-27
37
+ base_date: 2020-2-27
@@ -69,25 +69,6 @@ module Example
69
69
  class Step
70
70
  include Toji::Recipe::Step
71
71
 
72
- # 総重量
73
- def weight_total
74
- kake + koji + water + lactic_acid + alcohol + yeast
75
- end
76
-
77
- def to_h
78
- {
79
- name: name,
80
- kake: kake,
81
- koji: koji,
82
- water: water,
83
- lactic_acid: lactic_acid,
84
- alcohol: alcohol,
85
- yeast: yeast,
86
- koji_interval_days: koji_interval_days,
87
- kake_interval_days: kake_interval_days,
88
- }
89
- end
90
-
91
72
  def self.create(name:, kake: 0, koji: 0, water: 0, lactic_acid: 0, alcohol: 0, yeast: 0, koji_interval_days: 0, kake_interval_days: 0)
92
73
  new.tap {|o|
93
74
  o.name = name
@@ -111,16 +92,6 @@ module Example
111
92
  @steps = []
112
93
  end
113
94
 
114
- #def to_h
115
- # {
116
- # steps: steps.map(&:to_h),
117
- # cumulative_rice_totals: cumulative_rice_totals,
118
- # cumulative_shubo_rates: cumulative_shubo_rates,
119
- # shubo_rate: shubo_rate,
120
- # rice_rates: rice_rates,
121
- # }
122
- #end
123
-
124
95
  def self.create(steps)
125
96
  new.tap {|o|
126
97
  o.steps = steps
@@ -278,30 +249,15 @@ module Example
278
249
  attr_accessor :description
279
250
  attr_accessor :color
280
251
 
281
- def initialize(reduce_key, name, description, recipe, start_date, color=nil)
252
+ def initialize(reduce_key, name, description, recipe, base_date, color=nil)
282
253
  @reduce_key = reduce_key || SecureRandom.uuid
283
254
  @name = name
284
255
  @description = description
285
256
  @recipe = recipe
286
- @start_date = start_date
257
+ @base_date = base_date
287
258
  @color = color
288
259
  end
289
260
 
290
- def to_h
291
- {
292
- id: id,
293
- name: name,
294
- description: @description,
295
- recipe: @recipe.table_data,
296
- start_date: @start_date,
297
- koji_dates: koji_dates,
298
- kake_dates: kake_dates,
299
- events: events.map(&:to_h),
300
- events_group: events_group,
301
- color: @color,
302
- }
303
- end
304
-
305
261
  def self.create(args)
306
262
  if self===args
307
263
  args
@@ -322,7 +278,7 @@ module Example
322
278
  args[:name],
323
279
  args[:description],
324
280
  recipe,
325
- args[:start_date],
281
+ args[:base_date],
326
282
  args[:color]
327
283
  )
328
284
  else
@@ -7,7 +7,7 @@ koji = Example::Brew::Koji.load_yaml_file(File.dirname(__FILE__)+"/koji_making.y
7
7
  table = Terminal::Table.new do |t|
8
8
  t << ["作業", "日数", "品温(度)", "操作室温", "乾湿差(度)", "経過時間", "日時"]
9
9
  t << :separator
10
- koji.each {|s|
10
+ koji.wrapped_states.each {|s|
11
11
  temp = s.temps.map(&:to_s).join(" / ")
12
12
  t << [s.mark, s.day_label, temp, s.room_temp, s.room_psychrometry, s.elapsed_time, s.display_time]
13
13
  }
@@ -3,12 +3,12 @@ require_relative 'example_core'
3
3
  require 'terminal-table'
4
4
 
5
5
 
6
- moromi = Toji::Brew::Moromi.load_yaml_file(File.dirname(__FILE__)+"/moromi.yaml")
6
+ moromi = Example::Brew::Moromi.load_yaml_file(File.dirname(__FILE__)+"/moromi.yaml")
7
7
 
8
8
  table = Terminal::Table.new do |t|
9
9
  t << ["作業", "日数", "品温(度)", "操作室温", "ボーメ及び日本酒度", "アルコール度数", "BMD", "アルコール期待値(16.5 +3)", "経過時間", "日時"]
10
10
  t << :separator
11
- moromi.each {|s|
11
+ moromi.wrapped_states.each {|s|
12
12
  temp = s.temps.map(&:to_s).join(" / ")
13
13
  t << [s.mark, s.day_label, temp, s.room_temp, s.display_baume, s.alcohol, s.bmd&.round(2), s.expected_alcohol(16.5, +3, 1.5)&.round(2), s.elapsed_time, s.display_time]
14
14
  }
@@ -2,30 +2,37 @@ require 'toji'
2
2
  require_relative 'example_core'
3
3
  require 'terminal-table'
4
4
 
5
- recipe = Example::Recipe::TEMPLATES[:sokujo_nada].scale(900)
5
+ recipe = Example::Recipe::TEMPLATES[:sokujo_nada].scale(900).round(2)
6
6
  step_names = recipe.steps.map(&:name)
7
7
 
8
8
  table = Terminal::Table.new do |t|
9
9
  t << [""] + step_names
10
10
  t << :separator
11
11
  t << ["[原料]"]
12
- t << ["酵母(g or 本)"] + recipe.steps.map(&:yeast).map{|v| v&.round(2)}
13
- t << ["乳酸(ml)"] + recipe.steps.map(&:lactic_acid).map{|v| v&.round(6)}
14
- t << ["掛米(g)"] + recipe.steps.map(&:kake).map{|v| v&.round(2)}
15
- t << ["麹米(g)"] + recipe.steps.map(&:koji).map{|v| v&.round(2)}
16
- t << ["汲水(ml)"] + recipe.steps.map(&:water).map{|v| v&.round(2)}
17
- t << ["醸造アルコール(ml)"] + recipe.steps.map(&:alcohol).map{|v| v&.round(2)}
12
+ t << ["酵母(g or 本)"] + recipe.steps.map(&:yeast)
13
+ t << ["乳酸(ml)"] + recipe.steps.map(&:lactic_acid)
14
+ t << ["掛米(g)"] + recipe.steps.map(&:kake)
15
+ t << ["麹米(g)"] + recipe.steps.map(&:koji)
16
+ t << ["汲水(ml)"] + recipe.steps.map(&:water)
17
+ t << ["醸造アルコール(ml)"] + recipe.steps.map(&:alcohol)
18
18
  t << :separator
19
19
  t << ["[合計]"]
20
- t << ["総米(g)"] + recipe.steps.map(&:rice_total).map{|v| v&.round(2)}
20
+ t << ["総米(g)"] + recipe.steps.map(&:rice_total)
21
21
  t << ["麹歩合(%)"] + recipe.steps.map{|s| s.koji_rate * 100}.map{|v| v&.round(2)}
22
22
  t << ["汲水歩合(%)"] + recipe.steps.map{|s| s.water_rate * 100}.map{|v| v&.round(2)}
23
23
  t << :separator
24
24
  t << ["[累計]"]
25
- t << ["総米(g)"] + recipe.cumulative_rice_totals.map{|v| v&.round(2)}
25
+ t << ["総米(g)"] + recipe.cumulative_rice_totals
26
26
  t << ["白米比率"] + recipe.rice_rates.map{|v| v&.round(2)}
27
27
  t << ["酒母歩合(%)"] + recipe.cumulative_shubo_rates.map{|s| s * 100}.map{|v| v&.round(2)}
28
- t << ["タンク内容量(ml)"] + recipe.cumulative_weight_totals.map{|v| v&.round(2)}
28
+ t << ["タンク内容量(ml)"] + recipe.steps.map {|s|
29
+ kake = Toji::Ingredient::Kake::Expected.create(s.kake)
30
+ koji = Toji::Ingredient::Koji::Expected.create(s.koji)
31
+ s.yeast.to_f + s.lactic_acid.to_f + kake.steamed.to_f + koji.dekoji.to_f + s.water.to_f + s.alcohol.to_f
32
+ }.then {|a|
33
+ sum = 0.0
34
+ a.map {|x| sum += x}
35
+ }.map{|v| v&.round(2)}
29
36
  end
30
37
  puts table
31
38
  puts
@@ -7,7 +7,7 @@ shubo = Example::Brew::Shubo.load_yaml_file(File.dirname(__FILE__)+"/shubo.yaml"
7
7
  table = Terminal::Table.new do |t|
8
8
  t << ["作業", "日数", "品温(度)", "ボーメ", "酸度", "経過時間", "日時"]
9
9
  t << :separator
10
- shubo.each {|s|
10
+ shubo.wrapped_states.each {|s|
11
11
  temp = s.temps.map(&:to_s).join(" / ")
12
12
  t << [s.mark, s.day_label, temp, s.baume, s.acid, s.elapsed_time, s.display_time]
13
13
  }
@@ -1,8 +1,6 @@
1
1
  module Toji
2
2
  module Brew
3
3
  module Base
4
- include Enumerable
5
-
6
4
  REQUIRED_KEYS = [
7
5
  :time,
8
6
  :elapsed_time,
@@ -45,10 +43,6 @@ module Toji
45
43
  nil
46
44
  end
47
45
 
48
- def each(&block)
49
- wrapped_states.each(&block)
50
- end
51
-
52
46
  def has_keys
53
47
  result = REQUIRED_KEYS.dup
54
48
 
@@ -24,7 +24,7 @@ module Toji
24
24
  result = []
25
25
 
26
26
  @actuals.each {|moromi, name|
27
- states = moromi.select{|s| s.alcohol && s.baume}
27
+ states = moromi.wrapped_states.select{|s| s.alcohol && s.baume}
28
28
 
29
29
  xs = states.map(&:alcohol)
30
30
  ys = states.map(&:baume)
@@ -47,13 +47,13 @@ module Toji
47
47
 
48
48
  def min_baume
49
49
  @actuals.map {|moromi, name|
50
- moromi.map(&:baume).compact.min
50
+ moromi.wrapped_states.map(&:baume).compact.min
51
51
  }.compact.min || 0
52
52
  end
53
53
 
54
54
  def max_baume
55
55
  @actuals.map {|moromi, name|
56
- moromi.map(&:baume).compact.max
56
+ moromi.wrapped_states.map(&:baume).compact.max
57
57
  }.compact.max || 0
58
58
  end
59
59
 
@@ -56,13 +56,13 @@ module Toji
56
56
  xs = []
57
57
  ys = []
58
58
  text = []
59
- @brew.each {|r|
60
- val = r.send(key)
59
+ @brew.wrapped_states.each {|s|
60
+ val = s.send(key)
61
61
  if val
62
62
  [val].flatten.each_with_index {|v,i|
63
- xs << r.elapsed_time_with_offset + i
63
+ xs << s.elapsed_time_with_offset + i
64
64
  ys << v
65
- text << r.display_time
65
+ text << s.display_time
66
66
  }
67
67
  end
68
68
  }
@@ -102,7 +102,7 @@ module Toji
102
102
  def annotations
103
103
  return [] if !@enable_annotations
104
104
 
105
- @brew.select{|s| s.mark}.map {|s|
105
+ @brew.wrapped_states.select{|s| s.mark}.map {|s|
106
106
  {
107
107
  x: s.elapsed_time_with_offset,
108
108
  y: s.temps.first || 0,
@@ -131,7 +131,7 @@ module Toji
131
131
  end
132
132
 
133
133
  rows = []
134
- @brew.each {|state|
134
+ @brew.wrapped_states.each {|state|
135
135
  rows << keys.map {|k|
136
136
  v = state&.send(k)
137
137
  if Array===v
@@ -104,33 +104,6 @@ module Toji
104
104
  target_alc - (_baume - target_nihonshudo * -0.1) * coef
105
105
  end
106
106
  end
107
-
108
- def to_h
109
- {
110
- elapsed_time: elapsed_time,
111
- time: time,
112
- mark: mark,
113
- temps: temps,
114
- preset_temp: preset_temp,
115
- room_temp: room_temp,
116
- room_psychrometry: room_psychrometry,
117
- acid: acid,
118
- amino_acid: amino_acid,
119
- alcohol: alcohol,
120
- warmings: warmings,
121
- note: note,
122
-
123
- day: day,
124
- day_label: day_label,
125
- elapsed_time_with_offset: elapsed_time_with_offset,
126
- baume: baume,
127
- nihonshudo: nihonshudo,
128
- display_baume: display_baume,
129
- display_time: display_time,
130
- moromi_day: moromi_day,
131
- bmd: bmd,
132
- }
133
- end
134
107
  end
135
108
  end
136
109
  end
@@ -10,7 +10,7 @@ module Toji
10
10
  end
11
11
 
12
12
  def <<(product)
13
- @products << product
13
+ @products += [product].flatten
14
14
  self
15
15
  end
16
16
  alias_method :add, :<<
@@ -5,17 +5,17 @@ module Toji
5
5
  attr_reader :reduce_key
6
6
  attr_accessor :name
7
7
  attr_accessor :recipe
8
- attr_accessor :start_date
8
+ attr_accessor :base_date
9
9
 
10
10
  def koji_dates
11
- date = start_date
11
+ date = base_date
12
12
  recipe.steps.map {|step|
13
13
  date = date.next_day(step.koji_interval_days)
14
14
  }
15
15
  end
16
16
 
17
17
  def kake_dates
18
- date = start_date
18
+ date = base_date
19
19
  recipe.steps.map {|step|
20
20
  date = date.next_day(step.kake_interval_days)
21
21
  }
@@ -39,16 +39,6 @@ module Toji
39
39
  def weight
40
40
  @product.recipe.steps[@index].send(@type)
41
41
  end
42
-
43
- def to_h
44
- {
45
- date: date,
46
- type: type,
47
- index: index,
48
- group_index: group_index,
49
- weight: weight,
50
- }
51
- end
52
42
  end
53
43
  end
54
44
  end
@@ -69,15 +69,15 @@ module Toji
69
69
  end
70
70
 
71
71
  def table_data
72
- headers = [""] + @steps.map(&:name) + [:total]
72
+ headers = [""] + steps.map(&:name) + [:total]
73
73
  keys = [:rice_total, :kake, :koji, :alcohol, :water, :lactic_acid]
74
74
 
75
75
  cells = [keys]
76
- cells += @steps.map {|step|
76
+ cells += steps.map {|step|
77
77
  [step.rice_total, step.kake, step.koji, step.alcohol, step.water, step.lactic_acid]
78
78
  }
79
79
  cells << keys.map {|key|
80
- @steps.map(&key).compact.sum
80
+ steps.map(&key).compact.sum
81
81
  }
82
82
 
83
83
  cells = cells.map {|cell|
@@ -13,7 +13,7 @@ module Toji
13
13
 
14
14
  # 総米
15
15
  def rice_total
16
- [kake, koji].compact.map(&:to_f).sum
16
+ kake.to_f + koji.to_f
17
17
  end
18
18
 
19
19
  # 麹歩合
@@ -22,7 +22,8 @@ module Toji
22
22
  # なお、留め仕込みまでの麹歩合が20%を下回ると蒸米の溶解糖化に影響が出るので注意がいる
23
23
  # 出典: 酒造教本 P95
24
24
  def koji_rate
25
- (koji || 0.0) / rice_total
25
+ val = koji.to_f / rice_total
26
+ val.nan? ? 0.0 : val
26
27
  end
27
28
 
28
29
  # 汲水歩合
@@ -35,7 +36,8 @@ module Toji
35
36
  #
36
37
  # 出典: 酒造教本 P96
37
38
  def water_rate
38
- (water || 0.0) / rice_total
39
+ val = water.to_f / rice_total
40
+ val.nan? ? 0.0 : val
39
41
  end
40
42
 
41
43
  def round(ndigit=0, mini_ndigit=nil, half: :up)
@@ -45,14 +47,14 @@ module Toji
45
47
 
46
48
  self.class.new.tap {|o|
47
49
  o.name = name
48
- o.kake = kake.round(ndigit, half: half)
49
- o.koji = koji.round(ndigit, half: half)
50
- o.water = water.round(ndigit, half: half)
51
- o.lactic_acid = lactic_acid.round(mini_ndigit, half: half)
52
- o.alcohol = alcohol.round(ndigit, half: half)
53
- o.yeast = yeast.round(mini_ndigit, half: half)
54
- o.koji_interval_days = koji_interval_days
55
- o.kake_interval_days = kake_interval_days
50
+ o.kake = kake.to_f.round(ndigit, half: half)
51
+ o.koji = koji.to_f.round(ndigit, half: half)
52
+ o.water = water.to_f.round(ndigit, half: half)
53
+ o.lactic_acid = lactic_acid.to_f.round(mini_ndigit, half: half)
54
+ o.alcohol = alcohol.to_f.round(ndigit, half: half)
55
+ o.yeast = yeast.to_f.round(mini_ndigit, half: half)
56
+ o.koji_interval_days = koji_interval_days.to_i
57
+ o.kake_interval_days = kake_interval_days.to_i
56
58
  }
57
59
  end
58
60
 
@@ -60,14 +62,14 @@ module Toji
60
62
  if Step===other
61
63
  self.class.new.tap {|o|
62
64
  o.name = name
63
- o.kake = kake + other.kake
64
- o.koji = koji + other.koji
65
- o.water = water + other.water
66
- o.lactic_acid = lactic_acid + other.lactic_acid
67
- o.alcohol = alcohol + other.alcohol
68
- o.yeast = yeast + other.yeast
69
- o.koji_interval_days = koji_interval_days
70
- o.kake_interval_days = kake_interval_days
65
+ o.kake = kake.to_f + other.kake.to_f
66
+ o.koji = koji.to_f + other.koji.to_f
67
+ o.water = water.to_f + other.water.to_f
68
+ o.lactic_acid = lactic_acid.to_f + other.lactic_acid.to_f
69
+ o.alcohol = alcohol.to_f + other.alcohol.to_f
70
+ o.yeast = yeast.to_f + other.yeast.to_f
71
+ o.koji_interval_days = koji_interval_days.to_i
72
+ o.kake_interval_days = kake_interval_days.to_i
71
73
  }
72
74
  else
73
75
  x, y = other.coerce(self)
@@ -79,14 +81,14 @@ module Toji
79
81
  if Integer===other || Float===other
80
82
  self.class.new.tap {|o|
81
83
  o.name = name
82
- o.kake = kake * other
83
- o.koji = koji * other
84
- o.water = water * other
85
- o.lactic_acid = lactic_acid * other
86
- o.alcohol = alcohol * other
87
- o.yeast = yeast * other
88
- o.koji_interval_days = koji_interval_days
89
- o.kake_interval_days = kake_interval_days
84
+ o.kake = kake.to_f * other
85
+ o.koji = koji.to_f * other
86
+ o.water = water.to_f * other
87
+ o.lactic_acid = lactic_acid.to_f * other
88
+ o.alcohol = alcohol.to_f * other
89
+ o.yeast = yeast.to_f * other
90
+ o.koji_interval_days = koji_interval_days.to_i
91
+ o.kake_interval_days = kake_interval_days.to_i
90
92
  }
91
93
  else
92
94
  x, y = other.coerce(self)
@@ -1,3 +1,3 @@
1
1
  module Toji
2
- VERSION = "2.3.0"
2
+ VERSION = "2.5.1"
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.3.0
4
+ version: 2.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshida Tetsuya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-21 00:00:00.000000000 Z
11
+ date: 2020-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport