ungarbled 0.0.10 → 0.0.11
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 +4 -4
- data/Rakefile +8 -16
- data/lib/ungarbled/action_controller_ext.rb +23 -11
- data/lib/ungarbled/encoder/ja.rb +8 -3
- data/lib/ungarbled/middleware.rb +17 -4
- data/lib/ungarbled/railtie.rb +5 -1
- data/lib/ungarbled/version.rb +1 -1
- metadata +9 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41b9d7ddfc8b9f5abe8cff9e027d645514a1f3b8
|
4
|
+
data.tar.gz: 3bdcd1c984c9f22906fc03109309a1308e63f864
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89cb02b3c412e644265ea7ca458142a15641026786732cf10f7f1ec11332f812792154e9eec220c46c701ffa0a59c7ddbcda1247420894cd2eba2a66ba9d424f
|
7
|
+
data.tar.gz: d29c3140abf4ed99e91d7592954bd85e671d92b21487ff55155d7ae211b09fed98c2c63b8cc3f5d65018ad19e2f01b70d3da95ea0ae458f7b70cd0e9034674bf
|
data/Rakefile
CHANGED
@@ -1,19 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
rescue LoadError
|
4
|
-
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
-
end
|
6
|
-
|
7
|
-
# RDoc
|
8
|
-
require 'rdoc/task'
|
9
|
-
|
10
|
-
RDoc::Task.new(:rdoc) do |rdoc|
|
11
|
-
rdoc.rdoc_dir = 'rdoc'
|
12
|
-
rdoc.title = 'Ungarbled'
|
13
|
-
rdoc.options << '--line-numbers'
|
14
|
-
rdoc.rdoc_files.include('README.rdoc')
|
15
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
16
|
-
end
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
17
3
|
|
18
4
|
Bundler::GemHelper.install_tasks
|
19
5
|
|
@@ -29,3 +15,9 @@ Rake::TestTask.new do |t|
|
|
29
15
|
end
|
30
16
|
|
31
17
|
task default: 'test'
|
18
|
+
|
19
|
+
# Appraisal
|
20
|
+
if !ENV['APPRAISAL_INITIALIZED'] && !ENV['TRAVIS']
|
21
|
+
require 'appraisal'
|
22
|
+
task default: :appraisal
|
23
|
+
end
|
@@ -6,18 +6,40 @@ module Ungarbled
|
|
6
6
|
module ActionControllerExt
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
|
+
SEND_FILE_HEADERS_PROC = lambda do |options|
|
10
|
+
if !::Rails.configuration.ungarbled.disable_auto_encode &&
|
11
|
+
options[:filename]
|
12
|
+
options[:filename] = encode_filename(options[:filename])
|
13
|
+
end
|
14
|
+
|
15
|
+
if defined?(send_file_headers_without_encode_filename!)
|
16
|
+
send_file_headers_without_encode_filename!(options)
|
17
|
+
else
|
18
|
+
super
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
9
22
|
included do
|
10
23
|
helper_method :encode_filename
|
11
24
|
helper_method :encode_filename_for_zip_item
|
25
|
+
define_method :send_file_headers_with_encode_filename!, &SEND_FILE_HEADERS_PROC
|
12
26
|
alias_method_chain :send_file_headers!, :encode_filename
|
13
27
|
end
|
14
28
|
|
29
|
+
def self.prepended(mod)
|
30
|
+
class << mod
|
31
|
+
define_method :send_file_headers!, &SEND_FILE_HEADERS_PROC
|
32
|
+
end
|
33
|
+
mod.helper_method :encode_filename
|
34
|
+
mod.helper_method :encode_filename_for_zip_item
|
35
|
+
end
|
36
|
+
|
15
37
|
private
|
16
38
|
|
17
39
|
def filename_encoder(options)
|
18
40
|
@filename_encoder ||= Ungarbled::Encoder.new(browser)
|
19
41
|
lang = options[:lang] ||
|
20
|
-
|
42
|
+
Rails.configuration.ungarbled.default_lang
|
21
43
|
@filename_encoder.tap { |e| e.lang = lang }
|
22
44
|
end
|
23
45
|
|
@@ -28,15 +50,5 @@ module Ungarbled
|
|
28
50
|
def encode_filename_for_zip_item(filename, options = {})
|
29
51
|
filename_encoder(options).encode_for_zip_item(filename)
|
30
52
|
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
def send_file_headers_with_encode_filename!(options)
|
35
|
-
if !::Rails.configuration.ungarbled.disable_auto_encode &&
|
36
|
-
options[:filename]
|
37
|
-
options[:filename] = encode_filename(options[:filename])
|
38
|
-
end
|
39
|
-
send_file_headers_without_encode_filename!(options)
|
40
|
-
end
|
41
53
|
end
|
42
54
|
end
|
data/lib/ungarbled/encoder/ja.rb
CHANGED
@@ -4,11 +4,16 @@ module Ungarbled
|
|
4
4
|
class Encoder
|
5
5
|
class Ja < Base
|
6
6
|
def encode_for_zip_item(filename)
|
7
|
-
if @browser.windows?
|
8
|
-
|
7
|
+
if @browser.respond_to?(:windows?)
|
8
|
+
if @browser.windows? && !@browser.windows8?
|
9
|
+
return filename.encode('cp932', invalid: :replace)
|
10
|
+
end
|
9
11
|
else
|
10
|
-
|
12
|
+
if @browser.platform.windows? && !@browser.platform.windows8?
|
13
|
+
return filename.encode('cp932', invalid: :replace)
|
14
|
+
end
|
11
15
|
end
|
16
|
+
super
|
12
17
|
end
|
13
18
|
end
|
14
19
|
end
|
data/lib/ungarbled/middleware.rb
CHANGED
@@ -12,10 +12,23 @@ module Ungarbled
|
|
12
12
|
|
13
13
|
def call(env)
|
14
14
|
req = Rack::Request.new(env)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
# Argument changes depending on version of browser
|
16
|
+
browser =
|
17
|
+
## Browser.method(:new).parameters
|
18
|
+
## => [[:rest]]
|
19
|
+
if Browser.method(:new).parameters.flatten.count == 1
|
20
|
+
browser = Browser.new(
|
21
|
+
ua: req.user_agent,
|
22
|
+
accept_language: req.env['HTTP_ACCEPT_LANGUAGE']
|
23
|
+
)
|
24
|
+
else
|
25
|
+
## Browser.method(:new).parameters.flatten
|
26
|
+
## => [:req, :user_agent, :keyrest, :kwargs]
|
27
|
+
browser = Browser.new(
|
28
|
+
req.user_agent,
|
29
|
+
accept_language: req.env['HTTP_ACCEPT_LANGUAGE']
|
30
|
+
)
|
31
|
+
end
|
19
32
|
encoder = Ungarbled::Encoder.new(browser, @options)
|
20
33
|
status, headers, res = @app.call(env)
|
21
34
|
disposition = headers[DISPOSITION_KEY]
|
data/lib/ungarbled/railtie.rb
CHANGED
@@ -9,7 +9,11 @@ module Ungarbled
|
|
9
9
|
config.ungarbled.default_lang = :ja
|
10
10
|
|
11
11
|
initializer 'ungarbled' do
|
12
|
-
|
12
|
+
if defined?(Module.prepend)
|
13
|
+
::ActionController::Base.send :prepend, Ungarbled::ActionControllerExt
|
14
|
+
else
|
15
|
+
::ActionController::Base.send :include, Ungarbled::ActionControllerExt
|
16
|
+
end
|
13
17
|
end
|
14
18
|
end
|
15
19
|
end
|
data/lib/ungarbled/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ungarbled
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yukihiro hara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: browser
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: appraisal
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -68,34 +68,20 @@ dependencies:
|
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rails
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '4'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '4'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rack-test
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - ">="
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
75
|
+
version: 4.0.0
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - ">="
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
82
|
+
version: 4.0.0
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
84
|
+
name: rack-test
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
87
|
- - ">="
|
@@ -109,7 +95,7 @@ dependencies:
|
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: '0'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
|
-
name: minitest-
|
98
|
+
name: minitest-capybara
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
101
|
- - ">="
|
@@ -160,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
146
|
version: '0'
|
161
147
|
requirements: []
|
162
148
|
rubyforge_project:
|
163
|
-
rubygems_version: 2.
|
149
|
+
rubygems_version: 2.6.13
|
164
150
|
signing_key:
|
165
151
|
specification_version: 4
|
166
152
|
summary: Ungarble filename for downloads.
|