Commit | Line | Data |
30229767 |
1 | package Class::MOP::Deprecated; |
2 | |
3 | use strict; |
4 | use warnings; |
b409c969 |
5 | |
81b5e774 |
6 | our $VERSION = '1.09'; |
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 | |
89 | my $map = $self->_full_method_map; |
90 | |
91 | $map->{$_} = $self->get_method($_) |
92 | for grep { !blessed( $map->{$_} ) } keys %{$map}; |
93 | |
94 | return $map; |
95 | } |
96 | |
30229767 |
97 | package |
98 | Class::MOP::Module; |
99 | |
100 | package |
101 | Class::MOP::Class; |
102 | |
103 | sub construct_class_instance { |
1b948345 |
104 | Class::MOP::Deprecated::deprecated( |
30229767 |
105 | 'The construct_class_instance method has been made private.' |
106 | . " The public version is deprecated and will be removed in a future release.\n" |
107 | ); |
108 | shift->_construct_class_instance(@_); |
109 | } |
110 | |
111 | sub check_metaclass_compatibility { |
1b948345 |
112 | Class::MOP::Deprecated::deprecated( |
30229767 |
113 | 'The check_metaclass_compatibility method has been made private.' |
114 | . " The public version is deprecated and will be removed in a future release.\n" |
115 | ); |
116 | shift->_check_metaclass_compatibility(@_); |
117 | } |
118 | |
119 | sub construct_instance { |
1b948345 |
120 | Class::MOP::Deprecated::deprecated( |
30229767 |
121 | 'The construct_instance method has been made private.' |
122 | . " The public version is deprecated and will be removed in a future release.\n" |
123 | ); |
124 | shift->_construct_instance(@_); |
125 | } |
126 | |
127 | sub create_meta_instance { |
1b948345 |
128 | Class::MOP::Deprecated::deprecated( |
30229767 |
129 | 'The create_meta_instance method has been made private.' |
130 | . " The public version is deprecated and will be removed in a future release.\n" |
131 | ); |
132 | shift->_create_meta_instance(@_); |
133 | } |
134 | |
135 | sub clone_instance { |
1b948345 |
136 | Class::MOP::Deprecated::deprecated( |
30229767 |
137 | 'The clone_instance method has been made private.' |
138 | . " The public version is deprecated and will be removed in a future release.\n" |
139 | ); |
140 | shift->_clone_instance(@_); |
141 | } |
142 | |
143 | sub alias_method { |
1b948345 |
144 | Class::MOP::Deprecated::deprecated( |
30229767 |
145 | "The alias_method method is deprecated. Use add_method instead.\n"); |
146 | |
147 | shift->add_method(@_); |
148 | } |
149 | |
150 | sub compute_all_applicable_methods { |
1b948345 |
151 | Class::MOP::Deprecated::deprecated( |
30229767 |
152 | 'The compute_all_applicable_methods method is deprecated.' |
153 | . " Use get_all_methods instead.\n" ); |
154 | |
155 | return map { |
156 | { |
157 | name => $_->name, |
158 | class => $_->package_name, |
159 | code => $_, # sigh, overloading |
160 | }, |
161 | } shift->get_all_methods(@_); |
162 | } |
163 | |
164 | sub compute_all_applicable_attributes { |
1b948345 |
165 | Class::MOP::Deprecated::deprecated( |
30229767 |
166 | 'The compute_all_applicable_attributes method has been deprecated.' |
167 | . " Use get_all_attributes instead.\n" ); |
168 | |
169 | shift->get_all_attributes(@_); |
170 | } |
171 | |
b1aaf0dc |
172 | sub get_attribute_map { |
1b948345 |
173 | Class::MOP::Deprecated::deprecated( |
b1aaf0dc |
174 | "The get_attribute_map method has been deprecated.\n"); |
175 | |
176 | shift->_attribute_map(@_); |
177 | } |
178 | |
30229767 |
179 | package |
180 | Class::MOP::Instance; |
181 | |
182 | sub bless_instance_structure { |
1b948345 |
183 | Class::MOP::Deprecated::deprecated( |
30229767 |
184 | 'The bless_instance_structure method is deprecated.' |
185 | . " It will be removed in a future release.\n" ); |
186 | |
187 | my ( $self, $instance_structure ) = @_; |
188 | bless $instance_structure, $self->_class_name; |
189 | } |
190 | |
191 | package |
192 | Class::MOP::Attribute; |
193 | |
194 | sub process_accessors { |
1b948345 |
195 | Class::MOP::Deprecated::deprecated( |
30229767 |
196 | 'The process_accessors method has been made private.' |
197 | . " The public version is deprecated and will be removed in a future release.\n" |
198 | ); |
199 | shift->_process_accessors(@_); |
200 | } |
201 | |
202 | package |
203 | Class::MOP::Method::Accessor; |
204 | |
205 | sub initialize_body { |
1b948345 |
206 | Class::MOP::Deprecated::deprecated( |
30229767 |
207 | 'The initialize_body method has been made private.' |
208 | . " The public version is deprecated and will be removed in a future release.\n" |
209 | ); |
210 | shift->_initialize_body; |
211 | } |
212 | |
213 | sub generate_accessor_method { |
1b948345 |
214 | Class::MOP::Deprecated::deprecated( |
30229767 |
215 | 'The generate_accessor_method method has been made private.' |
216 | . " The public version is deprecated and will be removed in a future release.\n" |
217 | ); |
218 | shift->_generate_accessor_method; |
219 | } |
220 | |
221 | sub generate_reader_method { |
1b948345 |
222 | Class::MOP::Deprecated::deprecated( |
30229767 |
223 | 'The generate_reader_method method has been made private.' |
224 | . " The public version is deprecated and will be removed in a future release.\n" |
225 | ); |
226 | shift->_generate_reader_method; |
227 | } |
228 | |
229 | sub generate_writer_method { |
1b948345 |
230 | Class::MOP::Deprecated::deprecated( |
30229767 |
231 | 'The generate_writer_method method has been made private.' |
232 | . " The public version is deprecated and will be removed in a future release.\n" |
233 | ); |
234 | shift->_generate_writer_method; |
235 | } |
236 | |
237 | sub generate_predicate_method { |
1b948345 |
238 | Class::MOP::Deprecated::deprecated( |
30229767 |
239 | 'The generate_predicate_method method has been made private.' |
240 | . " The public version is deprecated and will be removed in a future release.\n" |
241 | ); |
242 | shift->_generate_predicate_method; |
243 | } |
244 | |
245 | sub generate_clearer_method { |
1b948345 |
246 | Class::MOP::Deprecated::deprecated( |
30229767 |
247 | 'The generate_clearer_method method has been made private.' |
248 | . " The public version is deprecated and will be removed in a future release.\n" |
249 | ); |
250 | shift->_generate_clearer_method; |
251 | } |
252 | |
253 | sub generate_accessor_method_inline { |
1b948345 |
254 | Class::MOP::Deprecated::deprecated( |
30229767 |
255 | 'The generate_accessor_method_inline method has been made private.' |
256 | . " The public version is deprecated and will be removed in a future release.\n" |
257 | ); |
258 | shift->_generate_accessor_method_inline; |
259 | } |
260 | |
261 | sub generate_reader_method_inline { |
1b948345 |
262 | Class::MOP::Deprecated::deprecated( |
30229767 |
263 | 'The generate_reader_method_inline method has been made private.' |
264 | . " The public version is deprecated and will be removed in a future release.\n" |
265 | ); |
266 | shift->_generate_reader_method_inline; |
267 | } |
268 | |
269 | sub generate_writer_method_inline { |
1b948345 |
270 | Class::MOP::Deprecated::deprecated( |
30229767 |
271 | 'The generate_writer_method_inline method has been made private.' |
272 | . " The public version is deprecated and will be removed in a future release.\n" |
273 | ); |
274 | shift->_generate_writer_method_inline; |
275 | } |
276 | |
277 | sub generate_predicate_method_inline { |
1b948345 |
278 | Class::MOP::Deprecated::deprecated( |
30229767 |
279 | 'The generate_predicate_method_inline method has been made private.' |
280 | . " The public version is deprecated and will be removed in a future release.\n" |
281 | ); |
282 | shift->_generate_predicate_method_inline; |
283 | } |
284 | |
285 | sub generate_clearer_method_inline { |
1b948345 |
286 | Class::MOP::Deprecated::deprecated( |
30229767 |
287 | 'The generate_clearer_method_inline method has been made private.' |
288 | . " The public version is deprecated and will be removed in a future release.\n" |
289 | ); |
290 | shift->_generate_clearer_method_inline; |
291 | } |
292 | |
293 | package |
294 | Class::MOP::Method::Constructor; |
295 | |
296 | sub meta_instance { |
1b948345 |
297 | Class::MOP::Deprecated::deprecated( |
30229767 |
298 | 'The meta_instance method has been made private.' |
299 | . " The public version is deprecated and will be removed in a future release.\n" |
300 | ); |
301 | shift->_meta_instance; |
302 | } |
303 | |
304 | sub attributes { |
1b948345 |
305 | Class::MOP::Deprecated::deprecated( |
30229767 |
306 | 'The attributes method has been made private.' |
307 | . " The public version is deprecated and will be removed in a future release.\n" |
308 | ); |
309 | |
310 | return shift->_attributes; |
311 | } |
312 | |
313 | sub initialize_body { |
1b948345 |
314 | Class::MOP::Deprecated::deprecated( |
30229767 |
315 | 'The initialize_body method has been made private.' |
316 | . " The public version is deprecated and will be removed in a future release.\n" |
317 | ); |
318 | shift->_initialize_body; |
319 | } |
320 | |
321 | sub generate_constructor_method { |
1b948345 |
322 | Class::MOP::Deprecated::deprecated( |
30229767 |
323 | 'The generate_constructor_method method has been made private.' |
324 | . " The public version is deprecated and will be removed in a future release.\n" |
325 | ); |
326 | shift->_generate_constructor_method; |
327 | } |
328 | |
329 | sub generate_constructor_method_inline { |
1b948345 |
330 | Class::MOP::Deprecated::deprecated( |
30229767 |
331 | 'The generate_constructor_method_inline method has been made private.' |
332 | . " The public version is deprecated and will be removed in a future release.\n" |
333 | ); |
334 | shift->_generate_constructor_method_inline; |
335 | } |
336 | |
337 | 1; |
338 | |
339 | __END__ |
340 | |
341 | =pod |
342 | |
343 | =head1 NAME |
344 | |
0fa37bfd |
345 | Class::MOP::Deprecated - Manages deprecation warnings for Class::MOP |
30229767 |
346 | |
347 | =head1 DESCRIPTION |
348 | |
1b948345 |
349 | use Class::MOP::Deprecated -api_version => $version; |
30229767 |
350 | |
351 | =head1 FUNCTIONS |
352 | |
0fa37bfd |
353 | This module manages deprecation warnings for features that have been |
354 | deprecated in Class::MOP. |
30229767 |
355 | |
1b948345 |
356 | If you specify C<< -api_version => $version >>, you can use deprecated features |
b409c969 |
357 | without warnings. Note that this special treatment is limited to the package |
358 | that loads C<Class::MOP::Deprecated>. |
30229767 |
359 | |
360 | =head1 AUTHORS |
361 | |
362 | Goro Fuji E<lt>gfuji@cpan.orgE<gt> |
363 | |
364 | =head1 COPYRIGHT AND LICENSE |
365 | |
3e2c8600 |
366 | Copyright 2006-2010 by Infinity Interactive, Inc. |
30229767 |
367 | |
368 | L<http://www.iinteractive.com> |
369 | |
370 | This library is free software; you can redistribute it and/or modify |
371 | it under the same terms as Perl itself. |
372 | |
373 | =cut |