rack-http-accept-language 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +36 -0
- data/.rspec +2 -0
- data/.rubocop.yml +14 -0
- data/.travis.yml +10 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +68 -0
- data/README.md +36 -0
- data/lib/rack-http-accept-language.rb +3 -0
- data/lib/rack-http-accept-language/middleware.rb +24 -0
- data/lib/rack-http-accept-language/parser.rb +55 -0
- data/rack-http-accept-language.gemspec +28 -0
- data/spec/middleware_spec.rb +91 -0
- data/spec/parser_spec.rb +84 -0
- data/spec/spec_helper.rb +8 -0
- metadata +135 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 0cc2d8075572ce2a2ca152fbda94ff02c4827590
|
|
4
|
+
data.tar.gz: e59c620c556d71c51fd5bdb1ecbb806dac6adaa6
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 135cde2db0fdc9e0514ec758ed52af0d65617a9fb465eee0b3372f89f790eb943bd2422513036a5cd069094d6518e8d06ca6a7395fcd0796f7141271b5d6f9e5
|
|
7
|
+
data.tar.gz: c470ef9773c02eec6b1b75ad42872c998a495e699b2e1defb97c432834f567599d2efc9c15602b87fbccbe7f952740a2dffde40c1d618f6f54450500ee188a89
|
data/.gitignore
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
*.gem
|
|
2
|
+
*.rbc
|
|
3
|
+
/.config
|
|
4
|
+
/coverage/
|
|
5
|
+
/InstalledFiles
|
|
6
|
+
/pkg/
|
|
7
|
+
/spec/reports/
|
|
8
|
+
/spec/examples.txt
|
|
9
|
+
/test/tmp/
|
|
10
|
+
/test/version_tmp/
|
|
11
|
+
/tmp/
|
|
12
|
+
|
|
13
|
+
## Specific to RubyMotion:
|
|
14
|
+
.dat*
|
|
15
|
+
.repl_history
|
|
16
|
+
build/
|
|
17
|
+
|
|
18
|
+
## Documentation cache and generated files:
|
|
19
|
+
/.yardoc/
|
|
20
|
+
/_yardoc/
|
|
21
|
+
/doc/
|
|
22
|
+
/rdoc/
|
|
23
|
+
|
|
24
|
+
## Environment normalization:
|
|
25
|
+
/.bundle/
|
|
26
|
+
/vendor/bundle
|
|
27
|
+
/lib/bundler/man/
|
|
28
|
+
|
|
29
|
+
# for a library or gem, you might want to ignore these files since the code is
|
|
30
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
31
|
+
# Gemfile.lock
|
|
32
|
+
# .ruby-version
|
|
33
|
+
# .ruby-gemset
|
|
34
|
+
|
|
35
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
36
|
+
.rvmrc
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
rack-http-accept-language (0.1.0)
|
|
5
|
+
|
|
6
|
+
GEM
|
|
7
|
+
remote: https://rubygems.org/
|
|
8
|
+
specs:
|
|
9
|
+
ast (2.2.0)
|
|
10
|
+
codeclimate-test-reporter (0.4.8)
|
|
11
|
+
simplecov (>= 0.7.1, < 1.0.0)
|
|
12
|
+
coderay (1.1.1)
|
|
13
|
+
diff-lcs (1.2.5)
|
|
14
|
+
docile (1.1.5)
|
|
15
|
+
json (1.8.3)
|
|
16
|
+
method_source (0.8.2)
|
|
17
|
+
parser (2.3.0.6)
|
|
18
|
+
ast (~> 2.2)
|
|
19
|
+
powerpack (0.1.1)
|
|
20
|
+
pry (0.10.3)
|
|
21
|
+
coderay (~> 1.1.0)
|
|
22
|
+
method_source (~> 0.8.1)
|
|
23
|
+
slop (~> 3.4)
|
|
24
|
+
rack (1.6.4)
|
|
25
|
+
rack-test (0.6.3)
|
|
26
|
+
rack (>= 1.0)
|
|
27
|
+
rainbow (2.1.0)
|
|
28
|
+
rspec (3.4.0)
|
|
29
|
+
rspec-core (~> 3.4.0)
|
|
30
|
+
rspec-expectations (~> 3.4.0)
|
|
31
|
+
rspec-mocks (~> 3.4.0)
|
|
32
|
+
rspec-core (3.4.4)
|
|
33
|
+
rspec-support (~> 3.4.0)
|
|
34
|
+
rspec-expectations (3.4.0)
|
|
35
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
36
|
+
rspec-support (~> 3.4.0)
|
|
37
|
+
rspec-mocks (3.4.1)
|
|
38
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
39
|
+
rspec-support (~> 3.4.0)
|
|
40
|
+
rspec-support (3.4.1)
|
|
41
|
+
rubocop (0.38.0)
|
|
42
|
+
parser (>= 2.3.0.6, < 3.0)
|
|
43
|
+
powerpack (~> 0.1)
|
|
44
|
+
rainbow (>= 1.99.1, < 3.0)
|
|
45
|
+
ruby-progressbar (~> 1.7)
|
|
46
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
47
|
+
ruby-progressbar (1.7.5)
|
|
48
|
+
simplecov (0.11.2)
|
|
49
|
+
docile (~> 1.1.0)
|
|
50
|
+
json (~> 1.8)
|
|
51
|
+
simplecov-html (~> 0.10.0)
|
|
52
|
+
simplecov-html (0.10.0)
|
|
53
|
+
slop (3.6.0)
|
|
54
|
+
unicode-display_width (1.0.2)
|
|
55
|
+
|
|
56
|
+
PLATFORMS
|
|
57
|
+
ruby
|
|
58
|
+
|
|
59
|
+
DEPENDENCIES
|
|
60
|
+
codeclimate-test-reporter (~> 0.4.8)
|
|
61
|
+
pry (~> 0.10.3)
|
|
62
|
+
rack-http-accept-language!
|
|
63
|
+
rack-test (~> 0.6.3)
|
|
64
|
+
rspec (~> 3.3, >= 3.3.0)
|
|
65
|
+
rubocop (~> 0.38.0)
|
|
66
|
+
|
|
67
|
+
BUNDLED WITH
|
|
68
|
+
1.11.2
|
data/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# RackHttpAcceptLanguage
|
|
2
|
+
[](https://travis-ci.org/kaeuferportal/rack-http-accept-language)
|
|
3
|
+
|
|
4
|
+
## Possible Methods
|
|
5
|
+
|
|
6
|
+
You have two methods on the ``env`` object:
|
|
7
|
+
```
|
|
8
|
+
rack_http_accept_lanugage
|
|
9
|
+
```
|
|
10
|
+
and
|
|
11
|
+
```
|
|
12
|
+
rack_http_accept_lanugages
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## How you can use it with Sinatra
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
class App < Sinatra::Base
|
|
19
|
+
use RackHttpAcceptLanguage::Middleware
|
|
20
|
+
|
|
21
|
+
post '/' do
|
|
22
|
+
I18n.locale = request.env.rack_http_accept_language
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
Add the gem to your Gemfile:
|
|
31
|
+
|
|
32
|
+
``` ruby
|
|
33
|
+
gem 'rack-http-accept-language'
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Run `bundle install` to install it.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module RackHttpAcceptLanguage
|
|
3
|
+
class Middleware
|
|
4
|
+
def initialize(app)
|
|
5
|
+
@app = app
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def call(env)
|
|
9
|
+
parser = Parser.new(env['HTTP_ACCEPT_LANGUAGE'])
|
|
10
|
+
env['RACK_HTTP_ACCEPT_LANGUAGE'] = parser.preferred_language
|
|
11
|
+
env['RACK_HTTP_ACCEPT_LANGUAGES'] = parser.preferred_languages
|
|
12
|
+
|
|
13
|
+
def env.rack_http_accept_languages
|
|
14
|
+
self['RACK_HTTP_ACCEPT_LANGUAGES']
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def env.rack_http_accept_language
|
|
18
|
+
self['RACK_HTTP_ACCEPT_LANGUAGE']
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
@app.call(env)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module RackHttpAcceptLanguage
|
|
3
|
+
class Parser
|
|
4
|
+
attr_reader :http_accept_language
|
|
5
|
+
|
|
6
|
+
def initialize(http_accept_language)
|
|
7
|
+
@http_accept_language = http_accept_language
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def preferred_language
|
|
11
|
+
return nil if early_return?
|
|
12
|
+
order_languages_by_qvalue.first
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def preferred_languages
|
|
16
|
+
return nil if early_return?
|
|
17
|
+
order_languages_by_qvalue
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def early_return?
|
|
23
|
+
http_accept_language.nil? || http_accept_language == '*'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def order_languages_by_qvalue
|
|
27
|
+
order_languages_by_qvalue_hash.values.flatten
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def split_languages
|
|
31
|
+
@split_languages ||= http_accept_language.to_s.split(',')
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def order_languages_by_qvalue_hash
|
|
35
|
+
@order_languages_by_qvalue ||=
|
|
36
|
+
split_languages.each_with_object({}) do |language_with_qvalue, memo|
|
|
37
|
+
language, qvalue = language_with_qvalue.split(';q=')
|
|
38
|
+
next if language == '*'
|
|
39
|
+
|
|
40
|
+
handle_language(language, qvalue, memo)
|
|
41
|
+
end.sort.reverse.to_h
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def handle_language(language, qvalue, memo)
|
|
45
|
+
language = language.downcase.gsub(/-[a-z0-9]+$/i, &:upcase)
|
|
46
|
+
qvalue = qvalue ? qvalue.to_f : 1.0
|
|
47
|
+
|
|
48
|
+
if memo[qvalue].nil?
|
|
49
|
+
memo[qvalue] = [language]
|
|
50
|
+
else
|
|
51
|
+
memo[qvalue] << language
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
Gem::Specification.new do |s|
|
|
3
|
+
s.name = 'rack-http-accept-language'
|
|
4
|
+
s.version = '0.1.0'
|
|
5
|
+
|
|
6
|
+
if s.respond_to? :required_rubygems_version=
|
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new('>= 1.2')
|
|
8
|
+
end
|
|
9
|
+
s.required_ruby_version = '>= 2.1.0'
|
|
10
|
+
s.author = 'Bennet Palluthe'
|
|
11
|
+
s.email = 'bennet.palluthe@kaeuferportal.de'
|
|
12
|
+
|
|
13
|
+
s.files = `git ls-files`.split("\n")
|
|
14
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
15
|
+
|
|
16
|
+
s.require_paths = ['lib']
|
|
17
|
+
|
|
18
|
+
s.add_development_dependency 'rspec', '~> 3.3', '>= 3.3.0'
|
|
19
|
+
s.add_development_dependency 'codeclimate-test-reporter', '~> 0.4.8'
|
|
20
|
+
s.add_development_dependency 'pry', '~> 0.10.3'
|
|
21
|
+
s.add_development_dependency 'rack-test', '~> 0.6.3'
|
|
22
|
+
s.add_development_dependency 'rubocop', '~> 0.38.0'
|
|
23
|
+
|
|
24
|
+
s.rubygems_version = '2.6.2'
|
|
25
|
+
s.summary = 'http accept language handler'
|
|
26
|
+
s.description = 'http accept language handler'
|
|
27
|
+
s.homepage = 'https://github.com/kaeuferportal/rack-http-accept-language'
|
|
28
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'rack-http-accept-language'
|
|
3
|
+
require 'rack/test'
|
|
4
|
+
require 'json'
|
|
5
|
+
|
|
6
|
+
class TestRackHttpAcceptLanguageApp
|
|
7
|
+
def call(env)
|
|
8
|
+
rack_http_accept_language = env.rack_http_accept_language
|
|
9
|
+
rack_http_accept_languages = env.rack_http_accept_languages
|
|
10
|
+
|
|
11
|
+
result = {
|
|
12
|
+
preferred_language: rack_http_accept_language,
|
|
13
|
+
preferred_languages: rack_http_accept_languages
|
|
14
|
+
}
|
|
15
|
+
[200, {}, [JSON.generate(result)]]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
describe 'Rack integration' do
|
|
20
|
+
include Rack::Test::Methods
|
|
21
|
+
|
|
22
|
+
def app
|
|
23
|
+
Rack::Builder.new do
|
|
24
|
+
use RackHttpAcceptLanguage::Middleware
|
|
25
|
+
run TestRackHttpAcceptLanguageApp.new
|
|
26
|
+
end.to_app
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def call_get_method(http_accept_language)
|
|
30
|
+
get '/', {}, { 'HTTP_ACCEPT_LANGUAGE' => http_accept_language }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def response
|
|
34
|
+
JSON.parse(last_response.body)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
context 'use middleware with test app' do
|
|
38
|
+
it 'decodes the HTTP_ACCEPT_LANGUAGE header' do
|
|
39
|
+
http_accept_language = 'en-US,en-GB;q=0.8,en;q=0.6,es-419'
|
|
40
|
+
get '/', {}, { 'HTTP_ACCEPT_LANGUAGE' => http_accept_language }
|
|
41
|
+
expect(response['preferred_language']).to eq 'en-US'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'decodes the HTTP_ACCEPT_LANGUAGE header' do
|
|
45
|
+
http_accept_language = 'en-US,en-GB;q=0.8,en;q=0.6,es-419'
|
|
46
|
+
get '/', {}, { 'HTTP_ACCEPT_LANGUAGE' => http_accept_language }
|
|
47
|
+
expect(response['preferred_languages']).to eq %w(en-US es-419 en-GB en)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
context 'call middleware directly' do
|
|
52
|
+
context 'without i18n' do
|
|
53
|
+
let(:app) { ->(env_data) { env_data } }
|
|
54
|
+
let(:middleware) { RackHttpAcceptLanguage::Middleware.new(app) }
|
|
55
|
+
|
|
56
|
+
context 'http_accept_language' do
|
|
57
|
+
it 'handle one http_accept_language' do
|
|
58
|
+
env = { 'HTTP_ACCEPT_LANGUAGE' => 'en' }
|
|
59
|
+
middleware.call(env)
|
|
60
|
+
expect(env.rack_http_accept_language).to eq 'en'
|
|
61
|
+
env['HTTP_ACCEPT_LANGUAGE'] = 'de'
|
|
62
|
+
middleware.call(env)
|
|
63
|
+
expect(env.rack_http_accept_language).to eq 'de'
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'handle more http_accept_languages' do
|
|
67
|
+
env = { 'HTTP_ACCEPT_LANGUAGE' => 'en-US,en-GB;q=0.8,en;q=0.6' }
|
|
68
|
+
middleware.call(env)
|
|
69
|
+
expect(env.rack_http_accept_language).to eq 'en-US'
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
context 'http_accept_languages' do
|
|
74
|
+
it 'handle one http_accept_language' do
|
|
75
|
+
env = { 'HTTP_ACCEPT_LANGUAGE' => 'en' }
|
|
76
|
+
middleware.call(env)
|
|
77
|
+
expect(env.rack_http_accept_languages).to eq %w(en)
|
|
78
|
+
env['HTTP_ACCEPT_LANGUAGE'] = 'de'
|
|
79
|
+
middleware.call(env)
|
|
80
|
+
expect(env.rack_http_accept_languages).to eq %w(de)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it 'handle more http_accept_languages' do
|
|
84
|
+
env = { 'HTTP_ACCEPT_LANGUAGE' => 'en-US,en-GB;q=0.5,en;q=0.7' }
|
|
85
|
+
middleware.call(env)
|
|
86
|
+
expect(env.rack_http_accept_languages).to eq %w(en-US en en-GB)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
data/spec/parser_spec.rb
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe RackHttpAcceptLanguage::Parser do
|
|
5
|
+
context 'without wildcard' do
|
|
6
|
+
context 'no upcase handling necessary' do
|
|
7
|
+
let(:http_accept_language) { 'en-US,en-GB;q=0.6,en;q=0.8' }
|
|
8
|
+
subject(:parser) { described_class.new(http_accept_language) }
|
|
9
|
+
|
|
10
|
+
it 'preferred language' do
|
|
11
|
+
expected_array = 'en-US'
|
|
12
|
+
expect(parser.preferred_language).to eq expected_array
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'preferred_languages' do
|
|
16
|
+
expected_array = ['en-US', 'en', 'en-GB']
|
|
17
|
+
expect(parser.preferred_languages).to eq expected_array
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
context 'upcase necessary' do
|
|
22
|
+
let(:http_accept_language) { 'en-us,en-GB;q=0.6,en;q=0.8' }
|
|
23
|
+
subject(:parser) { described_class.new(http_accept_language) }
|
|
24
|
+
|
|
25
|
+
it 'preferred language' do
|
|
26
|
+
expected_array = 'en-US'
|
|
27
|
+
expect(parser.preferred_language).to eq expected_array
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'preferred_languages' do
|
|
31
|
+
expected_array = ['en-US', 'en', 'en-GB']
|
|
32
|
+
expect(parser.preferred_languages).to eq expected_array
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
context 'with wildcard' do
|
|
38
|
+
describe '.preferred_language' do
|
|
39
|
+
it 'has no http_accept_language' do
|
|
40
|
+
http_accept_language = nil
|
|
41
|
+
parser = described_class.new(http_accept_language)
|
|
42
|
+
|
|
43
|
+
expect(parser.preferred_language).to eq nil
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it 'has a * as http_accept_language' do
|
|
47
|
+
http_accept_language = '*'
|
|
48
|
+
parser = described_class.new(http_accept_language)
|
|
49
|
+
|
|
50
|
+
expect(parser.preferred_language).to eq nil
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'has a * in http_accept_language' do
|
|
54
|
+
http_accept_language = '*,en;q=0.6'
|
|
55
|
+
parser = described_class.new(http_accept_language)
|
|
56
|
+
|
|
57
|
+
expect(parser.preferred_language).to eq 'en'
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
describe '.preferred_languages' do
|
|
62
|
+
it 'has no http_accept_languages' do
|
|
63
|
+
http_accept_language = nil
|
|
64
|
+
parser = described_class.new(http_accept_language)
|
|
65
|
+
|
|
66
|
+
expect(parser.preferred_languages).to eq nil
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it 'has a * as http_accept_languages' do
|
|
70
|
+
http_accept_language = '*'
|
|
71
|
+
parser = described_class.new(http_accept_language)
|
|
72
|
+
|
|
73
|
+
expect(parser.preferred_languages).to eq nil
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it 'has a * in http_accept_languages' do
|
|
77
|
+
http_accept_language = '*,en;q=0.6'
|
|
78
|
+
parser = described_class.new(http_accept_language)
|
|
79
|
+
|
|
80
|
+
expect(parser.preferred_languages).to eq %w(en)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rack-http-accept-language
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Bennet Palluthe
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-04-04 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rspec
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '3.3'
|
|
20
|
+
- - ">="
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 3.3.0
|
|
23
|
+
type: :development
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
requirements:
|
|
27
|
+
- - "~>"
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '3.3'
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 3.3.0
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: codeclimate-test-reporter
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 0.4.8
|
|
40
|
+
type: :development
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 0.4.8
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: pry
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: 0.10.3
|
|
54
|
+
type: :development
|
|
55
|
+
prerelease: false
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 0.10.3
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: rack-test
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 0.6.3
|
|
68
|
+
type: :development
|
|
69
|
+
prerelease: false
|
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 0.6.3
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: rubocop
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 0.38.0
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 0.38.0
|
|
89
|
+
description: http accept language handler
|
|
90
|
+
email: bennet.palluthe@kaeuferportal.de
|
|
91
|
+
executables: []
|
|
92
|
+
extensions: []
|
|
93
|
+
extra_rdoc_files: []
|
|
94
|
+
files:
|
|
95
|
+
- ".gitignore"
|
|
96
|
+
- ".rspec"
|
|
97
|
+
- ".rubocop.yml"
|
|
98
|
+
- ".travis.yml"
|
|
99
|
+
- Gemfile
|
|
100
|
+
- Gemfile.lock
|
|
101
|
+
- README.md
|
|
102
|
+
- lib/rack-http-accept-language.rb
|
|
103
|
+
- lib/rack-http-accept-language/middleware.rb
|
|
104
|
+
- lib/rack-http-accept-language/parser.rb
|
|
105
|
+
- rack-http-accept-language.gemspec
|
|
106
|
+
- spec/middleware_spec.rb
|
|
107
|
+
- spec/parser_spec.rb
|
|
108
|
+
- spec/spec_helper.rb
|
|
109
|
+
homepage: https://github.com/kaeuferportal/rack-http-accept-language
|
|
110
|
+
licenses: []
|
|
111
|
+
metadata: {}
|
|
112
|
+
post_install_message:
|
|
113
|
+
rdoc_options: []
|
|
114
|
+
require_paths:
|
|
115
|
+
- lib
|
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
|
+
requirements:
|
|
118
|
+
- - ">="
|
|
119
|
+
- !ruby/object:Gem::Version
|
|
120
|
+
version: 2.1.0
|
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
|
+
requirements:
|
|
123
|
+
- - ">="
|
|
124
|
+
- !ruby/object:Gem::Version
|
|
125
|
+
version: '1.2'
|
|
126
|
+
requirements: []
|
|
127
|
+
rubyforge_project:
|
|
128
|
+
rubygems_version: 2.4.8
|
|
129
|
+
signing_key:
|
|
130
|
+
specification_version: 4
|
|
131
|
+
summary: http accept language handler
|
|
132
|
+
test_files:
|
|
133
|
+
- spec/middleware_spec.rb
|
|
134
|
+
- spec/parser_spec.rb
|
|
135
|
+
- spec/spec_helper.rb
|