@@ -11,7 +11,10 @@ def display(obj, options = {})
11
11
obj = obj . object
12
12
13
13
fuzzy_mime = options [ :format ] # Treated like a fuzzy mime type
14
- raise 'Invalid argument :format' unless !fuzzy_mime || String === fuzzy_mime
14
+ unless !fuzzy_mime || String === fuzzy_mime
15
+ raise 'Invalid argument :format'
16
+ end
17
+
15
18
if exact_mime = options [ :mime ]
16
19
raise 'Invalid argument :mime' unless String === exact_mime
17
20
raise 'Invalid mime type' unless exact_mime . include? ( '/' )
@@ -27,13 +30,15 @@ def display(obj, options = {})
27
30
28
31
# As a last resort, interpret string representation of the object
29
32
# as the given mime type.
30
- data [ exact_mime ] = protect ( exact_mime , obj ) if exact_mime && !data . any? { |m , _ | exact_mime == m }
33
+ if exact_mime && data . none? { |m , _ | exact_mime == m }
34
+ data [ exact_mime ] = protect ( exact_mime , obj )
35
+ end
31
36
32
37
data
33
38
end
34
39
35
- def clear_output ( wait = false )
36
- IRuby ::Kernel . instance . session . send ( :publish , :clear_output , { wait : wait } )
40
+ def clear_output ( wait = false )
41
+ IRuby ::Kernel . instance . session . send ( :publish , :clear_output , wait : wait )
37
42
end
38
43
39
44
private
@@ -44,15 +49,19 @@ def protect(mime, data)
44
49
45
50
def render ( data , obj , exact_mime , fuzzy_mime )
46
51
# Filter matching renderer by object type
47
- renderer = Registry . renderer . select { |r | r . match? ( obj ) }
52
+ renderer = Registry . renderer . select { |r | r . match? ( obj ) }
48
53
49
54
matching_renderer = nil
50
55
51
56
# Find exactly matching display by exact_mime
52
- matching_renderer = renderer . find { |r | exact_mime == r . mime } if exact_mime
57
+ if exact_mime
58
+ matching_renderer = renderer . find { |r | exact_mime == r . mime }
59
+ end
53
60
54
61
# Find fuzzy matching display by fuzzy_mime
55
- matching_renderer ||= renderer . find { |r | r . mime && r . mime . include? ( fuzzy_mime ) } if fuzzy_mime
62
+ if fuzzy_mime
63
+ matching_renderer ||= renderer . find { |r | r . mime &.include? ( fuzzy_mime ) }
64
+ end
56
65
57
66
renderer . unshift matching_renderer if matching_renderer
58
67
@@ -73,7 +82,8 @@ class Representation
73
82
attr_reader :object , :options
74
83
75
84
def initialize ( object , options )
76
- @object , @options = object , options
85
+ @object = object
86
+ @options = options
77
87
end
78
88
79
89
class << self
@@ -94,7 +104,10 @@ class Renderer
94
104
attr_reader :match , :mime , :priority
95
105
96
106
def initialize ( match , mime , render , priority )
97
- @match , @mime , @render , @priority = match , mime , render , priority
107
+ @match = match
108
+ @mime = mime
109
+ @render = render
110
+ @priority = priority
98
111
end
99
112
100
113
def match? ( obj )
@@ -114,15 +127,16 @@ def renderer
114
127
@renderer ||= [ ]
115
128
end
116
129
117
- SUPPORTED_MIMES = %w(
130
+ SUPPORTED_MIMES = %w[
118
131
text/plain
119
132
text/html
120
133
text/latex
121
134
application/json
122
135
application/javascript
123
136
image/png
124
137
image/jpeg
125
- image/svg+xml )
138
+ image/svg+xml
139
+ ]
126
140
127
141
def match ( &block )
128
142
@match = block
@@ -131,7 +145,7 @@ def match(&block)
131
145
end
132
146
133
147
def respond_to ( name )
134
- match { |obj | obj . respond_to? ( name ) }
148
+ match { |obj | obj . respond_to? ( name ) }
135
149
end
136
150
137
151
def type ( &block )
@@ -153,7 +167,7 @@ def priority(p)
153
167
154
168
def format ( mime = nil , &block )
155
169
renderer << Renderer . new ( @match , mime , block , @priority )
156
- renderer . sort_by! { |r | -r . priority }
170
+ renderer . sort_by! { |r | -r . priority }
157
171
158
172
# Decrease priority implicitly for all formats
159
173
# which are added later for a type.
@@ -170,9 +184,7 @@ def format(mime = nil, &block)
170
184
end
171
185
172
186
type { Numo ::NArray }
173
- format 'text/plain' do |obj |
174
- obj . inspect
175
- end
187
+ format 'text/plain' , &:inspect
176
188
format 'text/latex' do |obj |
177
189
obj . ndim == 2 ?
178
190
LaTeX . matrix ( obj , obj . shape [ 0 ] , obj . shape [ 1 ] ) :
@@ -183,9 +195,7 @@ def format(mime = nil, &block)
183
195
end
184
196
185
197
type { NArray }
186
- format 'text/plain' do |obj |
187
- obj . inspect
188
- end
198
+ format 'text/plain' , &:inspect
189
199
format 'text/latex' do |obj |
190
200
obj . dim == 2 ?
191
201
LaTeX . matrix ( obj . transpose ( 1 , 0 ) , obj . shape [ 1 ] , obj . shape [ 0 ] ) :
@@ -247,37 +257,27 @@ def format(mime = nil, &block)
247
257
248
258
match do |obj |
249
259
defined? ( Magick ::Image ) && Magick ::Image === obj ||
250
- defined? ( MiniMagick ::Image ) && MiniMagick ::Image === obj
260
+ defined? ( MiniMagick ::Image ) && MiniMagick ::Image === obj
251
261
end
252
262
format 'image' do |obj |
253
263
format = obj . format || 'PNG'
254
- [ format == 'PNG' ? 'image/png' : 'image/jpeg' , obj . to_blob { |i | i . format = format } ]
264
+ [ format == 'PNG' ? 'image/png' : 'image/jpeg' , obj . to_blob { |i | i . format = format } ]
255
265
end
256
266
257
267
type { Gruff ::Base }
258
- format 'image/png' do |obj |
259
- obj . to_blob
260
- end
268
+ format 'image/png' , &:to_blob
261
269
262
270
respond_to :to_html
263
- format 'text/html' do |obj |
264
- obj . to_html
265
- end
271
+ format 'text/html' , &:to_html
266
272
267
273
respond_to :to_latex
268
- format 'text/latex' do |obj |
269
- obj . to_latex
270
- end
274
+ format 'text/latex' , &:to_latex
271
275
272
276
respond_to :to_tex
273
- format 'text/latex' do |obj |
274
- obj . to_tex
275
- end
277
+ format 'text/latex' , &:to_tex
276
278
277
279
respond_to :to_javascript
278
- format 'text/javascript' do |obj |
279
- obj . to_javascript
280
- end
280
+ format 'text/javascript' , &:to_javascript
281
281
282
282
respond_to :to_svg
283
283
format 'image/svg+xml' do |obj |
@@ -286,21 +286,17 @@ def format(mime = nil, &block)
286
286
end
287
287
288
288
respond_to :to_iruby
289
- format do |obj |
290
- obj . to_iruby
291
- end
289
+ format ( &:to_iruby )
292
290
293
- match { |obj | obj . respond_to? ( :path ) && obj . method ( :path ) . arity == 0 && File . readable? ( obj . path ) }
291
+ match { |obj | obj . respond_to? ( :path ) && obj . method ( :path ) . arity == 0 && File . readable? ( obj . path ) }
294
292
format do |obj |
295
293
mime = MimeMagic . by_path ( obj . path ) . to_s
296
294
[ mime , File . read ( obj . path ) ] if SUPPORTED_MIMES . include? ( mime )
297
295
end
298
296
299
297
type { Object }
300
298
priority ( -1000 )
301
- format 'text/plain' do |obj |
302
- obj . inspect
303
- end
299
+ format 'text/plain' , &:inspect
304
300
end
305
301
end
306
302
end
0 commit comments