mime-types 2.99.3 → 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.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/{Code-of-Conduct.rdoc → Code-of-Conduct.md} +29 -30
  3. data/Contributing.md +132 -0
  4. data/History.md +269 -0
  5. data/{Licence.rdoc → Licence.md} +4 -18
  6. data/Manifest.txt +8 -25
  7. data/README.rdoc +63 -73
  8. data/Rakefile +200 -97
  9. data/lib/mime/type/columnar.rb +30 -63
  10. data/lib/mime/type.rb +294 -458
  11. data/lib/mime/types/_columnar.rb +137 -0
  12. data/lib/mime/types/cache.rb +52 -74
  13. data/lib/mime/types/columnar.rb +2 -147
  14. data/lib/mime/types/container.rb +96 -0
  15. data/lib/mime/types/deprecations.rb +17 -34
  16. data/lib/mime/types/full.rb +19 -0
  17. data/lib/mime/types/loader.rb +36 -152
  18. data/lib/mime/types/logger.rb +7 -5
  19. data/lib/mime/types/registry.rb +90 -0
  20. data/lib/mime/types.rb +55 -148
  21. data/lib/mime-types.rb +2 -2
  22. data/test/minitest_helper.rb +8 -18
  23. data/test/test_mime_type.rb +489 -464
  24. data/test/test_mime_types.rb +139 -91
  25. data/test/test_mime_types_cache.rb +85 -57
  26. data/test/test_mime_types_class.rb +120 -100
  27. data/test/test_mime_types_lazy.rb +30 -28
  28. data/test/test_mime_types_loader.rb +18 -45
  29. metadata +92 -77
  30. data/Contributing.rdoc +0 -170
  31. data/History-Types.rdoc +0 -454
  32. data/History.rdoc +0 -590
  33. data/data/mime-types.json +0 -1
  34. data/data/mime.content_type.column +0 -1980
  35. data/data/mime.docs.column +0 -1980
  36. data/data/mime.encoding.column +0 -1980
  37. data/data/mime.friendly.column +0 -1980
  38. data/data/mime.obsolete.column +0 -1980
  39. data/data/mime.registered.column +0 -1980
  40. data/data/mime.signature.column +0 -1980
  41. data/data/mime.use_instead.column +0 -1980
  42. data/data/mime.xrefs.column +0 -1980
  43. data/docs/COPYING.txt +0 -339
  44. data/docs/artistic.txt +0 -127
  45. data/lib/mime/types/loader_path.rb +0 -15
  46. data/support/apache_mime_types.rb +0 -108
  47. data/support/benchmarks/load.rb +0 -64
  48. data/support/benchmarks/load_allocations.rb +0 -83
  49. data/support/benchmarks/object_counts.rb +0 -41
  50. data/support/convert/columnar.rb +0 -88
  51. data/support/convert.rb +0 -158
  52. data/support/iana_registry.rb +0 -172
@@ -1,4 +1,6 @@
1
- require 'mime/type'
1
+ # frozen_string_literal: true
2
+
3
+ require "mime/type"
2
4
 
3
5
  # A version of MIME::Type that works hand-in-hand with a MIME::Types::Columnar
4
6
  # container to load data by columns.
@@ -11,80 +13,45 @@ require 'mime/type'
11
13
  # MIME::Type::Columnar is *not* intended to be created except by
12
14
  # MIME::Types::Columnar containers.
13
15
  class MIME::Type::Columnar < MIME::Type
14
- attr_writer :friendly # :nodoc:
15
-
16
16
  def initialize(container, content_type, extensions) # :nodoc:
17
17
  @container = container
18
18
  self.content_type = content_type
19
19
  self.extensions = extensions
20
20
  end
21
21
 
22
- def friendly(*) # :nodoc:
23
- @container.send(:load_friendly) unless defined?(@friendly)
24
- super if @friendly
25
- end
26
-
27
- def encoding # :nodoc:
28
- @container.send(:load_encoding) unless defined?(@encoding)
29
- @encoding
30
- end
31
-
32
- def docs # :nodoc:
33
- @container.send(:load_docs) unless defined?(@docs)
34
- @docs
35
- end
36
-
37
- def obsolete? # :nodoc:
38
- @container.send(:load_obsolete) unless defined?(@obsolete)
39
- super
40
- end
41
-
42
- def registered? # :nodoc:
43
- @container.send(:load_registered) unless defined?(@registered)
44
- super
45
- end
46
-
47
- def signature? # :nodoc:
48
- @container.send(:load_signature) unless defined?(@signature)
49
- super
50
- end
22
+ def self.column(*methods, file: nil) # :nodoc:
23
+ file ||= methods.first
51
24
 
52
- def xrefs # :nodoc:
53
- @container.send(:load_xrefs) unless defined?(@xrefs)
54
- @xrefs
25
+ file_method = :"load_#{file}"
26
+ methods.each do |m|
27
+ define_method m do |*args|
28
+ @container.send(file_method)
29
+ super(*args)
30
+ end
31
+ end
55
32
  end
56
33
 
57
- def use_instead # :nodoc:
58
- @container.send(:load_use_instead) unless defined?(@use_instead)
59
- @use_instead
60
- end
61
-
62
- def binary? # :nodoc:
63
- @container.send(:load_encoding) unless defined?(@encoding)
64
- super
65
- end
34
+ column :friendly
35
+ column :encoding, :encoding=
36
+ column :docs, :docs=
37
+ column :preferred_extension, :preferred_extension=
38
+ column :obsolete, :obsolete=, :obsolete?, :registered, :registered=, :registered?, :signature, :signature=,
39
+ :signature?, :provisional, :provisional=, :provisional?, file: "flags"
40
+ column :xrefs, :xrefs=, :xref_urls
41
+ column :use_instead, :use_instead=
66
42
 
67
- def to_a # :nodoc:
68
- @container.send(:load_encoding) unless defined?(@encoding)
69
- @container.send(:load_docs) unless defined?(@docs)
70
- super
71
- end
72
-
73
- def to_hash # :nodoc:
74
- @container.send(:load_encoding) unless defined?(@encoding)
75
- @container.send(:load_docs) unless defined?(@docs)
43
+ def encode_with(coder) # :nodoc:
44
+ @container.send(:load_friendly)
45
+ @container.send(:load_encoding)
46
+ @container.send(:load_docs)
47
+ @container.send(:load_flags)
48
+ @container.send(:load_use_instead)
49
+ @container.send(:load_xrefs)
50
+ @container.send(:load_preferred_extension)
76
51
  super
77
52
  end
78
53
 
79
- def encode_with(coder) # :nodoc:
80
- @container.send(:load_friendly) unless defined?(@friendly)
81
- @container.send(:load_encoding) unless defined?(@encoding)
82
- @container.send(:load_docs) unless defined?(@docs)
83
- @container.send(:load_obsolete) unless defined?(@obsolete)
84
- @container.send(:load_use_instead) unless defined?(@use_instead)
85
- @container.send(:load_xrefs) unless defined?(@xrefs)
86
- @container.send(:load_registered) unless defined?(@registered)
87
- @container.send(:load_signature) unless defined?(@signature)
88
- super
54
+ class << self
55
+ undef column
89
56
  end
90
57
  end