blob: cb6da20de3173c75bf26d55322033346eab34c70 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
require 'mime/type'
# A version of MIME::Type that works hand-in-hand with a MIME::Types::Columnar
# container to load data by columns.
#
# When a field is has not yet been loaded, that data will be loaded for all
# types in the container before forwarding the message to MIME::Type.
#
# More information can be found in MIME::Types::Columnar.
#
# MIME::Type::Columnar is *not* intended to be created except by
# MIME::Types::Columnar containers.
class MIME::Type::Columnar < MIME::Type
attr_writer :friendly # :nodoc:
def initialize(container, content_type, extensions) # :nodoc:
@container = container
self.content_type = content_type
self.extensions = extensions
end
def friendly(*) # :nodoc:
@container.send(:load_friendly) unless defined?(@friendly)
super if @friendly
end
def encoding # :nodoc:
@container.send(:load_encoding) unless defined?(@encoding)
@encoding
end
def docs # :nodoc:
@container.send(:load_docs) unless defined?(@docs)
@docs
end
def obsolete? # :nodoc:
@container.send(:load_obsolete) unless defined?(@obsolete)
super
end
def references(*) # :nodoc:
@container.send(:load_references) unless defined?(@references)
super if @references
end
def registered? # :nodoc:
@container.send(:load_registered) unless defined?(@registered)
super
end
def signature? # :nodoc:
@container.send(:load_signature) unless defined?(@signature)
super
end
def system?(*) # :nodoc:
@container.send(:load_system) unless defined?(@system)
super
end
def system # :nodoc:
@container.send(:load_system) unless defined?(@system)
@system
end
def xrefs # :nodoc:
@container.send(:load_xrefs) unless defined?(@xrefs)
@xrefs
end
def use_instead # :nodoc:
@container.send(:load_use_instead) unless defined?(@use_instead)
@use_instead
end
def binary? # :nodoc:
@container.send(:load_encoding) unless defined?(@encoding)
super
end
def to_a # :nodoc:
@container.send(:load_encoding) unless defined?(@encoding)
@container.send(:load_system) unless defined?(@system)
@container.send(:load_docs) unless defined?(@docs)
@container.send(:load_references) unless defined?(@references)
super
end
def to_hash # :nodoc:
@container.send(:load_encoding) unless defined?(@encoding)
@container.send(:load_system) unless defined?(@system)
@container.send(:load_docs) unless defined?(@docs)
@container.send(:load_references) unless defined?(@references)
super
end
def encode_with(coder) # :nodoc:
@container.send(:load_friendly) unless defined?(@friendly)
@container.send(:load_encoding) unless defined?(@encoding)
@container.send(:load_system) unless defined?(@system)
@container.send(:load_docs) unless defined?(@docs)
@container.send(:load_references) unless defined?(@references)
@container.send(:load_obsolete) unless defined?(@obsolete)
@container.send(:load_use_instead) unless defined?(@use_instead)
@container.send(:load_xrefs) unless defined?(@xrefs)
@container.send(:load_system) unless defined?(@system)
@container.send(:load_registered) unless defined?(@registered)
@container.send(:load_signature) unless defined?(@signature)
super
end
end
|