Sha256: 0b85fd058e88481262fc62799367bc535a6208adf7d6fed9f27f762828c615d0
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
module Nele class GenericTranslator attr_reader :uri attr_accessor :config def config @config ||= {} end def initialize validate_children() end def parse_uri(uri) URI.parse(uri.gsub(" ", "+")) end def name klass_name = self.class.to_s.split("::")[1] @name ||= klass_name.split('Translator')[0].downcase end def translate(str) build_request(str) res = connect() parse_response(res) end class << self def build_translator_class_name(name) klass_name = name.to_s.capitalize + "Translator" begin Nele.const_get(klass_name) rescue NameError raise(::Nele::TranslatorInvalidError, "invalid translator") end end def check_inheritance(klass) raise(::Nele::TranslatorMissingError, "translator should inherit from GenericTranslator" ) if klass.superclass != Nele::GenericTranslator end end private def validate_children unless self.class == Nele::GenericTranslator [:build_request, :connect, :parse_response, :config].each do |m| raise(Nele::TranslatorMissingMethodError, "#{m.to_s} method is required") unless respond_to?(m) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nele-0.2.2 | lib/nele/generic_translator.rb |