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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 35d896ae85d1fa346dc64269b2df2cb69878a135
4
- data.tar.gz: 8f0750558d7ddd24e974baee5cff8a2d8d60c579
3
+ metadata.gz: 41b9d7ddfc8b9f5abe8cff9e027d645514a1f3b8
4
+ data.tar.gz: 3bdcd1c984c9f22906fc03109309a1308e63f864
5
5
  SHA512:
6
- metadata.gz: da7b3c16ad71a6c4d71aa0d4a9c8542dfe79e16c27019fb347d8c519168637f69a40fda5ae057af85f9206cd5a3925e654f25e924c1ec74ad8dbae92aded0dce
7
- data.tar.gz: ca3cd7894d45a534e9c92e92f6c62b2da96a5831262c73556309f3ca2a1ee6536b9a5a46e6a40e8bd0e7da29a7003441e7e0e4bf02659affe6fcaa397238a0c7
6
+ metadata.gz: 89cb02b3c412e644265ea7ca458142a15641026786732cf10f7f1ec11332f812792154e9eec220c46c701ffa0a59c7ddbcda1247420894cd2eba2a66ba9d424f
7
+ data.tar.gz: d29c3140abf4ed99e91d7592954bd85e671d92b21487ff55155d7ae211b09fed98c2c63b8cc3f5d65018ad19e2f01b70d3da95ea0ae458f7b70cd0e9034674bf
data/Rakefile CHANGED
@@ -1,19 +1,5 @@
1
- begin
2
- require 'bundler/setup'
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
- Rails.configuration.ungarbled.default_lang
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
@@ -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? && !@browser.windows8?
8
- filename.encode('cp932', invalid: :replace)
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
- super
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
@@ -12,10 +12,23 @@ module Ungarbled
12
12
 
13
13
  def call(env)
14
14
  req = Rack::Request.new(env)
15
- browser = Browser.new(
16
- ua: req.user_agent,
17
- accept_language: req.env['HTTP_ACCEPT_LANGUAGE']
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]
@@ -9,7 +9,11 @@ module Ungarbled
9
9
  config.ungarbled.default_lang = :ja
10
10
 
11
11
  initializer 'ungarbled' do
12
- ::ActionController::Base.send :include, Ungarbled::ActionControllerExt
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
@@ -1,3 +1,3 @@
1
1
  module Ungarbled
2
- VERSION = '0.0.10'
2
+ VERSION = '0.0.11'
3
3
  end
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.10
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: 2014-09-04 00:00:00.000000000 Z
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: bundler
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: rake
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: '0'
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: '0'
82
+ version: 4.0.0
97
83
  - !ruby/object:Gem::Dependency
98
- name: pry-meta
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-rails-capybara
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.2.2
149
+ rubygems_version: 2.6.13
164
150
  signing_key:
165
151
  specification_version: 4
166
152
  summary: Ungarble filename for downloads.