mime-types 3.3.1 → 3.4.1

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.
data/Rakefile CHANGED
@@ -1,79 +1,108 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rubygems'
4
- require 'hoe'
5
- require 'rake/clean'
3
+ require "rubygems"
4
+ require "hoe"
5
+ require "rake/clean"
6
+
7
+ # This is required until https://github.com/seattlerb/hoe/issues/112 is fixed
8
+ class Hoe
9
+ def with_config
10
+ config = Hoe::DEFAULT_CONFIG
11
+
12
+ rc = File.expand_path("~/.hoerc")
13
+ homeconfig = load_config(rc)
14
+ config = config.merge(homeconfig)
15
+
16
+ localconfig = load_config(File.expand_path(File.join(Dir.pwd, ".hoerc")))
17
+ config = config.merge(localconfig)
18
+
19
+ yield config, rc
20
+ end
21
+
22
+ def load_config(name)
23
+ File.exist?(name) ? safe_load_yaml(name) : {}
24
+ end
25
+
26
+ def safe_load_yaml(name)
27
+ return safe_load_yaml_file(name) if YAML.respond_to?(:safe_load_file)
28
+
29
+ data = IO.binread(name)
30
+ YAML.safe_load(data, permitted_classes: [Regexp])
31
+ rescue
32
+ YAML.safe_load(data, [Regexp])
33
+ end
34
+
35
+ def safe_load_yaml_file(name)
36
+ YAML.safe_load_file(name, permitted_classes: [Regexp])
37
+ rescue
38
+ YAML.safe_load_file(name, [Regexp])
39
+ end
40
+ end
6
41
 
7
42
  Hoe.plugin :doofus
8
43
  Hoe.plugin :gemspec2
9
44
  Hoe.plugin :git
10
45
  Hoe.plugin :minitest
11
- Hoe.plugin :travis
12
- Hoe.plugin :email unless ENV['CI'] or ENV['TRAVIS']
46
+ Hoe.plugin :email unless ENV["CI"]
13
47
 
14
- spec = Hoe.spec 'mime-types' do
15
- developer('Austin Ziegler', 'halostatue@gmail.com')
48
+ spec = Hoe.spec "mime-types" do
49
+ developer("Austin Ziegler", "halostatue@gmail.com")
16
50
  self.need_tar = true
17
51
 
18
- require_ruby_version '>= 2.0'
19
-
20
- self.history_file = 'History.md'
21
- self.readme_file = 'README.rdoc'
22
-
23
- license 'MIT'
24
-
25
- extra_deps << ['mime-types-data', '~> 3.2015']
26
-
27
- extra_dev_deps << ['hoe-doofus', '~> 1.0']
28
- extra_dev_deps << ['hoe-gemspec2', '~> 1.1']
29
- extra_dev_deps << ['hoe-git', '~> 1.6']
30
- extra_dev_deps << ['hoe-rubygems', '~> 1.0']
31
- extra_dev_deps << ['hoe-travis', '~> 1.2']
32
- extra_dev_deps << ['minitest', '~> 5.4']
33
- extra_dev_deps << ['minitest-autotest', '~> 1.0']
34
- extra_dev_deps << ['minitest-focus', '~> 1.0']
35
- extra_dev_deps << ['minitest-bonus-assertions', '~> 3.0']
36
- extra_dev_deps << ['minitest-hooks', '~> 1.4']
37
- extra_dev_deps << ['rake', '>= 10.0', '< 13.0']
38
- extra_dev_deps << ['fivemat', '~> 1.3']
39
- extra_dev_deps << ['minitest-rg', '~> 5.2']
40
-
41
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0')
42
- extra_dev_deps << ['simplecov', '~> 0.7']
43
- # if ENV['CI'] or ENV['TRAVIS']
44
- # extra_dev_deps << ['coveralls', '~> 0.8']
45
- # end
52
+ require_ruby_version ">= 2.0"
53
+
54
+ self.history_file = "History.md"
55
+ self.readme_file = "README.rdoc"
56
+
57
+ license "MIT"
58
+
59
+ extra_deps << ["mime-types-data", "~> 3.2015"]
60
+
61
+ extra_dev_deps << ["hoe-doofus", "~> 1.0"]
62
+ extra_dev_deps << ["hoe-gemspec2", "~> 1.1"]
63
+ extra_dev_deps << ["hoe-git", "~> 1.6"]
64
+ extra_dev_deps << ["hoe-rubygems", "~> 1.0"]
65
+ extra_dev_deps << ["standard", "~> 1.0"]
66
+ extra_dev_deps << ["minitest", "~> 5.4"]
67
+ extra_dev_deps << ["minitest-autotest", "~> 1.0"]
68
+ extra_dev_deps << ["minitest-focus", "~> 1.0"]
69
+ extra_dev_deps << ["minitest-bonus-assertions", "~> 3.0"]
70
+ extra_dev_deps << ["minitest-hooks", "~> 1.4"]
71
+ extra_dev_deps << ["rake", ">= 10.0", "< 14.0"]
72
+
73
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.0")
74
+ extra_dev_deps << ["simplecov", "~> 0.7"]
46
75
  end
47
76
  end
48
77
 
49
78
  namespace :benchmark do
50
79
  task :support do
51
- %w(lib support).each { |path|
80
+ %w[lib support].each { |path|
52
81
  $LOAD_PATH.unshift(File.join(Rake.application.original_dir, path))
53
82
  }
54
83
  end
55
84
 
56
- desc 'Benchmark Load Times'
57
- task :load, [:repeats] => 'benchmark:support' do |_, args|
58
- require 'benchmarks/load'
85
+ desc "Benchmark Load Times"
86
+ task :load, [:repeats] => "benchmark:support" do |_, args|
87
+ require "benchmarks/load"
59
88
  Benchmarks::Load.report(
60
- File.join(Rake.application.original_dir, 'lib'),
89
+ File.join(Rake.application.original_dir, "lib"),
61
90
  args.repeats
62
91
  )
63
92
  end
64
93
 
65
- desc 'Allocation counts'
66
- task :allocations, [:top_x, :mime_types_only] => 'benchmark:support' do |_, args|
67
- require 'benchmarks/load_allocations'
94
+ desc "Allocation counts"
95
+ task :allocations, [:top_x, :mime_types_only] => "benchmark:support" do |_, args|
96
+ require "benchmarks/load_allocations"
68
97
  Benchmarks::LoadAllocations.report(
69
98
  top_x: args.top_x,
70
99
  mime_types_only: args.mime_types_only
71
100
  )
72
101
  end
73
102
 
74
- desc 'Columnar allocation counts'
75
- task 'allocations:columnar', [:top_x, :mime_types_only] => 'benchmark:support' do |_, args|
76
- require 'benchmarks/load_allocations'
103
+ desc "Columnar allocation counts"
104
+ task "allocations:columnar", [:top_x, :mime_types_only] => "benchmark:support" do |_, args|
105
+ require "benchmarks/load_allocations"
77
106
  Benchmarks::LoadAllocations.report(
78
107
  columnar: true,
79
108
  top_x: args.top_x,
@@ -81,9 +110,9 @@ namespace :benchmark do
81
110
  )
82
111
  end
83
112
 
84
- desc 'Columnar allocation counts (full load)'
85
- task 'allocations:columnar:full', [:top_x, :mime_types_only] => 'benchmark:support' do |_, args|
86
- require 'benchmarks/load_allocations'
113
+ desc "Columnar allocation counts (full load)"
114
+ task "allocations:columnar:full", [:top_x, :mime_types_only] => "benchmark:support" do |_, args|
115
+ require "benchmarks/load_allocations"
87
116
  Benchmarks::LoadAllocations.report(
88
117
  columnar: true,
89
118
  top_x: args.top_x,
@@ -92,18 +121,18 @@ namespace :benchmark do
92
121
  )
93
122
  end
94
123
 
95
- desc 'Memory profiler'
96
- task :memory, [:top_x, :mime_types_only] => 'benchmark:support' do |_, args|
97
- require 'benchmarks/memory_profiler'
124
+ desc "Memory profiler"
125
+ task :memory, [:top_x, :mime_types_only] => "benchmark:support" do |_, args|
126
+ require "benchmarks/memory_profiler"
98
127
  Benchmarks::ProfileMemory.report(
99
128
  mime_types_only: args.mime_types_only,
100
129
  top_x: args.top_x
101
130
  )
102
131
  end
103
132
 
104
- desc 'Columnar memory profiler'
105
- task 'memory:columnar', [:top_x, :mime_types_only] => 'benchmark:support' do |_, args|
106
- require 'benchmarks/memory_profiler'
133
+ desc "Columnar memory profiler"
134
+ task "memory:columnar", [:top_x, :mime_types_only] => "benchmark:support" do |_, args|
135
+ require "benchmarks/memory_profiler"
107
136
  Benchmarks::ProfileMemory.report(
108
137
  columnar: true,
109
138
  mime_types_only: args.mime_types_only,
@@ -111,9 +140,9 @@ namespace :benchmark do
111
140
  )
112
141
  end
113
142
 
114
- desc 'Columnar allocation counts (full load)'
115
- task 'memory:columnar:full', [:top_x, :mime_types_only] => 'benchmark:support' do |_, args|
116
- require 'benchmarks/memory_profiler'
143
+ desc "Columnar allocation counts (full load)"
144
+ task "memory:columnar:full", [:top_x, :mime_types_only] => "benchmark:support" do |_, args|
145
+ require "benchmarks/memory_profiler"
117
146
  Benchmarks::ProfileMemory.report(
118
147
  columnar: true,
119
148
  full: true,
@@ -122,90 +151,72 @@ namespace :benchmark do
122
151
  )
123
152
  end
124
153
 
125
- desc 'Object counts'
126
- task objects: 'benchmark:support' do
127
- require 'benchmarks/object_counts'
154
+ desc "Object counts"
155
+ task objects: "benchmark:support" do
156
+ require "benchmarks/object_counts"
128
157
  Benchmarks::ObjectCounts.report
129
158
  end
130
159
 
131
- desc 'Columnar object counts'
132
- task 'objects:columnar' => 'benchmark:support' do
133
- require 'benchmarks/object_counts'
160
+ desc "Columnar object counts"
161
+ task "objects:columnar" => "benchmark:support" do
162
+ require "benchmarks/object_counts"
134
163
  Benchmarks::ObjectCounts.report(columnar: true)
135
164
  end
136
165
 
137
- desc 'Columnar object counts (full load)'
138
- task 'objects:columnar:full' => 'benchmark:support' do
139
- require 'benchmarks/object_counts'
166
+ desc "Columnar object counts (full load)"
167
+ task "objects:columnar:full" => "benchmark:support" do
168
+ require "benchmarks/object_counts"
140
169
  Benchmarks::ObjectCounts.report(columnar: true, full: true)
141
170
  end
142
171
  end
143
172
 
144
173
  namespace :profile do
145
- directory 'tmp/profile'
174
+ directory "tmp/profile"
146
175
 
147
- CLEAN.add 'tmp'
176
+ CLEAN.add "tmp"
148
177
 
149
178
  def ruby_prof(script)
150
- require 'pathname'
151
- output = Pathname('tmp/profile').join(script)
179
+ require "pathname"
180
+ output = Pathname("tmp/profile").join(script)
152
181
  output.mkpath
153
- script = Pathname('support/profile').join("#{script}.rb")
182
+ script = Pathname("support/profile").join("#{script}.rb")
154
183
 
155
184
  args = [
156
- '-W0',
157
- '-Ilib',
158
- '-S', 'ruby-prof',
159
- '-R', 'mime/types',
160
- '-s', 'self',
161
- '-p', 'multi',
162
- '-f', output.to_s,
185
+ "-W0",
186
+ "-Ilib",
187
+ "-S", "ruby-prof",
188
+ "-R", "mime/types",
189
+ "-s", "self",
190
+ "-p", "multi",
191
+ "-f", output.to_s,
163
192
  script.to_s
164
193
  ]
165
- ruby args.join(' ')
194
+ ruby args.join(" ")
166
195
  end
167
196
 
168
- task full: 'tmp/profile' do
169
- ruby_prof 'full'
197
+ task full: "tmp/profile" do
198
+ ruby_prof "full"
170
199
  end
171
200
 
172
201
  task columnar: :support do
173
- ruby_prof 'columnar'
202
+ ruby_prof "columnar"
174
203
  end
175
204
 
176
- task 'columnar:full' => :support do
177
- ruby_prof 'columnar_full'
205
+ task "columnar:full" => :support do
206
+ ruby_prof "columnar_full"
178
207
  end
179
208
  end
180
209
 
181
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0')
210
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.0")
182
211
  namespace :test do
183
- # Coveralls needs to be disabled for now because it transitively depends on
184
- # an earlier version of mime-types.
185
- # if ENV['CI'] or ENV['TRAVIS']
186
- # task :coveralls do
187
- # spec.test_prelude = [
188
- # 'require "psych"',
189
- # 'require "simplecov"',
190
- # 'require "coveralls"',
191
- # 'SimpleCov.formatter = Coveralls::SimpleCov::Formatter',
192
- # 'SimpleCov.start("test_frameworks") { command_name "Minitest" }',
193
- # 'gem "minitest"'
194
- # ].join('; ')
195
- # Rake::Task['test'].execute
196
- # end
197
-
198
- # Rake::Task['travis'].prerequisites.replace(%w(test:coveralls))
199
- # end
200
-
201
- desc 'Run test coverage'
212
+ desc "Run test coverage"
202
213
  task :coverage do
203
214
  spec.test_prelude = [
204
215
  'require "simplecov"',
205
216
  'SimpleCov.start("test_frameworks") { command_name "Minitest" }',
206
217
  'gem "minitest"'
207
- ].join('; ')
208
- Rake::Task['test'].execute
218
+ ].join("; ")
219
+ Rake::Task["test"].execute
209
220
  end
210
221
  end
211
222
  end
@@ -213,18 +224,18 @@ end
213
224
  namespace :convert do
214
225
  namespace :docs do
215
226
  task :setup do
216
- gem 'rdoc'
217
- require 'rdoc/rdoc'
227
+ gem "rdoc"
228
+ require "rdoc/rdoc"
218
229
  @doc_converter ||= RDoc::Markup::ToMarkdown.new
219
230
  end
220
231
 
221
- FileList['*.rdoc'].each do |name|
232
+ FileList["*.rdoc"].each do |name|
222
233
  rdoc = name
223
- mark = "#{File.basename(name, '.rdoc')}.md"
234
+ mark = "#{File.basename(name, ".rdoc")}.md"
224
235
 
225
236
  file mark => [rdoc, :setup] do |t|
226
237
  puts "#{rdoc} => #{mark}"
227
- File.open(t.name, 'wb') { |target|
238
+ File.open(t.name, "wb") { |target|
228
239
  target.write @doc_converter.convert(IO.read(t.prerequisites.first))
229
240
  }
230
241
  end
@@ -235,46 +246,21 @@ namespace :convert do
235
246
  end
236
247
  end
237
248
 
238
- desc 'Convert documentation from RDoc to Markdown'
239
- task docs: 'convert:docs:run'
249
+ desc "Convert documentation from RDoc to Markdown"
250
+ task docs: "convert:docs:run"
240
251
  end
241
252
 
242
- task 'deps:top', [:number] do |_, args|
243
- require 'net/http'
244
- require 'json'
245
-
246
- def rubygems_get(gem_name: '', endpoint: '')
247
- path = File.join('/api/v1/gems/', gem_name, endpoint).chomp('/') + '.json'
248
- Net::HTTP.start('rubygems.org', use_ssl: true) do |http|
249
- JSON.parse(http.get(path).body)
250
- end
251
- end
252
-
253
- results = rubygems_get(
254
- gem_name: 'mime-types',
255
- endpoint: 'reverse_dependencies'
256
- )
257
-
258
- weighted_results = {}
259
- results.each do |name|
260
- begin
261
- weighted_results[name] = rubygems_get(gem_name: name)['downloads']
262
- rescue => e
263
- puts "#{name} #{e.message}"
264
- end
265
- end
266
-
267
- weighted_results.sort { |(_k1, v1), (_k2, v2)|
268
- v2 <=> v1
269
- }.first(args.number || 50).each_with_index do |(k, v), i|
270
- puts "#{i}) #{k}: #{v}"
253
+ namespace :deps do
254
+ task :top, [:number] => "benchmark:support" do |_, args|
255
+ require "deps"
256
+ Deps.run(args)
271
257
  end
272
258
  end
273
259
 
274
260
  task :console do
275
- arguments = %w(pry)
261
+ arguments = %w[irb]
276
262
  arguments.push(*spec.spec.require_paths.map { |dir| "-I#{dir}" })
277
- arguments.push("-r#{spec.spec.name.gsub('-', File::SEPARATOR)}")
263
+ arguments.push("-r#{spec.spec.name.gsub("-", File::SEPARATOR)}")
278
264
  unless system(*arguments)
279
265
  error "Command failed: #{show_command}"
280
266
  abort
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'mime/type'
3
+ require "mime/type"
4
4
 
5
5
  # A version of MIME::Type that works hand-in-hand with a MIME::Types::Columnar
6
6
  # container to load data by columns.
@@ -35,8 +35,8 @@ class MIME::Type::Columnar < MIME::Type
35
35
  column :encoding, :encoding=
36
36
  column :docs, :docs=
37
37
  column :preferred_extension, :preferred_extension=
38
- column :obsolete, :obsolete=, :obsolete?, :registered, :registered=,
39
- :registered?, :signature, :signature=, :signature?, file: 'flags'
38
+ column :obsolete, :obsolete=, :obsolete?, :registered, :registered=, :registered?, :signature, :signature=,
39
+ :signature?, :provisional, :provisional=, :provisional?, file: "flags"
40
40
  column :xrefs, :xrefs=, :xref_urls
41
41
  column :use_instead, :use_instead=
42
42