module Toji::Utils

Public Class Methods

activemodel_defined?() click to toggle source
# File lib/toji/utils.rb, line 3
def self.activemodel_defined?
  Object.const_defined?(:ActiveModel) && ActiveModel.const_defined?(:Validations)
end
check_dup(obj) click to toggle source
# File lib/toji/utils.rb, line 7
def self.check_dup(obj)
  if activemodel_defined? && ActiveModel::Validations===obj
    # ok
  else
    if !obj.class.private_method_defined?(:initialize_copy, false)
      raise Error, "implementation required: #{obj.class}.initialize_copy"
    end
  end
end
merge_ingredients(ingredients1, ingredients2) click to toggle source
# File lib/toji/utils.rb, line 17
def self.merge_ingredients(ingredients1, ingredients2)
  result = {}

  ingredients1&.each {|src|
    dst = result[src.ingredient_key]
    if dst
      dst.weight = dst.weight.to_f + src.weight.to_f
    else
      result[src.ingredient_key] = src
    end
  }

  ingredients2&.each {|src|
    dst = result[src.ingredient_key]
    if dst
      dst.weight = dst.weight.to_f + src.weight.to_f
    else
      result[src.ingredient_key] = src.dup
    end
  }

  result.values
end