Class: Tml::Session
- Inherits:
-
Object
- Object
- Tml::Session
- Defined in:
- lib/tml/session.rb
Instance Attribute Summary collapse
-
#application ⇒ Object
Returns the value of attribute application.
-
#block_options ⇒ Object
Returns the value of attribute block_options.
-
#current_language ⇒ Object
Returns the value of attribute current_language.
-
#current_locale ⇒ Object
Returns the value of attribute current_locale.
-
#current_source ⇒ Object
Returns the value of attribute current_source.
-
#current_translator ⇒ Object
Returns the value of attribute current_translator.
-
#current_user ⇒ Object
Returns the value of attribute current_user.
Instance Method Summary collapse
-
#block_option(key, lookup = true) ⇒ Object
Block Options.
- #block_options_queue ⇒ Object
- #init(opts = {}) ⇒ Object
- #init_application(opts = {}) ⇒ Object
- #inline_mode? ⇒ Boolean
- #pop_block_options ⇒ Object
- #preferred_locale(locales) ⇒ Object
- #push_block_options(opts) ⇒ Object
- #reset ⇒ Object
- #source_language ⇒ Object
- #target_language ⇒ Object
- #translate(label, description = '', tokens = {}, options = {}) ⇒ Object
- #with_block_options(opts) ⇒ Object (also: #with_options)
Instance Attribute Details
#application ⇒ Object
Returns the value of attribute application.
40 41 42 |
# File 'lib/tml/session.rb', line 40 def application @application end |
#block_options ⇒ Object
Returns the value of attribute block_options.
40 41 42 |
# File 'lib/tml/session.rb', line 40 def @block_options end |
#current_language ⇒ Object
Returns the value of attribute current_language.
41 42 43 |
# File 'lib/tml/session.rb', line 41 def current_language @current_language end |
#current_locale ⇒ Object
Returns the value of attribute current_locale.
41 42 43 |
# File 'lib/tml/session.rb', line 41 def current_locale @current_locale end |
#current_source ⇒ Object
Returns the value of attribute current_source.
41 42 43 |
# File 'lib/tml/session.rb', line 41 def current_source @current_source end |
#current_translator ⇒ Object
Returns the value of attribute current_translator.
41 42 43 |
# File 'lib/tml/session.rb', line 41 def current_translator @current_translator end |
#current_user ⇒ Object
Returns the value of attribute current_user.
41 42 43 |
# File 'lib/tml/session.rb', line 41 def current_user @current_user end |
Instance Method Details
#block_option(key, lookup = true) ⇒ Object
Block Options
156 157 158 159 160 161 162 163 164 165 |
# File 'lib/tml/session.rb', line 156 def block_option(key, lookup = true) if lookup .reverse.each do || value = [key.to_s] || [key.to_sym] return value if value end return nil end [key] end |
#block_options_queue ⇒ Object
176 177 178 |
# File 'lib/tml/session.rb', line 176 def @block_options ||= [] end |
#init(opts = {}) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/tml/session.rb', line 43 def init(opts = {}) return if Tml.config.disabled? # Tml.logger.debug(opts.inspect) Tml.cache.reset_version Tml.cache.namespace = opts[:namespace] init_application(opts) self end |
#init_application(opts = {}) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/tml/session.rb', line 56 def init_application(opts = {}) self.current_user = opts[:user] self.current_source = opts[:source] || 'index' self.current_locale = opts[:locale] self.current_translator = opts[:translator] app_config = Tml.config.application || {} self.application = Tml::Application.new( :key => opts[:key] || app_config[:key], :access_token => opts[:access_token] || opts[:token] || app_config[:token], :host => opts[:host] || app_config[:host], :cdn_host => opts[:cdn_host] || app_config[:cdn_host] ).fetch if self.current_translator self.current_translator.application = self.application end self.current_locale = preferred_locale(opts[:locale]) self.current_language = self.application.current_language(self.current_locale) end |
#inline_mode? ⇒ Boolean
120 121 122 |
# File 'lib/tml/session.rb', line 120 def inline_mode? current_translator and current_translator.inline? end |
#pop_block_options ⇒ Object
171 172 173 174 |
# File 'lib/tml/session.rb', line 171 def return unless @block_options @block_options.pop end |
#preferred_locale(locales) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/tml/session.rb', line 78 def preferred_locale(locales) return application.default_locale unless locales locales = locales.is_a?(String) ? locales.split(',') : locales locales.each do |locale| locale = Tml::Language.normalize_locale(locale) return locale if application.locales.include?(locale) locale = locale.split('-').first return locale if application.locales.include?(locale) end application.default_locale end |
#push_block_options(opts) ⇒ Object
167 168 169 |
# File 'lib/tml/session.rb', line 167 def (opts) .push(opts) end |
#reset ⇒ Object
92 93 94 95 96 97 98 99 |
# File 'lib/tml/session.rb', line 92 def reset self.application= nil self.current_user= nil self.current_language= nil self.current_translator= nil self.current_source= nil self.= nil end |
#source_language ⇒ Object
109 110 111 112 |
# File 'lib/tml/session.rb', line 109 def source_language locale = block_option(:locale) locale ? application.language(locale) : application.language end |
#target_language ⇒ Object
114 115 116 117 118 |
# File 'lib/tml/session.rb', line 114 def target_language target_locale = block_option(:target_locale) language = (target_locale ? application.language(target_locale) : current_language) language || Tml.config.default_language end |
#translate(label, description = '', tokens = {}, options = {}) ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/tml/session.rb', line 124 def translate(label, description = '', tokens = {}, = {}) params = Tml::Utils.normalize_tr_params(label, description, tokens, ) return params[:label] if params[:label].tml_translated? params[:options][:caller] ||= caller(1, 1) if Tml.config.disabled? return Tml.config.default_language.translate(params[:label], params[:tokens], params[:options]).tml_translated end # Translate individual sentences if params[:options][:split] text = params[:label] sentences = Tml::Utils.split_sentences(text) sentences.each do |sentence| text = text.gsub(sentence, target_language.translate(sentence, params[:description], params[:tokens], params[:options])) end return text.tml_translated end target_language.translate(params).tml_translated rescue Tml::Exception => ex #pp ex, ex.backtrace Tml.logger.error(ex.) #Tml.logger.error(ex.message + "\n=> " + ex.backtrace.join("\n=> ")) label end |
#with_block_options(opts) ⇒ Object Also known as: with_options
184 185 186 187 188 189 190 191 |
# File 'lib/tml/session.rb', line 184 def (opts) (opts) if block_given? ret = yield end ret end |