Class: Ggtranslate::ResultObject

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

Instance Method Summary collapse

Constructor Details

#initialize(http_response) ⇒ ResultObject

Returns a new instance of ResultObject.


5
6
7
8
# File 'lib/ggtranslate/result_object.rb', line 5

def initialize(http_response)
  @http_response = http_response
  process_http_response
end

Instance Method Details

#as_jsonObject


38
39
40
41
42
43
44
45
# File 'lib/ggtranslate/result_object.rb', line 38

def as_json
  {
    translated_text: translated_text,
    source_language: source_language,
    confidence: confidence,
    response_data: @response_data,
  }
end

#confidenceObject


30
31
32
# File 'lib/ggtranslate/result_object.rb', line 30

def confidence
  @response_data.dig("confidence")
end

#is_success?Boolean

Returns:

  • (Boolean)

34
35
36
# File 'lib/ggtranslate/result_object.rb', line 34

def is_success?
  @http_response.code == 200
end

#source_languageObject


26
27
28
# File 'lib/ggtranslate/result_object.rb', line 26

def source_language
  @response_data.dig("src")
end

#to_jsonObject


47
48
49
# File 'lib/ggtranslate/result_object.rb', line 47

def to_json
  as_json.to_json
end

#translated_textObject


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/ggtranslate/result_object.rb', line 10

def translated_text
  result = nil
  if @response_data.is_a? Hash
    result = @response_data.dig("sentences", 0, "trans")
  elsif @response_data.is_a? Array
    result = @response_data.first
  end

  raise "EMPTY RESULT" unless result

  result = result.split("----------")
  result.count == 1 ? result.first : result
rescue => e
  raise Ggtranslate::ResponseParsingException.new("Fail to parse response body")
end