toji 2.9.0 → 2.13.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 +4 -4
- data/example/calendar.ipynb +42 -51
- data/example/calendar.yaml +6 -6
- data/example/calendar_file.ipynb +36 -36
- data/example/example_core.rb +877 -205
- data/example/kake_ingredient.rb +21 -15
- data/example/koji_ingredient.rb +31 -21
- data/example/{koji_making.ipynb → koji_progress.ipynb} +14 -14
- data/example/{koji_making.rb → koji_progress.rb} +3 -2
- data/example/{koji_making.yaml → koji_progress.yaml} +8 -9
- data/example/{koji_making_multi.ipynb → koji_progress_multi.ipynb} +21 -22
- data/example/{moromi.ipynb → moromi_progress.ipynb} +22 -22
- data/example/{moromi.rb → moromi_progress.rb} +3 -2
- data/example/{moromi.yaml → moromi_progress.yaml} +0 -0
- data/example/moto_progress.ipynb +121 -0
- data/example/{moto.rb → moto_progress.rb} +3 -2
- data/example/{moto.yaml → moto_progress.yaml} +14 -15
- data/example/recipe.rb +44 -32
- data/lib/toji.rb +4 -1
- data/lib/toji/calendar.rb +18 -18
- data/lib/toji/calendar/date_column.rb +7 -22
- data/lib/toji/calendar/date_row.rb +6 -6
- data/lib/toji/ingredient.rb +6 -2
- data/lib/toji/ingredient/alcohol.rb +14 -0
- data/lib/toji/ingredient/base.rb +11 -0
- data/lib/toji/ingredient/kake.rb +3 -9
- data/lib/toji/ingredient/koji.rb +19 -10
- data/lib/toji/ingredient/lactic_acid.rb +14 -0
- data/lib/toji/ingredient/rice.rb +50 -4
- data/lib/toji/ingredient/tanekoji.rb +29 -0
- data/lib/toji/ingredient/water.rb +18 -0
- data/lib/toji/ingredient/yeast.rb +20 -0
- data/lib/toji/processing.rb +18 -0
- data/lib/toji/processing/base.rb +7 -0
- data/lib/toji/processing/cooled_rice.rb +22 -0
- data/lib/toji/processing/cooled_rice_element.rb +8 -0
- data/lib/toji/processing/dekoji.rb +22 -0
- data/lib/toji/processing/dekoji_element.rb +8 -0
- data/lib/toji/processing/kake_processing.rb +7 -0
- data/lib/toji/processing/koji_processing.rb +10 -0
- data/lib/toji/processing/rice_processing.rb +19 -0
- data/lib/toji/processing/soaked_rice.rb +49 -0
- data/lib/toji/processing/soaked_rice_element.rb +18 -0
- data/lib/toji/processing/steamed_rice.rb +22 -0
- data/lib/toji/processing/steamed_rice_element.rb +8 -0
- data/lib/toji/product.rb +11 -83
- data/lib/toji/product/schedule_factory.rb +74 -0
- data/lib/toji/progress.rb +23 -0
- data/lib/toji/progress/base_progress.rb +37 -0
- data/lib/toji/progress/base_state.rb +39 -0
- data/lib/toji/progress/builder.rb +53 -0
- data/lib/toji/progress/graph.rb +11 -0
- data/lib/toji/{brew → progress}/graph/ab.rb +4 -4
- data/lib/toji/{brew → progress}/graph/bmd.rb +2 -2
- data/lib/toji/{brew/graph/multi_progress.rb → progress/graph/multi_progress_note.rb} +11 -11
- data/lib/toji/{brew/graph/progress.rb → progress/graph/progress_note.rb} +20 -18
- data/lib/toji/progress/koji_progress.rb +15 -0
- data/lib/toji/progress/koji_state.rb +23 -0
- data/lib/toji/{brew/moromi.rb → progress/moromi_progress.rb} +9 -5
- data/lib/toji/progress/moromi_state.rb +77 -0
- data/lib/toji/progress/moto_progress.rb +15 -0
- data/lib/toji/progress/moto_state.rb +31 -0
- data/lib/toji/progress/progress.rb +15 -0
- data/lib/toji/progress/state.rb +9 -0
- data/lib/toji/progress/state/baume_to_nihonshudo.rb +21 -0
- data/lib/toji/progress/state/nihonshudo_to_baume.rb +21 -0
- data/lib/toji/recipe.rb +52 -39
- data/lib/toji/recipe/ab_expect.rb +2 -2
- data/lib/toji/recipe/action.rb +8 -0
- data/lib/toji/recipe/step.rb +97 -71
- data/lib/toji/schedule.rb +5 -0
- data/lib/toji/schedule/action_schedule.rb +9 -0
- data/lib/toji/schedule/base.rb +9 -0
- data/lib/toji/schedule/kake_schedule.rb +11 -0
- data/lib/toji/schedule/koji_schedule.rb +11 -0
- data/lib/toji/schedule/rice_schedule.rb +16 -0
- data/lib/toji/utils.rb +43 -0
- data/lib/toji/version.rb +1 -1
- metadata +60 -41
- data/lib/toji/brew.rb +0 -18
- data/lib/toji/brew/base.rb +0 -55
- data/lib/toji/brew/builder.rb +0 -98
- data/lib/toji/brew/graph.rb +0 -11
- data/lib/toji/brew/koji.rb +0 -11
- data/lib/toji/brew/moto.rb +0 -11
- data/lib/toji/brew/state.rb +0 -122
- data/lib/toji/brew/wrapped_state.rb +0 -109
- data/lib/toji/ingredient/kake/actual.rb +0 -26
- data/lib/toji/ingredient/kake/base.rb +0 -18
- data/lib/toji/ingredient/kake/expected.rb +0 -40
- data/lib/toji/ingredient/koji/actual.rb +0 -29
- data/lib/toji/ingredient/koji/actual_fermentable.rb +0 -15
- data/lib/toji/ingredient/koji/base.rb +0 -35
- data/lib/toji/ingredient/koji/expected.rb +0 -45
- data/lib/toji/ingredient/koji/expected_fermentable.rb +0 -15
- data/lib/toji/ingredient/koji_rate.rb +0 -16
- data/lib/toji/ingredient/rice/actual_steamable.rb +0 -27
- data/lib/toji/ingredient/rice/base.rb +0 -40
- data/lib/toji/ingredient/rice/expected_steamable.rb +0 -27
- data/lib/toji/ingredient/rice_rate.rb +0 -23
- data/lib/toji/product/event.rb +0 -13
- data/lib/toji/product/rice_event.rb +0 -30
- data/lib/toji/product/rice_event_group.rb +0 -21
| @@ -1,39 +1,24 @@ | |
| 1 1 | 
             
            module Toji
         | 
| 2 2 | 
             
              class Calendar
         | 
| 3 3 | 
             
                class DateColumn
         | 
| 4 | 
            -
                  attr_reader : | 
| 4 | 
            +
                  attr_reader :rice_schedules
         | 
| 5 5 |  | 
| 6 6 | 
             
                  def initialize
         | 
| 7 | 
            -
                    @ | 
| 7 | 
            +
                    @rice_schedules = []
         | 
| 8 8 | 
             
                  end
         | 
| 9 9 |  | 
| 10 | 
            -
                  def <<( | 
| 11 | 
            -
                    @ | 
| 10 | 
            +
                  def <<(schedule)
         | 
| 11 | 
            +
                    @rice_schedules << schedule
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 | 
             
                  alias_method :add, :<<
         | 
| 14 14 |  | 
| 15 | 
            -
                  def event_groups
         | 
| 16 | 
            -
                    @rice_events.group_by {|e|
         | 
| 17 | 
            -
                      e.group_key
         | 
| 18 | 
            -
                    }.values
         | 
| 19 | 
            -
                  end
         | 
| 20 | 
            -
             | 
| 21 15 | 
             
                  def text
         | 
| 22 | 
            -
                     | 
| 23 | 
            -
                      name =  | 
| 24 | 
            -
                      weight = "%.17g" %  | 
| 16 | 
            +
                    @rice_schedules.map {|schedule|
         | 
| 17 | 
            +
                      name = schedule.product.name
         | 
| 18 | 
            +
                      weight = "%.17g" % schedule.expect.weight
         | 
| 25 19 | 
             
                      "#{name}: #{weight}"
         | 
| 26 20 | 
             
                    }.join("<br>")
         | 
| 27 21 | 
             
                  end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                  def column_events
         | 
| 30 | 
            -
                    event_groups.map {|es|
         | 
| 31 | 
            -
                      {
         | 
| 32 | 
            -
                        product: es.first.product,
         | 
| 33 | 
            -
                        weight: es.map(&:weight).sum,
         | 
| 34 | 
            -
                      }
         | 
| 35 | 
            -
                    }
         | 
| 36 | 
            -
                  end
         | 
| 37 22 | 
             
                end
         | 
| 38 23 | 
             
              end
         | 
| 39 24 | 
             
            end
         | 
| @@ -11,16 +11,16 @@ module Toji | |
| 11 11 | 
             
                    @kakes = []
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 |  | 
| 14 | 
            -
                  def <<( | 
| 15 | 
            -
                    case  | 
| 14 | 
            +
                  def <<(schedule)
         | 
| 15 | 
            +
                    case schedule.rice_type
         | 
| 16 16 | 
             
                    when :koji
         | 
| 17 | 
            -
                      index =  | 
| 17 | 
            +
                      index = schedule.step_indexes.first
         | 
| 18 18 | 
             
                      @kojis[index] ||= DateColumn.new
         | 
| 19 | 
            -
                      @kojis[index] <<  | 
| 19 | 
            +
                      @kojis[index] << schedule
         | 
| 20 20 | 
             
                    when :kake
         | 
| 21 | 
            -
                      index =  | 
| 21 | 
            +
                      index = schedule.step_indexes.first
         | 
| 22 22 | 
             
                      @kakes[index] ||= DateColumn.new
         | 
| 23 | 
            -
                      @kakes[index] <<  | 
| 23 | 
            +
                      @kakes[index] << schedule
         | 
| 24 24 | 
             
                    end
         | 
| 25 25 | 
             
                  end
         | 
| 26 26 | 
             
                  alias_method :add, :<<
         | 
    
        data/lib/toji/ingredient.rb
    CHANGED
    
    | @@ -1,8 +1,12 @@ | |
| 1 | 
            +
            require 'toji/ingredient/base'
         | 
| 1 2 | 
             
            require 'toji/ingredient/rice'
         | 
| 2 3 | 
             
            require 'toji/ingredient/kake'
         | 
| 3 4 | 
             
            require 'toji/ingredient/koji'
         | 
| 4 | 
            -
            require 'toji/ingredient/ | 
| 5 | 
            -
            require 'toji/ingredient/ | 
| 5 | 
            +
            require 'toji/ingredient/tanekoji'
         | 
| 6 | 
            +
            require 'toji/ingredient/water'
         | 
| 7 | 
            +
            require 'toji/ingredient/lactic_acid'
         | 
| 8 | 
            +
            require 'toji/ingredient/alcohol'
         | 
| 9 | 
            +
            require 'toji/ingredient/yeast'
         | 
| 6 10 |  | 
| 7 11 | 
             
            module Toji
         | 
| 8 12 | 
             
              module Ingredient
         | 
    
        data/lib/toji/ingredient/kake.rb
    CHANGED
    
    | @@ -1,16 +1,10 @@ | |
| 1 | 
            -
            require 'toji/ingredient/kake/base'
         | 
| 2 | 
            -
            require 'toji/ingredient/kake/expected'
         | 
| 3 | 
            -
            require 'toji/ingredient/kake/actual'
         | 
| 4 | 
            -
             | 
| 5 1 | 
             
            module Toji
         | 
| 6 2 | 
             
              module Ingredient
         | 
| 7 3 | 
             
                module Kake
         | 
| 8 | 
            -
                   | 
| 9 | 
            -
                    Expected.new(raw, rice_rate: rice_rate)
         | 
| 10 | 
            -
                  end
         | 
| 4 | 
            +
                  include Rice
         | 
| 11 5 |  | 
| 12 | 
            -
                  def  | 
| 13 | 
            -
                     | 
| 6 | 
            +
                  def group_key
         | 
| 7 | 
            +
                    [brand, polishing_ratio, made_in, year, soaking_ratio, steaming_ratio, cooling_ratio].join(":")
         | 
| 14 8 | 
             
                  end
         | 
| 15 9 | 
             
                end
         | 
| 16 10 | 
             
              end
         | 
    
        data/lib/toji/ingredient/koji.rb
    CHANGED
    
    | @@ -1,18 +1,27 @@ | |
| 1 | 
            -
            require 'toji/ingredient/koji/base'
         | 
| 2 | 
            -
            require 'toji/ingredient/koji/expected_fermentable'
         | 
| 3 | 
            -
            require 'toji/ingredient/koji/expected'
         | 
| 4 | 
            -
            require 'toji/ingredient/koji/actual_fermentable'
         | 
| 5 | 
            -
            require 'toji/ingredient/koji/actual'
         | 
| 6 | 
            -
             | 
| 7 1 | 
             
            module Toji
         | 
| 8 2 | 
             
              module Ingredient
         | 
| 9 3 | 
             
                module Koji
         | 
| 10 | 
            -
                   | 
| 11 | 
            -
             | 
| 4 | 
            +
                  include Rice
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  # 種麹 (has_many: Toji::Ingredient::Tanekoji)
         | 
| 7 | 
            +
                  attr_reader :tanekojis
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  # 出麹歩合
         | 
| 10 | 
            +
                  #
         | 
| 11 | 
            +
                  # 出麹歩合17〜19%のものが麹菌の繁殖のほどよい麹である
         | 
| 12 | 
            +
                  #
         | 
| 13 | 
            +
                  # 出典: 酒造教本 P67
         | 
| 14 | 
            +
                  attr_reader :dekoji_ratio
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  def dekoji
         | 
| 17 | 
            +
                    weight + weight * dekoji_ratio
         | 
| 12 18 | 
             
                  end
         | 
| 13 19 |  | 
| 14 | 
            -
                   | 
| 15 | 
            -
             | 
| 20 | 
            +
                  # Scheduleへのグループ識別子
         | 
| 21 | 
            +
                  def group_key
         | 
| 22 | 
            +
                    keys1 = [brand, polishing_ratio, made_in, year, soaking_ratio, steaming_ratio, cooling_ratio, dekoji_ratio]
         | 
| 23 | 
            +
                    keys2 = tanekojis&.map(&:group_key)&.sort || []
         | 
| 24 | 
            +
                    (keys1 + keys2).join(":")
         | 
| 16 25 | 
             
                  end
         | 
| 17 26 | 
             
                end
         | 
| 18 27 | 
             
              end
         | 
    
        data/lib/toji/ingredient/rice.rb
    CHANGED
    
    | @@ -1,10 +1,56 @@ | |
| 1 | 
            -
            require 'toji/ingredient/rice/base'
         | 
| 2 | 
            -
            require 'toji/ingredient/rice/expected_steamable'
         | 
| 3 | 
            -
            require 'toji/ingredient/rice/actual_steamable'
         | 
| 4 | 
            -
             | 
| 5 1 | 
             
            module Toji
         | 
| 6 2 | 
             
              module Ingredient
         | 
| 7 3 | 
             
                module Rice
         | 
| 4 | 
            +
                  include Base
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  # 白米
         | 
| 7 | 
            +
                  attr_accessor :weight
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  # 品種、精米歩合、産地、年度
         | 
| 10 | 
            +
                  attr_reader :brand
         | 
| 11 | 
            +
                  attr_reader :polishing_ratio
         | 
| 12 | 
            +
                  attr_reader :made_in
         | 
| 13 | 
            +
                  attr_reader :year
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  # 浸漬米吸水率
         | 
| 16 | 
            +
                  #
         | 
| 17 | 
            +
                  # 標準的な白米吸水率は掛米で30〜35%、麹米で33%前後で許容範囲はかなり狭い
         | 
| 18 | 
            +
                  #
         | 
| 19 | 
            +
                  # 出典: 酒造教本 P38
         | 
| 20 | 
            +
                  attr_reader :soaking_ratio
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  def soaked
         | 
| 23 | 
            +
                    weight + weight * soaking_ratio
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  # 蒸米吸水率
         | 
| 27 | 
            +
                  #
         | 
| 28 | 
            +
                  # 蒸しにより通常甑置き前の浸漬白米の重量よりさらに12〜13%吸水する
         | 
| 29 | 
            +
                  # 蒸しにより吸水の増加が13%を超える場合は、蒸米の表面が柔らかくべとつく蒸米になりやすい
         | 
| 30 | 
            +
                  # 蒸米吸水率は麹米及び酒母米で41〜43%、掛米は39〜40%で、吟醸造りの場合は数%低い
         | 
| 31 | 
            +
                  #
         | 
| 32 | 
            +
                  # 出典: 酒造教本 P48
         | 
| 33 | 
            +
                  attr_reader :steaming_ratio
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  def steamed
         | 
| 36 | 
            +
                    weight + weight * steaming_ratio
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  # 放冷
         | 
| 40 | 
            +
                  #
         | 
| 41 | 
            +
                  # 冷却法で若干異なるが蒸米の冷却により掛米で白米重量の10%、麹米で8%程度の水が失われる
         | 
| 42 | 
            +
                  # 出典: 酒造教本 P49
         | 
| 43 | 
            +
                  #
         | 
| 44 | 
            +
                  # 麹を造るのに適した蒸米は、引込時の吸水率が33%を理想とし、許容幅はプラスマイナス1%である
         | 
| 45 | 
            +
                  # 出典: 酒造教本 P59
         | 
| 46 | 
            +
                  attr_reader :cooling_ratio
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  def cooled
         | 
| 49 | 
            +
                    weight + weight * cooling_ratio
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  # Product.base_dateからの日数差
         | 
| 53 | 
            +
                  attr_reader :interval_days
         | 
| 8 54 | 
             
                end
         | 
| 9 55 | 
             
              end
         | 
| 10 56 | 
             
            end
         | 
| @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            module Toji
         | 
| 2 | 
            +
              module Ingredient
         | 
| 3 | 
            +
                module Tanekoji
         | 
| 4 | 
            +
                  include Base
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  # 麹 (belongs_to: Toji::Ingredient::Koji)
         | 
| 7 | 
            +
                  attr_reader :koji
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  # 種麹の種類
         | 
| 10 | 
            +
                  attr_reader :brand
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  # 種麹
         | 
| 13 | 
            +
                  #
         | 
| 14 | 
            +
                  # 総破精麹を造るには、種麹の量を麹米100kgあたり種麹100gとする
         | 
| 15 | 
            +
                  # 突き破精麹を造るには、種麹の量を麹米100kgあたり種麹80gとする
         | 
| 16 | 
            +
                  #
         | 
| 17 | 
            +
                  # 出典: 酒造教本 P66
         | 
| 18 | 
            +
                  attr_reader :ratio
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  def weight
         | 
| 21 | 
            +
                    koji.weight * ratio
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  def group_key
         | 
| 25 | 
            +
                    [brand, ratio].join(":")
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            module Toji
         | 
| 2 | 
            +
              module Ingredient
         | 
| 3 | 
            +
                module Water
         | 
| 4 | 
            +
                  include Base
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  # 汲水
         | 
| 7 | 
            +
                  attr_accessor :weight
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  # 硬度
         | 
| 10 | 
            +
                  attr_reader :calcium_hardness
         | 
| 11 | 
            +
                  attr_reader :magnesium_hardness
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  def group_key
         | 
| 14 | 
            +
                    [calcium_hardness, magnesium_hardness].join(":")
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            module Toji
         | 
| 2 | 
            +
              module Ingredient
         | 
| 3 | 
            +
                module Yeast
         | 
| 4 | 
            +
                  include Base
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  # 酵母
         | 
| 7 | 
            +
                  attr_accessor :weight
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  # 単位 (ex: ampoule, gram, ml)
         | 
| 10 | 
            +
                  attr_reader :unit
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  # 酵母名、協会酵母番号
         | 
| 13 | 
            +
                  attr_reader :brand
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  def group_key
         | 
| 16 | 
            +
                    [brand, unit].join(":")
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            require 'toji/processing/base'
         | 
| 2 | 
            +
            require 'toji/processing/rice_processing'
         | 
| 3 | 
            +
            require 'toji/processing/koji_processing'
         | 
| 4 | 
            +
            require 'toji/processing/kake_processing'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            require 'toji/processing/soaked_rice'
         | 
| 7 | 
            +
            require 'toji/processing/soaked_rice_element'
         | 
| 8 | 
            +
            require 'toji/processing/steamed_rice'
         | 
| 9 | 
            +
            require 'toji/processing/steamed_rice_element'
         | 
| 10 | 
            +
            require 'toji/processing/cooled_rice'
         | 
| 11 | 
            +
            require 'toji/processing/cooled_rice_element'
         | 
| 12 | 
            +
            require 'toji/processing/dekoji'
         | 
| 13 | 
            +
            require 'toji/processing/dekoji_element'
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            module Toji
         | 
| 16 | 
            +
              module Processing
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            module Toji
         | 
| 2 | 
            +
              module Processing
         | 
| 3 | 
            +
                module CooledRice
         | 
| 4 | 
            +
                  # 親 (belongs_to: Toji::Processing::RiceProcessing)
         | 
| 5 | 
            +
                  attr_reader :processing
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                  # 要素 (has_many: Toji::Processing::CooledRiceElement)
         | 
| 8 | 
            +
                  attr_reader :elements
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  # 放冷後蒸米総重量
         | 
| 11 | 
            +
                  def weight
         | 
| 12 | 
            +
                    (elements || []).map(&:weight).sum
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  # 放冷後蒸米歩合
         | 
| 16 | 
            +
                  def cooling_ratio
         | 
| 17 | 
            +
                    raw_weight = processing.soaked_rice.weight.to_f
         | 
| 18 | 
            +
                    (weight.to_f - raw_weight) / raw_weight
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
            end
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            module Toji
         | 
| 2 | 
            +
              module Processing
         | 
| 3 | 
            +
                module Dekoji
         | 
| 4 | 
            +
                  # 親 (belongs_to: Toji::Processing::RiceProcessing)
         | 
| 5 | 
            +
                  attr_reader :processing
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                  # 要素 (has_many: Toji::Processing::DekojiElement)
         | 
| 8 | 
            +
                  attr_reader :elements
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  # 出麹総重量
         | 
| 11 | 
            +
                  def weight
         | 
| 12 | 
            +
                    (elements || []).map(&:weight).sum
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  # 出麹歩合
         | 
| 16 | 
            +
                  def dekoji_ratio
         | 
| 17 | 
            +
                    raw_weight = processing.soaked_rice.weight.to_f
         | 
| 18 | 
            +
                    (weight.to_f - raw_weight) / raw_weight
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
            end
         | 
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            module Toji
         | 
| 2 | 
            +
              module Processing
         | 
| 3 | 
            +
                module RiceProcessing
         | 
| 4 | 
            +
                  include Base
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  # 目標値 (Toji::Ingredient::Rice)
         | 
| 7 | 
            +
                  attr_reader :expect
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  # 浸漬実績値 (Toji::Processing::SoakedRice)
         | 
| 10 | 
            +
                  attr_reader :soaked_rice
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  # 蒸米実績値 (Toji::Processing::SteamedRice)
         | 
| 13 | 
            +
                  attr_reader :steamed_rice
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  # 放冷実績値 (Toji::Processing::CooledRice)
         | 
| 16 | 
            +
                  attr_reader :cooled_rice
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            end
         |