@@ -79,7 +79,7 @@ function load{F}(q::Formatted{F}, args...; options...)
79
79
for library in libraries
80
80
try
81
81
Library = checked_import (library)
82
- if ! isdefined ( Library, : load ) || Library. load == FileIO . load
82
+ if ! has_method_from ( methods ( Library. load), Library)
83
83
throw (LoaderError (string (library), " load not defined" ))
84
84
end
85
85
return Library. load (q, args... ; options... )
@@ -96,7 +96,7 @@ function save{F}(q::Formatted{F}, data...; options...)
96
96
for library in libraries
97
97
try
98
98
Library = checked_import (library)
99
- if ! isdefined ( Library, : save ) || Library. save == FileIO . save
99
+ if ! has_method_from ( methods ( Library. save), Library)
100
100
throw (WriterError (string (library), " save not defined" ))
101
101
end
102
102
return Library. save (q, data... ; options... )
@@ -106,3 +106,18 @@ function save{F}(q::Formatted{F}, data...; options...)
106
106
end
107
107
handle_exceptions (failures, " saving \" $(filename (q)) \" " )
108
108
end
109
+
110
+ function has_method_from (mt, Library)
111
+ for m in mt
112
+ if getmodule (m) == Library
113
+ return true
114
+ end
115
+ end
116
+ false
117
+ end
118
+
119
+ if VERSION < v " 0.5.0-dev+3543"
120
+ getmodule (m) = m. func. code. module
121
+ else
122
+ getmodule (m) = m. module
123
+ end
0 commit comments