phrase_assembler 1.2.4 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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