Commit | Line | Data |
30229767 |
1 | package Class::MOP::Deprecated; |
2 | |
3 | use strict; |
4 | use warnings; |
b409c969 |
5 | |
a9f48b4b |
6 | our $VERSION = '1.11'; |
30229767 |
7 | $VERSION = eval $VERSION; |
8 | our $AUTHORITY = 'cpan:STEVAN'; |
9 | |
1b948345 |
10 | use Package::DeprecationManager -deprecations => { |
11 | 'Class::MOP::HAVE_ISAREV' => '0.93', |
12 | 'Class::MOP::subname' => '0.93', |
13 | 'Class::MOP::in_global_destruction' => '0.93', |
14 | |
15 | 'Class::MOP::Package::get_method_map' => '0.93', |
16 | |
17 | 'Class::MOP::Class::construct_class_instance' => '0.93', |
18 | 'Class::MOP::Class::check_metaclass_compatibility' => '0.93', |
19 | 'Class::MOP::Class::create_meta_instance' => '0.93', |
20 | 'Class::MOP::Class::clone_instance' => '0.93', |
21 | 'Class::MOP::Class::alias_method' => '0.93', |
22 | 'Class::MOP::Class::compute_all_applicable_methods' => '0.93', |
23 | 'Class::MOP::Class::compute_all_applicable_attributes' => '0.93', |
24 | 'Class::MOP::Class::get_attribute_map' => '0.95', |
25 | |
26 | 'Class::MOP::Instance::bless_instance_structure' => '0.93', |
27 | |
28 | 'Class::MOP::Attribute::process_accessors' => '0.93', |
29 | |
30 | 'Class::MOP::Method::Accessor::initialize_body' => '0.93', |
31 | 'Class::MOP::Method::Accessor::generate_accessor_method' => '0.93', |
32 | 'Class::MOP::Method::Accessor::generate_reader_method' => '0.93', |
33 | 'Class::MOP::Method::Accessor::generate_writer_method' => '0.93', |
34 | 'Class::MOP::Method::Accessor::generate_predicate_method' => '0.93', |
35 | 'Class::MOP::Method::Accessor::generate_clearer_method' => '0.93', |
36 | 'Class::MOP::Method::Accessor::generate_accessor_method_inline' => '0.93', |
37 | 'Class::MOP::Method::Accessor::generate_reader_method_inline' => '0.93', |
38 | 'Class::MOP::Method::Accessor::generate_writer_method_inline' => '0.93', |
39 | 'Class::MOP::Method::Accessor::generate_clearer_method_inline' => '0.93', |
40 | 'Class::MOP::Method::Accessor::generate_predicate_method_inline' => |
41 | '0.93', |
42 | |
43 | 'Class::MOP::Method::Constructor::meta_instance' => '0.93', |
44 | 'Class::MOP::Method::Constructor::attributes' => '0.93', |
45 | 'Class::MOP::Method::Constructor::initialize_body' => '0.93', |
46 | 'Class::MOP::Method::Constructor::generate_constructor_method' => '0.93', |
30229767 |
47 | 'Class::MOP::Method::Constructor::generate_constructor_method_inline' => |
1b948345 |
48 | '0.93', |
49 | }; |
30229767 |
50 | |
30229767 |
51 | |
52 | package |
53 | Class::MOP; |
54 | |
55 | sub HAVE_ISAREV () { |
1b948345 |
56 | Class::MOP::Deprecated::deprecated( |
30229767 |
57 | "Class::MOP::HAVE_ISAREV is deprecated and will be removed in a future release. It has always returned 1 anyway." |
58 | ); |
59 | return 1; |
60 | } |
61 | |
62 | sub subname { |
1b948345 |
63 | Class::MOP::Deprecated::deprecated( |
30229767 |
64 | "Class::MOP::subname is deprecated. Please use Sub::Name directly."); |
65 | require Sub::Name; |
66 | goto \&Sub::Name::subname; |
67 | } |
68 | |
69 | sub in_global_destruction { |
1b948345 |
70 | Class::MOP::Deprecated::deprecated( |
30229767 |
71 | "Class::MOP::in_global_destruction is deprecated. Please use Devel::GlobalDestruction directly." |
72 | ); |
73 | require Devel::GlobalDestruction; |
74 | goto \&Devel::GlobalDestruction::in_global_destruction; |
75 | } |
76 | |
77 | package |
78 | Class::MOP::Package; |
79 | |
1b948345 |
80 | use Scalar::Util qw( blessed ); |
81 | |
b409c969 |
82 | sub get_method_map { |
1b948345 |
83 | Class::MOP::Deprecated::deprecated( |
b409c969 |
84 | 'The get_method_map method has been made private.' |
85 | . " The public version is deprecated and will be removed in a future release.\n" |
86 | ); |
87 | my $self = shift; |
88 | |
38bcde3f |
89 | return { map { $_->name => $_ } $self->_get_local_methods }; |
b409c969 |
90 | } |
91 | |
30229767 |
92 | package |
93 | Class::MOP::Module; |
94 | |
95 | package |
96 | Class::MOP::Class; |
97 | |
98 | sub construct_class_instance { |
1b948345 |
99 | Class::MOP::Deprecated::deprecated( |
30229767 |
100 | 'The construct_class_instance method has been made private.' |
101 | . " The public version is deprecated and will be removed in a future release.\n" |
102 | ); |
103 | shift->_construct_class_instance(@_); |
104 | } |
105 | |
106 | sub check_metaclass_compatibility { |
1b948345 |
107 | Class::MOP::Deprecated::deprecated( |
30229767 |
108 | 'The check_metaclass_compatibility method has been made private.' |
109 | . " The public version is deprecated and will be removed in a future release.\n" |
110 | ); |
111 | shift->_check_metaclass_compatibility(@_); |
112 | } |
113 | |
114 | sub construct_instance { |
1b948345 |
115 | Class::MOP::Deprecated::deprecated( |
30229767 |
116 | 'The construct_instance method has been made private.' |
117 | . " The public version is deprecated and will be removed in a future release.\n" |
118 | ); |
119 | shift->_construct_instance(@_); |
120 | } |
121 | |
122 | sub create_meta_instance { |
1b948345 |
123 | Class::MOP::Deprecated::deprecated( |
30229767 |
124 | 'The create_meta_instance method has been made private.' |
125 | . " The public version is deprecated and will be removed in a future release.\n" |
126 | ); |
127 | shift->_create_meta_instance(@_); |
128 | } |
129 | |
130 | sub clone_instance { |
1b948345 |
131 | Class::MOP::Deprecated::deprecated( |
30229767 |
132 | 'The clone_instance method has been made private.' |
133 | . " The public version is deprecated and will be removed in a future release.\n" |
134 | ); |
135 | shift->_clone_instance(@_); |
136 | } |
137 | |
138 | sub alias_method { |
1b948345 |
139 | Class::MOP::Deprecated::deprecated( |
30229767 |
140 | "The alias_method method is deprecated. Use add_method instead.\n"); |
141 | |
142 | shift->add_method(@_); |
143 | } |
144 | |
145 | sub compute_all_applicable_methods { |
1b948345 |
146 | Class::MOP::Deprecated::deprecated( |
30229767 |
147 | 'The compute_all_applicable_methods method is deprecated.' |
148 | . " Use get_all_methods instead.\n" ); |
149 | |
150 | return map { |
151 | { |
152 | name => $_->name, |
153 | class => $_->package_name, |
154 | code => $_, # sigh, overloading |
155 | }, |
156 | } shift->get_all_methods(@_); |
157 | } |
158 | |
159 | sub compute_all_applicable_attributes { |
1b948345 |
160 | Class::MOP::Deprecated::deprecated( |
30229767 |
161 | 'The compute_all_applicable_attributes method has been deprecated.' |
162 | . " Use get_all_attributes instead.\n" ); |
163 | |
164 | shift->get_all_attributes(@_); |
165 | } |
166 | |
b1aaf0dc |
167 | sub get_attribute_map { |
1b948345 |
168 | Class::MOP::Deprecated::deprecated( |
b1aaf0dc |
169 | "The get_attribute_map method has been deprecated.\n"); |
170 | |
171 | shift->_attribute_map(@_); |
172 | } |
173 | |
30229767 |
174 | package |
175 | Class::MOP::Instance; |
176 | |
177 | sub bless_instance_structure { |
1b948345 |
178 | Class::MOP::Deprecated::deprecated( |
30229767 |
179 | 'The bless_instance_structure method is deprecated.' |
180 | . " It will be removed in a future release.\n" ); |
181 | |
182 | my ( $self, $instance_structure ) = @_; |
183 | bless $instance_structure, $self->_class_name; |
184 | } |
185 | |
186 | package |
187 | Class::MOP::Attribute; |
188 | |
189 | sub process_accessors { |
1b948345 |
190 | Class::MOP::Deprecated::deprecated( |
30229767 |
191 | 'The process_accessors method has been made private.' |
192 | . " The public version is deprecated and will be removed in a future release.\n" |
193 | ); |
194 | shift->_process_accessors(@_); |
195 | } |
196 | |
197 | package |
198 | Class::MOP::Method::Accessor; |
199 | |
200 | sub initialize_body { |
1b948345 |
201 | Class::MOP::Deprecated::deprecated( |
30229767 |
202 | 'The initialize_body method has been made private.' |
203 | . " The public version is deprecated and will be removed in a future release.\n" |
204 | ); |
205 | shift->_initialize_body; |
206 | } |
207 | |
208 | sub generate_accessor_method { |
1b948345 |
209 | Class::MOP::Deprecated::deprecated( |
30229767 |
210 | 'The generate_accessor_method method has been made private.' |
211 | . " The public version is deprecated and will be removed in a future release.\n" |
212 | ); |
213 | shift->_generate_accessor_method; |
214 | } |
215 | |
216 | sub generate_reader_method { |
1b948345 |
217 | Class::MOP::Deprecated::deprecated( |
30229767 |
218 | 'The generate_reader_method method has been made private.' |
219 | . " The public version is deprecated and will be removed in a future release.\n" |
220 | ); |
221 | shift->_generate_reader_method; |
222 | } |
223 | |
224 | sub generate_writer_method { |
1b948345 |
225 | Class::MOP::Deprecated::deprecated( |
30229767 |
226 | 'The generate_writer_method method has been made private.' |
227 | . " The public version is deprecated and will be removed in a future release.\n" |
228 | ); |
229 | shift->_generate_writer_method; |
230 | } |
231 | |
232 | sub generate_predicate_method { |
1b948345 |
233 | Class::MOP::Deprecated::deprecated( |
30229767 |
234 | 'The generate_predicate_method method has been made private.' |
235 | . " The public version is deprecated and will be removed in a future release.\n" |
236 | ); |
237 | shift->_generate_predicate_method; |
238 | } |
239 | |
240 | sub generate_clearer_method { |
1b948345 |
241 | Class::MOP::Deprecated::deprecated( |
30229767 |
242 | 'The generate_clearer_method method has been made private.' |
243 | . " The public version is deprecated and will be removed in a future release.\n" |
244 | ); |
245 | shift->_generate_clearer_method; |
246 | } |
247 | |
248 | sub generate_accessor_method_inline { |
1b948345 |
249 | Class::MOP::Deprecated::deprecated( |
30229767 |
250 | 'The generate_accessor_method_inline method has been made private.' |
251 | . " The public version is deprecated and will be removed in a future release.\n" |
252 | ); |
253 | shift->_generate_accessor_method_inline; |
254 | } |
255 | |
256 | sub generate_reader_method_inline { |
1b948345 |
257 | Class::MOP::Deprecated::deprecated( |
30229767 |
258 | 'The generate_reader_method_inline method has been made private.' |
259 | . " The public version is deprecated and will be removed in a future release.\n" |
260 | ); |
261 | shift->_generate_reader_method_inline; |
262 | } |
263 | |
264 | sub generate_writer_method_inline { |
1b948345 |
265 | Class::MOP::Deprecated::deprecated( |
30229767 |
266 | 'The generate_writer_method_inline method has been made private.' |
267 | . " The public version is deprecated and will be removed in a future release.\n" |
268 | ); |
269 | shift->_generate_writer_method_inline; |
270 | } |
271 | |
272 | sub generate_predicate_method_inline { |
1b948345 |
273 | Class::MOP::Deprecated::deprecated( |
30229767 |
274 | 'The generate_predicate_method_inline method has been made private.' |
275 | . " The public version is deprecated and will be removed in a future release.\n" |
276 | ); |
277 | shift->_generate_predicate_method_inline; |
278 | } |
279 | |
280 | sub generate_clearer_method_inline { |
1b948345 |
281 | Class::MOP::Deprecated::deprecated( |
30229767 |
282 | 'The generate_clearer_method_inline method has been made private.' |
283 | . " The public version is deprecated and will be removed in a future release.\n" |
284 | ); |
285 | shift->_generate_clearer_method_inline; |
286 | } |
287 | |
288 | package |
289 | Class::MOP::Method::Constructor; |
290 | |
291 | sub meta_instance { |
1b948345 |
292 | Class::MOP::Deprecated::deprecated( |
30229767 |
293 | 'The meta_instance method has been made private.' |
294 | . " The public version is deprecated and will be removed in a future release.\n" |
295 | ); |
296 | shift->_meta_instance; |
297 | } |
298 | |
299 | sub attributes { |
1b948345 |
300 | Class::MOP::Deprecated::deprecated( |
30229767 |
301 | 'The attributes method has been made private.' |
302 | . " The public version is deprecated and will be removed in a future release.\n" |
303 | ); |
304 | |
305 | return shift->_attributes; |
306 | } |
307 | |
308 | sub initialize_body { |
1b948345 |
309 | Class::MOP::Deprecated::deprecated( |
30229767 |
310 | 'The initialize_body method has been made private.' |
311 | . " The public version is deprecated and will be removed in a future release.\n" |
312 | ); |
313 | shift->_initialize_body; |
314 | } |
315 | |
316 | sub generate_constructor_method { |
1b948345 |
317 | Class::MOP::Deprecated::deprecated( |
30229767 |
318 | 'The generate_constructor_method method has been made private.' |
319 | . " The public version is deprecated and will be removed in a future release.\n" |
320 | ); |
321 | shift->_generate_constructor_method; |
322 | } |
323 | |
324 | sub generate_constructor_method_inline { |
1b948345 |
325 | Class::MOP::Deprecated::deprecated( |
30229767 |
326 | 'The generate_constructor_method_inline method has been made private.' |
327 | . " The public version is deprecated and will be removed in a future release.\n" |
328 | ); |
329 | shift->_generate_constructor_method_inline; |
330 | } |
331 | |
332 | 1; |
333 | |
334 | __END__ |
335 | |
336 | =pod |
337 | |
338 | =head1 NAME |
339 | |
0fa37bfd |
340 | Class::MOP::Deprecated - Manages deprecation warnings for Class::MOP |
30229767 |
341 | |
342 | =head1 DESCRIPTION |
343 | |
1b948345 |
344 | use Class::MOP::Deprecated -api_version => $version; |
30229767 |
345 | |
346 | =head1 FUNCTIONS |
347 | |
0fa37bfd |
348 | This module manages deprecation warnings for features that have been |
349 | deprecated in Class::MOP. |
30229767 |
350 | |
1b948345 |
351 | If you specify C<< -api_version => $version >>, you can use deprecated features |
b409c969 |
352 | without warnings. Note that this special treatment is limited to the package |
353 | that loads C<Class::MOP::Deprecated>. |
30229767 |
354 | |
355 | =head1 AUTHORS |
356 | |
357 | Goro Fuji E<lt>gfuji@cpan.orgE<gt> |
358 | |
359 | =head1 COPYRIGHT AND LICENSE |
360 | |
3e2c8600 |
361 | Copyright 2006-2010 by Infinity Interactive, Inc. |
30229767 |
362 | |
363 | L<http://www.iinteractive.com> |
364 | |
365 | This library is free software; you can redistribute it and/or modify |
366 | it under the same terms as Perl itself. |
367 | |
368 | =cut |