Class: Tml::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/tml/session.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#applicationObject

Returns the value of attribute application.



40
41
42
# File 'lib/tml/session.rb', line 40

def application
  @application
end

#block_optionsObject

Returns the value of attribute block_options.



40
41
42
# File 'lib/tml/session.rb', line 40

def block_options
  @block_options
end

#current_languageObject

Returns the value of attribute current_language.



41
42
43
# File 'lib/tml/session.rb', line 41

def current_language
  @current_language
end

#current_localeObject

Returns the value of attribute current_locale.



41
42
43
# File 'lib/tml/session.rb', line 41

def current_locale
  @current_locale
end

#current_sourceObject

Returns the value of attribute current_source.



41
42
43
# File 'lib/tml/session.rb', line 41

def current_source
  @current_source
end

#current_translatorObject

Returns the value of attribute current_translator.



41
42
43
# File 'lib/tml/session.rb', line 41

def current_translator
  @current_translator
end

#current_userObject

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



123
124
125
126
127
128
129
130
131
132
# File 'lib/tml/session.rb', line 123

def block_option(key, lookup = true)
  if lookup
    block_options_queue.reverse.each do |options|
      value = options[key.to_s] || options[key.to_sym]
      return value if value
    end
    return nil
  end
  block_options[key]
end

#block_options_queueObject



143
144
145
# File 'lib/tml/session.rb', line 143

def block_options_queue
  @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

Returns:

  • (Boolean)


115
116
117
# File 'lib/tml/session.rb', line 115

def inline_mode?
  current_translator and current_translator.inline?
end

#pop_block_optionsObject



138
139
140
141
# File 'lib/tml/session.rb', line 138

def pop_block_options
  return unless @block_options
  @block_options.pop
end

#preferred_locale(locales) ⇒ Object



78
79
80
81
82
83
84
85
# 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|
    return locale if application.locales.include?(locale)
  end
  application.default_locale
end

#push_block_options(opts) ⇒ Object



134
135
136
# File 'lib/tml/session.rb', line 134

def push_block_options(opts)
  block_options_queue.push(opts)
end

#resetObject



87
88
89
90
91
92
93
94
# File 'lib/tml/session.rb', line 87

def reset
  self.application= nil
  self.current_user= nil
  self.current_language= nil
  self.current_translator= nil
  self.current_source= nil
  self.block_options= nil
end

#source_languageObject



104
105
106
107
# File 'lib/tml/session.rb', line 104

def source_language
  locale = block_option(:locale)
  locale ? application.language(locale) : application.language
end

#target_languageObject



109
110
111
112
113
# File 'lib/tml/session.rb', line 109

def target_language
  target_locale = block_option(:target_locale)
  language = (target_locale ? application.language(target_locale) : current_language)
  language || Tml.config.default_language
end

#with_block_options(opts) ⇒ Object



151
152
153
154
155
156
157
158
# File 'lib/tml/session.rb', line 151

def with_block_options(opts)
  push_block_options(opts)
  if block_given?
    ret = yield
  end
  pop_block_options
  ret
end