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