Class: Rack::UserLocale

Inherits:
Object
  • Object
show all
Defined in:
lib/user-locale.rb,
lib/rack/user-locale/version.rb

Constant Summary collapse

VERSION =
::File.read(version_file).split("\n").first

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}) ⇒ UserLocale

TODO: Write notes



9
10
11
12
13
14
15
# File 'lib/user-locale.rb', line 9

def initialize(app, options = {})
  @app = app
  @options = {
    accepted_locales: [],
    cookie_name: "user-locale"
  }.merge(options)
end

Instance Method Details

#call(env) ⇒ Object

TODO: Write notes



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/user-locale.rb', line 19

def call(env)
  @env = env
  @request = Rack::Request.new(@env)
  set_locale

  @app.call(env) && return if @request.post? || @request.put? || @request.delete?

  status, headers, body = @app.call(@env)
  response = Rack::Response.new(body, status, headers)
  response.set_cookie(@options[:cookie_name], value: I18n.locale, path: "/") if cookie_locale != I18n.locale.to_s
  response.finish
end