phrase_assembler 1.2.4 → 1.2.5

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.
@@ -0,0 +1,13 @@
1
+ class PAErrorProxy < String
2
+ def [](index)
3
+ return self
4
+ end
5
+
6
+ def to_s
7
+ return ""
8
+ end
9
+
10
+ def method_missing(sym, *args, &block)
11
+ return self
12
+ end
13
+ end
@@ -1,46 +1,87 @@
1
+ require 'pa_proxies/pa_error_proxy'
1
2
  class PAUserProxy
2
3
  attr_accessor :user
3
4
  attr_accessor :proxy
4
- def initialize(p_user, p_proxy = nil)
5
+ attr_accessor :supress_errors
6
+ attr_accessor :logger
7
+
8
+ def initialize(p_user, p_proxy = nil, p_supress_errors = true, p_logger = nil)
5
9
  self.user = p_user
6
10
  self.proxy = p_proxy
11
+ self.supress_errors = p_supress_errors
12
+ self.logger = p_logger
7
13
  end
8
14
 
9
15
  def to_s(options = {})
10
- options = {:default => @user}.merge(options)
11
- self.proxy.to_s(options)
16
+ begin
17
+ options = {:default => @user}.merge(options)
18
+ self.proxy.to_s(options)
19
+ rescue Exception => e
20
+ if self.supress_errors
21
+ self.logger.error "Phrase: #{e}" unless self.logger.nil?
22
+ return PAErrorProxy.new("")
23
+ else
24
+ raise(e)
25
+ end
26
+ end
12
27
  end
13
28
 
14
29
  def method_missing(sym, *args, &block)
15
- if args[0].is_a? Hash
16
- options = args.delete_at(0)
17
- end_proxy = self.proxy.method_missing(sym, *args, &block)
18
- options[:default] = self.user
19
- if end_proxy.data.is_a? Array
20
- return end_proxy.collect{|proxy| proxy.to_s(options)}
30
+ begin
31
+ if args[0].is_a? Hash
32
+ options = args.delete_at(0)
33
+ end_proxy = self.proxy.method_missing(sym, *args, &block)
34
+ options[:default] = self.user
35
+ if end_proxy.data.is_a? Array
36
+ return end_proxy.collect{|proxy| proxy.to_s(options)}
37
+ else
38
+ return end_proxy.to_s(options)
39
+ end
21
40
  else
22
- return end_proxy.to_s(options)
41
+ proxy = self.proxy.method_missing(sym, *args, &block)
42
+ if proxy.data.is_a? String
43
+ return proxy.to_s({:default => self.user})
44
+ else
45
+ return self.class.new(self.user, proxy, self.supress_errors)
46
+ end
23
47
  end
24
- else
25
- proxy = self.proxy.method_missing(sym, *args, &block)
26
- if proxy.data.is_a? String
27
- return proxy.to_s({:default => self.user})
48
+ rescue Exception => e
49
+ if self.supress_errors
50
+ self.logger.error "Phrase: #{e}" unless self.logger.nil?
51
+ return PAErrorProxy.new("")
28
52
  else
29
- return self.class.new(self.user, proxy)
53
+ raise(e)
30
54
  end
31
55
  end
32
56
  end
33
57
 
34
58
  def length
35
- return self.proxy.length
59
+ begin
60
+ return self.proxy.length
61
+ rescue Exception => e
62
+ if self.supress_errors
63
+ return 0
64
+ else
65
+ raise(e)
66
+ end
67
+ end
36
68
  end
37
69
 
38
70
  def [](index)
39
- proxy = self.proxy[index]
40
- if proxy.data.is_a? String
41
- return proxy.to_s(:default => @user)
42
- else
43
- return self.class.new(self.user, proxy)
71
+ begin
72
+ proxy = self.proxy[index]
73
+ if proxy.data.is_a? String
74
+ return proxy.to_s(:default => @user)
75
+ else
76
+ return self.class.new(self.user, proxy, self.supress_errors)
77
+ end
78
+ rescue Exception => e
79
+ if self.supress_errors
80
+ self.logger.error "Phrase: #{e}" unless self.logger.nil?
81
+ return PAErrorProxy.new("")
82
+ else
83
+ raise(e)
84
+ end
44
85
  end
45
86
  end
46
87
 
@@ -1,7 +1,9 @@
1
1
  $:.unshift File.expand_path(File.dirname(__FILE__))
2
2
  require 'pa_proxies/pa_composite_proxy'
3
3
  require 'pa_proxies/pa_user_proxy'
4
+ require 'pa_proxies/pa_error_proxy'
4
5
  module PhraseAssembler
6
+ @@supress_errors = true
5
7
  def supress_errors
6
8
  @@supress_errors
7
9
  end
@@ -118,24 +120,40 @@ module PhraseAssembler
118
120
  attr_reader :phrase
119
121
 
120
122
  def phrase(params = {})
121
- t_pref_language = self.send(self.class._fields[:pref_language])
122
- t_pref_language = self.class._default_pref_language if (t_pref_language.nil? or t_pref_language.empty?)
123
- if self.class._proxies[t_pref_language].nil?
124
- self.class._proxies[t_pref_language] = PACompositeProxy.new(self.class._proxy_cache, nil, self.class._logger, {}, false, false, self.class._max_tokens_level)
125
- self.class._proxies[t_pref_language].load(File.join(self.class._languages_files_path, self.class._languages[t_pref_language]) )
126
- self.class._proxies[t_pref_language].load_grammar(File.join(self.class._languages_files_path, self.class._grammars[t_pref_language]))
127
- self.class._proxies[t_pref_language].automate_data = self.class._automate_data
128
- end
129
- if params == {}
130
- proxy = self.class._proxies[t_pref_language]
131
- else
132
- proxy = self.class._proxies[t_pref_language].auto(params)
133
- end
134
- return PAUserProxy.new(self, proxy)
123
+ begin
124
+ t_pref_language = self.send(self.class._fields[:pref_language])
125
+ t_pref_language = self.class._default_pref_language if (t_pref_language.nil? or t_pref_language.empty?)
126
+ if self.class._proxies[t_pref_language].nil?
127
+ self.class._proxies[t_pref_language] = PACompositeProxy.new(self.class._proxy_cache, nil, self.class._logger, {}, false, false, self.class._max_tokens_level)
128
+ self.class._proxies[t_pref_language].load(File.join(self.class._languages_files_path, self.class._languages[t_pref_language]) )
129
+ self.class._proxies[t_pref_language].load_grammar(File.join(self.class._languages_files_path, self.class._grammars[t_pref_language]))
130
+ self.class._proxies[t_pref_language].automate_data = self.class._automate_data
131
+ end
132
+ if params == {}
133
+ proxy = self.class._proxies[t_pref_language]
134
+ else
135
+ proxy = self.class._proxies[t_pref_language].auto(params)
136
+ end
137
+ return PAUserProxy.new(self, proxy, PhraseAssembler.supress_errors)
138
+ rescue Exception => e
139
+ if PhraseAssembler.supress_errors
140
+ return PAErrorProxy.new("")
141
+ else
142
+ raise e
143
+ end
144
+ end
135
145
  end
136
146
 
137
147
  def get_sex
138
- self.send(self.class._fields[:sex])
148
+ begin
149
+ self.send(self.class._fields[:sex])
150
+ rescue Exception => e
151
+ if PhraseAssembler.supress_errors
152
+ return :default
153
+ else
154
+ raise e
155
+ end
156
+ end
139
157
  end
140
158
  end
141
159
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrase_assembler
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 2
9
- - 4
10
- version: 1.2.4
9
+ - 5
10
+ version: 1.2.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Lovro \xC5\xBDmak, Radan Skori\xC4\x87, Drap"
@@ -46,6 +46,7 @@ files:
46
46
  - lib/pa_proxies/pa_automate_proxy.rb
47
47
  - lib/pa_proxies/pa_cache_proxy.rb
48
48
  - lib/pa_proxies/pa_composite_proxy.rb
49
+ - lib/pa_proxies/pa_error_proxy.rb
49
50
  - lib/pa_proxies/pa_lang_proxy.rb
50
51
  - lib/pa_proxies/pa_link_proxy.rb
51
52
  - lib/pa_proxies/pa_proxy.rb