# frozen_string_literal: true #-- # wwwjdic # rubocop:disable Style/AsciiComments # © 2014 Marco Bresciani # rubocop:enable Style/AsciiComments # # This file is part of wwwjdic. # # wwwjdic is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # wwwjdic is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with wwwjdic. If not, see . # # SPDX-FileCopyrightText: 2014 Marco Bresciani # # SPDX-License-Identifier: GPL-3.0-or-later #++ require_relative '../constants' module WWWJDic module Parsers # This class is an implementation of the Parsable duck type that # checks the display type. The only needed parameter is a boolean, # with +true+ for regular. # # M = backdoor entry (regular display) or Z = backdoor entry (raw # dictionary display) # # Author:: {Marco Bresciani}[mailto:marcobresciani_1974@libero.it] # Copyright:: (C) 2014 Marco Bresciani # License:: GNU General Public License version 3 class Display include Utils::Raisers # The parsable duck type interface to every parser usage. def parse(value = :display) raise ArgumentError, I18n.t('error.nil') if value.nil? raise ArgumentError, I18n.t('error.param', value: value) unless value.is_a? Symbol raiser_array('error.param', value, DISPLAY.keys) value end end end end