toji 2.3.0 → 2.5.1

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: 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