Class: Translator

Inherits:
Object
  • Object
show all
Defined in:
lib/gem_translator.rb

Instance Method Summary collapse

Constructor Details

#initialize(source_language, target_language, api_key) ⇒ Translator

Returns a new instance of Translator.



8
9
10
11
12
13
# File 'lib/gem_translator.rb', line 8

def initialize(source_language, target_language, api_key)
  @source_language = source_language
  @target_language = target_language
  @api_key = api_key

end

Instance Method Details

#change_source_lang(source_language) ⇒ Object



14
15
16
# File 'lib/gem_translator.rb', line 14

def change_source_lang(source_language)
  @source_language = source_language
end

#change_target_lang(target_language) ⇒ Object



18
19
20
# File 'lib/gem_translator.rb', line 18

def change_target_lang(target_language)
  @target_language = target_language
end

#translate(text) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/gem_translator.rb', line 48

def translate(text)
  url = URI("https://text-translator2.p.rapidapi.com/translate")

  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true

  request = Net::HTTP::Post.new(url)
  request["content-type"] = 'application/x-www-form-urlencoded'
  request["X-RapidAPI-Key"] = @api_key
  request["X-RapidAPI-Host"] = 'text-translator2.p.rapidapi.com'
  request.body = "source_language=#{@source_language}&target_language=#{@target_language}&text=#{text}"

  response = http.request(request)
  translation_data = JSON.parse(response.read_body)

  translation_data.dig("data", "translatedText")
end

#view_code(language_name) ⇒ Object



22
23
24
25
# File 'lib/gem_translator.rb', line 22

def view_code(language_name)
  code = view_code_all[language_name]
  code || "Language not found"
end

#view_code_allObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/gem_translator.rb', line 27

def view_code_all

  @url='https://rapidapi.com/dickyagustin/api/text-translator2/details'
  html = URI.open(@url)
  doc = Nokogiri::HTML(html)

  data = {}

  doc.css('table tr').each do |row|
    columns = row.css('td')
    if columns.size == 2
      language_name = columns[0].text.strip
      language_code = columns[1].text.strip
      data[language_name] = language_code
    end
  end
  data

end