class Smartdict::Translator::Base
Public Class Methods
new(translator = nil)
click to toggle source
Just to make the interface compatible
# File lib/smartdict/translator/base.rb, line 5 def initialize(translator = nil) end
Public Instance Methods
call(word, opts)
click to toggle source
# File lib/smartdict/translator/base.rb, line 8 def call(word, opts) validate_opts!(opts) driver = Smartdict::Core::DriverManager.find(opts[:driver]) translation_model = Models::Translation.find(word, opts[:from_lang], opts[:to_lang], opts[:driver]) unless translation_model translation = driver.translate(word, opts[:from_lang], opts[:to_lang]) translation_model = Models::Translation.create_from_struct(translation) end log_query(translation_model) if opts[:log] translation_model.to_struct end
Private Instance Methods
log_query(translation)
click to toggle source
# File lib/smartdict/translator/base.rb, line 31 def log_query(translation) Models::TranslationQuery.create(:translation => translation) end
validate_opts!(opts)
click to toggle source
# File lib/smartdict/translator/base.rb, line 24 def validate_opts!(opts) required_opts = [:from_lang, :to_lang, :driver, :log] required_opts.each do |opt| raise(MissingOption.new(opt)) if opts[opt].nil? end end