opener-chained-daemon 3.0.7 → 3.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f37e21fff5f35b6736a17e4d4efcad5d496c1c2ec63e74c7b8907db45210770
4
- data.tar.gz: 6e3b80ba665a950407b1c4bcba9e0f6074db41db86b2da233b21c1db638c792f
3
+ metadata.gz: 8f4ae996f2569fd72fbb224a89aa6f1bd6335419a514db0714858e9c60e51511
4
+ data.tar.gz: ce58d5715abd85083f70e2b6bb7789581f7007a3be4583050af0c401c61a224e
5
5
  SHA512:
6
- metadata.gz: 5738bfe0a4dbf5ff66010a9aa54ef7de4e951e7728d753000b99effbb0f4c17884791a8eb6c58fcfcafd51f0ba94520148f6d3699dd592c74145766e2c06917f
7
- data.tar.gz: 7100f63ac6fd859b98f28eac22dd73e60419f21fc40e3b59c34c6550915182ca0598eb74f2ec9eddaa870fd4b91f94b31a694f70fc62ed20307b1415c0e82804
6
+ metadata.gz: 9cfb8fc04839f942f05d182bbac523764502a8f204679bf81515272839763572d72707ec9156f662f1538149a7f20b79741e3ad941b7da98bdb1ab0a7dcfd82b
7
+ data.tar.gz: 6d03594f42b21240fc2210747884cd0de4296c469b581561b9c3845a86cb2696265052cae19002c7e1308cc28ab118927c2978ff67e88e6ea7e57dba2eceefaf
@@ -3,6 +3,9 @@ require 'oga'
3
3
  require 'hashie'
4
4
  require 'google/cloud/translate'
5
5
 
6
+ require 'rexml/document'
7
+ require 'rexml/formatters/pretty'
8
+
6
9
  require 'opener/daemons'
7
10
 
8
11
  require_relative 'chained_daemon/languages_cache'
@@ -47,6 +47,7 @@ module Opener
47
47
  output = xml.to_s
48
48
  end
49
49
 
50
+ output = pretty_print output if params[:cache_keys][:environment] == 'staging'
50
51
  output
51
52
 
52
53
  rescue Core::UnsupportedLanguageError
@@ -54,6 +55,17 @@ module Opener
54
55
  output
55
56
  end
56
57
 
58
+ def pretty_print(output)
59
+ doc = REXML::Document.new output
60
+ doc.context[:attribute_quote] = :quote
61
+ out = ""
62
+ formatter = REXML::Formatters::Pretty.new
63
+ formatter.compact = true
64
+ formatter.write(doc, out)
65
+
66
+ out.strip
67
+ end
68
+
57
69
  def translate xml, params
58
70
  raw = xml.at :raw
59
71
  case translate_service params
@@ -47,7 +47,14 @@ Example:
47
47
  run do |opts, args|
48
48
  daemon = ChainedDaemon.new args: args
49
49
  input = STDIN.tty? ? nil : STDIN.read
50
- params = JSON.parse ENV['PARAMS'] if ENV['PARAMS']
50
+
51
+ params = if ENV['PARAMS']
52
+ JSON.parse ENV['PARAMS']
53
+ else
54
+ {}
55
+ end
56
+ # Set environment as staging from console for testing purposes
57
+ params[:cache_keys] = { environment: 'staging', merged: true }
51
58
 
52
59
  puts daemon.run input, params || {}
53
60
  end
@@ -1,7 +1,7 @@
1
1
  module Opener
2
2
  class ChainedDaemon
3
3
 
4
- VERSION = '3.0.7'
4
+ VERSION = '3.1.4'
5
5
 
6
6
  end
7
7
  end
@@ -8,6 +8,9 @@ module Opener
8
8
  BASE_URL = ENV['STANZA_SERVER']
9
9
  LANGUAGES_CACHE = Opener::ChainedDaemon::LanguagesCache.new
10
10
 
11
+ RTL_LANGUAGES = [ "ar", "ara", "arc", "ae", "ave", "egy", "he", "heb", "nqo", "pal", "phn", "sam",
12
+ "syc", "syr", "fa", "per", "fas", "ku", "kur", "ur", "urd" ]
13
+
11
14
  POS = {
12
15
  'DET' => 'D',
13
16
  'ADJ' => 'G',
@@ -40,16 +43,31 @@ module Opener
40
43
  raise Core::UnsupportedLanguageError.new kaf.language
41
44
  end
42
45
 
43
- response = Faraday.post BASE_URL, {lang: kaf.language, input: kaf.raw}.to_query
46
+ input = kaf.raw
47
+ input = input.gsub(/\,[^\ ]/, ', ')
48
+ response = Faraday.post BASE_URL, {lang: kaf.language, input: input}.to_query
44
49
  raise Core::UnsupportedLanguageError, kaf.language if response.status == 406
45
50
  raise response.body if response.status >= 400
46
51
  tokens = JSON.parse response.body
47
52
 
48
53
  w_index = 0
54
+
55
+ tokens.map{ |t| t.reverse! } if RTL_LANGUAGES.include? kaf.language
49
56
  tokens.each_with_index do |sentence, s_index|
57
+ miscs = {}
50
58
  sentence.each_with_index do |word|
51
59
  w_index += 1
52
- misc = word['misc']
60
+ # save misc for later usase in a MWT case
61
+ if word['id'].is_a? Array
62
+ word['id'].each { |id| miscs[id] = word['misc'] }
63
+ next
64
+ end
65
+ misc = word['misc'] || miscs[word['id']]
66
+
67
+ Rollbar.scoped({ input: input, params: params, tokens: tokens, word: word }) do
68
+ raise 'Missing misc'
69
+ end if misc.nil?
70
+
53
71
  offset = misc.match(/start_char=(\d+)|/)[1].to_i
54
72
  length = misc.match(/end_char=(\d+)/)[1].to_i - offset
55
73
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opener-chained-daemon
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.7
4
+ version: 3.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - development@olery.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-11 00:00:00.000000000 Z
11
+ date: 2020-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport