module FanyiAPI::API

Constants

StrategyNotRegistered

Public Instance Methods

call(strategy="youdao", query) click to toggle source

call strategy with action and arguments

# File lib/fanyi_api/api.rb, line 20
def call(strategy="youdao", query)
  stra = instance_variable_get :"@#{strategy}"
  raise StrategyNotRegistered if stra.nil?
  stra.(query)
end
register(strategy, options={}) click to toggle source

register a strategy

# File lib/fanyi_api/api.rb, line 9
def register(strategy, options={})
  stra_sym = :"@#{strategy}"
  stra = instance_variable_get stra_sym
  if stra.nil?
    strategy_class = eval("FanyiAPI::Strategies::#{strategy.camel_case}")
    instance_variable_set stra_sym, strategy_class.new(options).extend(FanyiAPI::Requester)
    define_method(strategy) { instance_variable_get stra_sym }
  end
end