class Shioconv::Condiment

Public Class Methods

data_file() click to toggle source
# File lib/shioconv/condiment.rb, line 23
def self.data_file
  File.join(File.dirname(File.expand_path(__FILE__)), %w(.. .. config condiments.yaml))
end
find_by(condiment) click to toggle source
# File lib/shioconv/condiment.rb, line 2
def self.find_by(condiment)
  # find by key
  if condiment.is_a?(Symbol)
    result = raw_data.find { |data| data[:key] == condiment }
    return self.new(result) if result
  end

  # find by name
  condiment = condiment.to_s.downcase
  [:japanese_name, :english_name].each do |key|
    result = raw_data.find { |data| data[key] == condiment }
    return self.new(result) if result
  end

  # find by synonyms
  result = raw_data.find { |data| data[:synonyms].include?(condiment) }
  return self.new(result) if result

  raise ArgumentError.new("condiment '#{condiment}' does not found.")
end
list() click to toggle source
# File lib/shioconv/condiment.rb, line 31
def self.list
  raw_data.map do |datum|
    "#{sprintf('%-16s', datum[:key])} : 「#{datum[:japanese_name]}(#{datum[:english_name]})」"
  end
end
raw_data() click to toggle source
# File lib/shioconv/condiment.rb, line 27
def self.raw_data
  @@raw_data ||= YAML.parse(File.read(data_file)).to_ruby
end