ungarbled 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
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.