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

#access_tokenObject

Returns the value of attribute access_token.



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

def access_token
  @access_token
end

#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

Returns the value of attribute cookie_params.



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

def cookie_params
  @cookie_params
end

#current_componentObject

Returns the value of attribute current_component.



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

def current_component
  @current_component
end

#current_languageObject

Returns the value of attribute current_language.



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

def current_language
  @current_language
end

#current_localeObject

Returns the value of attribute current_locale.



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

def current_locale
  @current_locale
end

#current_sourceObject

Returns the value of attribute current_source.



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

def current_source
  @current_source
end

#current_translatorObject

Returns the value of attribute current_translator.



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

def current_translator
  @current_translator
end

#current_userObject

Returns the value of attribute current_user.



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

def current_user
  @current_user
end

#tools_enabledObject

Returns the value of attribute tools_enabled.



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

def tools_enabled
  @tools_enabled
end

Instance Method Details

#block_options_queueObject



159
160
161
# File 'lib/tml/session.rb', line 159

def block_options_queue
  @block_options
end


43
44
45
# File 'lib/tml/session.rb', line 43

def cookie_name
  "trex_#{self.application.key}"
end

#current_component_from_block_optionsObject



180
181
182
183
184
185
186
# File 'lib/tml/session.rb', line 180

def current_component_from_block_options
  arr = @block_options || []
  arr.reverse.each do |opts|
    return application.component_by_key(opts[:component]) unless opts[:component].blank?
  end
  Tml.config.current_component
end

#current_source_from_block_optionsObject



172
173
174
175
176
177
178
# File 'lib/tml/session.rb', line 172

def current_source_from_block_options
  arr = @block_options || []
  arr.reverse.each do |opts|
    return application.source_by_key(opts[:source]) unless opts[:source].blank?
  end
  nil
end

#init(opts = {}) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/tml/session.rb', line 47

def init(opts = {})
  return unless Tml.config.enabled? and Tml.config.application

  host = opts[:host] || Tml.config.application[:host]

  Tml.cache.reset_version

  self.application = Tml::Application.new(:host => host).fetch

  # Tml.logger.info(self.cookie_params.inspect)

  self.cookie_params = begin
    if opts[:cookies] and opts[:cookies][cookie_name]
      begin
        params = HashWithIndifferentAccess.new(Tml::Utils.decode(opts[:cookies][cookie_name]))
        params[:locale] = opts[:locale] if opts[:change_locale]
        params
      rescue Exception => ex
        Tml.logger.error("Failed to parse tml cookie: #{ex.message}")
        {}
      end
    else
      {}
    end
  end

  self.tools_enabled = opts[:tools_enabled]
  self.current_user = opts[:user]
  self.current_source = opts[:source] || 'index'
  self.current_component = opts[:component]
  self.current_locale = self.cookie_params[:locale] || opts[:locale] || Tml.config.default_locale

  if self.cookie_params['translator']
    self.current_translator = Tml::Translator.new(self.cookie_params['translator'])
  end

  # if inline mode don't use any app cache
  if inline_mode?
    self.application = self.application.dup
    self.application.reset_translation_cache
  end

  if self.current_translator
    self.current_translator.application = self.application
  end

  self.current_language = self.application.current_language(self.current_locale)
  self.current_locale = self.current_language.locale

  self
end

#inline_mode?Boolean

Returns:

  • (Boolean)


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

def inline_mode?
  current_translator and current_translator.inline?
end

#pop_block_optionsObject



150
151
152
153
# File 'lib/tml/session.rb', line 150

def pop_block_options
  return unless @block_options
  @block_options.pop
end

#push_block_options(opts) ⇒ Object

Block Options



146
147
148
# File 'lib/tml/session.rb', line 146

def push_block_options(opts)
  (@block_options ||= []).push(opts)
end

#resetObject



103
104
105
106
107
108
109
110
111
112
# File 'lib/tml/session.rb', line 103

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

#source_languageObject



122
123
124
125
126
127
128
# File 'lib/tml/session.rb', line 122

def source_language
  (@block_options || []).reverse.each do |opts|
    return application.language(opts[:locale]) unless opts[:locale].nil?
  end

  application.language
end

#target_languageObject



130
131
132
133
134
135
136
# File 'lib/tml/session.rb', line 130

def target_language
  (@block_options || []).reverse.each do |opts|
    return application.language(opts[:target_locale]) unless opts[:target_locale].nil?
  end

  current_language
end

#tools_enabled?Boolean

Returns:

  • (Boolean)


99
100
101
# File 'lib/tml/session.rb', line 99

def tools_enabled?
  self.tools_enabled
end

#with_block_options(opts) ⇒ Object



163
164
165
166
167
168
169
170
# File 'lib/tml/session.rb', line 163

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