phrase_assembler 1.1.5 → 1.1.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,12 +5,15 @@ class PACompositeProxy < PAAutomateProxy
5
5
  include PAStringProxy
6
6
  include PACacheProxy
7
7
 
8
- def initialize(p_data = {}, p_logger = nil, p_grammar = {}, init_grammar = true, init_data = true, max_tokens_level = 5, p_automate_data = [])
8
+ attr_accessor :proxy_cache
9
+
10
+ def initialize(p_proxy_cache, p_data = {}, p_logger = nil, p_grammar = {}, init_grammar = true, init_data = true, max_tokens_level = 5, p_automate_data = [])
11
+ self.proxy_cache = p_proxy_cache
9
12
  super(p_data, p_logger, p_grammar, init_grammar, init_data, max_tokens_level, p_automate_data)
10
13
  end
11
14
 
12
15
  def new_instance(p_data)
13
- return self.class.new(p_data, self.logger, self.grammar, false, false, self.max_tokens_level, self.automate_data)
16
+ return self.class.new(self.proxy_cache, p_data, self.logger, self.grammar, false, false, self.max_tokens_level, self.automate_data)
14
17
  end
15
18
 
16
19
  @@proxy_cache = {}
@@ -18,10 +21,10 @@ class PACompositeProxy < PAAutomateProxy
18
21
  @@proxy_cache
19
22
  end
20
23
 
21
- def set_uncacheable_args(p_data = {}, p_logger = nil, p_grammar = {}, init_grammar = true, init_data = true, max_tokens_level = 5, p_automate_data = [])
24
+ def set_uncacheable_args(p_proxy_cache, p_data = {}, p_logger = nil, p_grammar = {}, init_grammar = true, init_data = true, max_tokens_level = 5, p_automate_data = [])
22
25
  end
23
26
 
24
- def self.cache_id(p_data = {}, logger = nil, options = {}, grammar = {}, init_grammar = true, init_data = true, max_tokens_level = 5, p_automate_data = [])
27
+ def self.cache_id(p_proxy_cache, p_data = {}, logger = nil, options = {}, grammar = {}, init_grammar = true, init_data = true, max_tokens_level = 5, p_automate_data = [])
25
28
  if p_data.nil?
26
29
  return nil
27
30
  else
@@ -65,6 +65,7 @@ class PALangProxy < PATokenProxy
65
65
  end
66
66
 
67
67
  values = clear_token[/\?.+/][1..-1].split(':')
68
+
68
69
  if p_options.options_hash.has_key?(options_key.to_sym)
69
70
  if opt_params.nil?
70
71
  grammar_value = p_options.options_hash[options_key.to_sym].send(:"get_#{grammar_key}")
@@ -1,5 +1,5 @@
1
1
  module PAStringProxy
2
- def to_s(p_options = nil)
2
+ def to_s(p_options = {})
3
3
  temp_data = get_data(p_options)
4
4
  if temp_data.is_a? Array
5
5
  raise "Can not put Array to String"
@@ -0,0 +1,39 @@
1
+ class PAUserProxy
2
+ attr_accessor :user
3
+ attr_accessor :proxy
4
+ def initialize(p_user, p_proxy = nil)
5
+ self.user = p_user
6
+ self.proxy = p_proxy
7
+ end
8
+
9
+ def to_s(options = {})
10
+ puts self.proxy.inspect
11
+ self.proxy.to_s(options)
12
+ end
13
+
14
+ def method_missing(sym, *args, &block)
15
+ i = 0
16
+ options_found = false
17
+ while !options_found and i < args.length
18
+ if args[i].is_a? Hash
19
+ options_found = true
20
+ args[i][:default] = self.user
21
+ end
22
+ i = i + 1
23
+ end
24
+
25
+ return_proxy_or_value(self.proxy.method_missing(sym, *args, &block))
26
+ end
27
+
28
+ def [](index)
29
+ return_proxy_or_value(self.proxy[index])
30
+ end
31
+
32
+ def return_proxy_or_value(p_proxy)
33
+ if p_proxy.is_a? self.proxy.class
34
+ return self.class.new(self.user, p_proxy)
35
+ else
36
+ return p_proxy
37
+ end
38
+ end
39
+ end
@@ -1,5 +1,6 @@
1
1
  $:.unshift File.expand_path(File.dirname(__FILE__))
2
2
  require 'pa_proxies/pa_composite_proxy'
3
+ require 'pa_proxies/pa_user_proxy'
3
4
  module PhraseAssembler
4
5
  def supress_errors
5
6
  @@supress_errors
@@ -75,6 +76,22 @@ module PhraseAssembler
75
76
  def self._automate_data=(value)
76
77
  self.send(:class_variable_set, :@@_automate_data, value)
77
78
  end
79
+
80
+ def self._max_tokens_level
81
+ self.send(:class_variable_get, :@@_max_tokens_level)
82
+ end
83
+
84
+ def self._max_tokens_level=(value)
85
+ self.send(:class_variable_set, :@@_max_tokens_level, value)
86
+ end
87
+
88
+ def self._proxy_cache
89
+ self.send(:class_variable_get, :@@_proxy_cache)
90
+ end
91
+
92
+ def self._proxy_cache=(value)
93
+ self.send(:class_variable_set, :@@_proxy_cache, value)
94
+ end
78
95
  end
79
96
  end
80
97
 
@@ -88,8 +105,10 @@ module PhraseAssembler
88
105
  self._languages_files_path = (options[:languages_files_path] || File.join(::Rails.root.to_s, 'app', 'yaml', 'languages'))
89
106
  self._logger = (options[:logger] || RAILS_DEFAULT_LOGGER)
90
107
  self._automate_data = (options[:automate_data] || [:pages, "controller", "action"])
108
+ self._max_tokens_level = (options[:max_tokens_level] || 5)
91
109
 
92
110
  self._proxies = {}
111
+ self._proxy_cache = {}
93
112
 
94
113
  send :include, InstanceMethods
95
114
  end
@@ -102,16 +121,17 @@ module PhraseAssembler
102
121
  t_pref_language = self.send(self.class._fields[:pref_language])
103
122
  t_pref_language = self.class._default_pref_language if (t_pref_language.nil? or t_pref_language.empty?)
104
123
  if self.class._proxies[t_pref_language].nil?
105
- self.class._proxies[t_pref_language] = PACompositeProxy.new(nil, self.class._logger)
124
+ self.class._proxies[t_pref_language] = PACompositeProxy.new(self.class._proxy_cache, nil, self.class._logger, {}, false, false, self.class._max_tokens_level)
106
125
  self.class._proxies[t_pref_language].load(File.join(self.class._languages_files_path, self.class._languages[t_pref_language]) )
107
126
  self.class._proxies[t_pref_language].load_grammar(File.join(self.class._languages_files_path, self.class._grammars[t_pref_language]))
108
127
  self.class._proxies[t_pref_language].automate_data = self.class._automate_data
109
128
  end
110
129
  if params == {}
111
- self.class._proxies[t_pref_language]
130
+ proxy = self.class._proxies[t_pref_language]
112
131
  else
113
- self.class._proxies[t_pref_language].auto(params)
132
+ proxy = self.class._proxies[t_pref_language].auto(params)
114
133
  end
134
+ return PAUserProxy.new(self, proxy)
115
135
  end
116
136
 
117
137
  def get_sex
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: 25
4
+ hash: 1
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 5
10
- version: 1.1.5
9
+ - 9
10
+ version: 1.1.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Lovro \xC5\xBDmak, Radan Skori\xC4\x87, Drap"
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-10 00:00:00 +01:00
18
+ date: 2011-02-11 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -52,6 +52,7 @@ files:
52
52
  - lib/pa_proxies/pa_proxy_data.rb
53
53
  - lib/pa_proxies/pa_string_proxy.rb
54
54
  - lib/pa_proxies/pa_token_proxy.rb
55
+ - lib/pa_proxies/pa_user_proxy.rb
55
56
  - lib/phrase_assembler.rb
56
57
  - lib/utils/hash_add_on.rb
57
58
  - lib/utils/r_array.rb