root/vendor/file-column-0.3.1/doc/classes/FileColumn/ClassMethods.src/M000003.html

Revision 2, 10.0 kB (checked in by falcon, 17 years ago)

added plugins

  • Property svn:executable set to *
Line 
1<?xml version="1.0" encoding="iso-8859-1"?>
2<!DOCTYPE html
3     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6<html>
7<head>
8  <title>file_column (FileColumn::ClassMethods)</title>
9  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11</head>
12<body class="standalone-code">
13  <pre><span class="ruby-comment cmt"># File lib/file_column.rb, line 546</span>
14    <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">file_column</span>(<span class="ruby-identifier">attr</span>, <span class="ruby-identifier">options</span>={})
15      <span class="ruby-identifier">options</span> = <span class="ruby-constant">DEFAULT_OPTIONS</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>
16     
17      <span class="ruby-identifier">my_options</span> = <span class="ruby-constant">FileColumn</span><span class="ruby-operator">::</span><span class="ruby-identifier">init_options</span>(<span class="ruby-identifier">options</span>,
18                                            <span class="ruby-constant">Inflector</span>.<span class="ruby-identifier">underscore</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>).<span class="ruby-identifier">to_s</span>,
19                                            <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">to_s</span>)
20     
21      <span class="ruby-identifier">state_attr</span> = <span class="ruby-node">&quot;@#{attr}_state&quot;</span>.<span class="ruby-identifier">to_sym</span>
22      <span class="ruby-identifier">state_method</span> = <span class="ruby-node">&quot;#{attr}_state&quot;</span>.<span class="ruby-identifier">to_sym</span>
23     
24      <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">state_method</span> <span class="ruby-keyword kw">do</span>
25        <span class="ruby-identifier">result</span> = <span class="ruby-identifier">instance_variable_get</span> <span class="ruby-identifier">state_attr</span>
26        <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">nil?</span>
27          <span class="ruby-identifier">result</span> = <span class="ruby-constant">FileColumn</span><span class="ruby-operator">::</span><span class="ruby-identifier">create_state</span>(<span class="ruby-identifier">my_options</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">attr</span>.<span class="ruby-identifier">to_s</span>)
28          <span class="ruby-identifier">instance_variable_set</span> <span class="ruby-identifier">state_attr</span>, <span class="ruby-identifier">result</span>
29        <span class="ruby-keyword kw">end</span>
30        <span class="ruby-identifier">result</span>
31      <span class="ruby-keyword kw">end</span>
32     
33      <span class="ruby-identifier">private</span> <span class="ruby-identifier">state_method</span>
34     
35      <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">attr</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
36        <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">absolute_path</span> <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
37      <span class="ruby-keyword kw">end</span>
38     
39      <span class="ruby-identifier">define_method</span> <span class="ruby-node">&quot;#{attr}_relative_path&quot;</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
40        <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">relative_path</span> <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
41      <span class="ruby-keyword kw">end</span>
42
43      <span class="ruby-identifier">define_method</span> <span class="ruby-node">&quot;#{attr}_dir&quot;</span> <span class="ruby-keyword kw">do</span>
44        <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">absolute_dir</span>
45      <span class="ruby-keyword kw">end</span>
46
47      <span class="ruby-identifier">define_method</span> <span class="ruby-node">&quot;#{attr}_relative_dir&quot;</span> <span class="ruby-keyword kw">do</span>
48        <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">relative_dir</span>
49      <span class="ruby-keyword kw">end</span>
50
51      <span class="ruby-identifier">define_method</span> <span class="ruby-node">&quot;#{attr}=&quot;</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
52        <span class="ruby-identifier">instance_variable_set</span> <span class="ruby-identifier">state_attr</span>, <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">assign</span>(<span class="ruby-identifier">file</span>)
53        <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">my_options</span>[<span class="ruby-identifier">:after_assign</span>]
54          <span class="ruby-identifier">my_options</span>[<span class="ruby-identifier">:after_assign</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sym</span><span class="ruby-operator">|</span>
55            <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span> <span class="ruby-identifier">sym</span>
56          <span class="ruby-keyword kw">end</span>
57        <span class="ruby-keyword kw">end</span>
58      <span class="ruby-keyword kw">end</span>
59     
60      <span class="ruby-identifier">define_method</span> <span class="ruby-node">&quot;#{attr}_temp&quot;</span> <span class="ruby-keyword kw">do</span>
61        <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">temp_path</span>
62      <span class="ruby-keyword kw">end</span>
63     
64      <span class="ruby-identifier">define_method</span> <span class="ruby-node">&quot;#{attr}_temp=&quot;</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">temp_path</span><span class="ruby-operator">|</span>
65        <span class="ruby-identifier">instance_variable_set</span> <span class="ruby-identifier">state_attr</span>, <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">assign_temp</span>(<span class="ruby-identifier">temp_path</span>)
66      <span class="ruby-keyword kw">end</span>
67     
68      <span class="ruby-identifier">after_save_method</span> = <span class="ruby-node">&quot;#{attr}_after_save&quot;</span>.<span class="ruby-identifier">to_sym</span>
69     
70      <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">after_save_method</span> <span class="ruby-keyword kw">do</span>
71        <span class="ruby-identifier">instance_variable_set</span> <span class="ruby-identifier">state_attr</span>, <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">after_save</span>
72      <span class="ruby-keyword kw">end</span>
73     
74      <span class="ruby-identifier">after_save</span> <span class="ruby-identifier">after_save_method</span>
75     
76      <span class="ruby-identifier">after_destroy_method</span> = <span class="ruby-node">&quot;#{attr}_after_destroy&quot;</span>.<span class="ruby-identifier">to_sym</span>
77     
78      <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">after_destroy_method</span> <span class="ruby-keyword kw">do</span>
79        <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">after_destroy</span>
80      <span class="ruby-keyword kw">end</span>
81      <span class="ruby-identifier">after_destroy</span> <span class="ruby-identifier">after_destroy_method</span>
82     
83      <span class="ruby-identifier">define_method</span> <span class="ruby-node">&quot;#{attr}_just_uploaded?&quot;</span> <span class="ruby-keyword kw">do</span>
84        <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">just_uploaded?</span>
85      <span class="ruby-keyword kw">end</span>
86     
87      <span class="ruby-identifier">define_method</span> <span class="ruby-node">&quot;#{attr}_options&quot;</span> <span class="ruby-keyword kw">do</span>
88        <span class="ruby-identifier">send</span>(<span class="ruby-identifier">state_method</span>).<span class="ruby-identifier">options</span>
89      <span class="ruby-keyword kw">end</span>
90     
91      <span class="ruby-identifier">private</span> <span class="ruby-identifier">after_save_method</span>, <span class="ruby-identifier">after_destroy_method</span>
92
93      <span class="ruby-constant">FileColumn</span><span class="ruby-operator">::</span><span class="ruby-constant">Magick</span><span class="ruby-operator">::</span><span class="ruby-identifier">file_column</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">attr</span>, <span class="ruby-identifier">my_options</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:magick</span>]
94    <span class="ruby-keyword kw">end</span></pre>
95</body>
96</html>
Note: See TracBrowser for help on using the browser.