<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>rdoc/classes/Class.html</filename>
    </added>
    <added>
      <filename>rdoc/classes/Fleximage/Helper.html</filename>
    </added>
    <added>
      <filename>rdoc/files/lib/dsl_accessor_rb.html</filename>
    </added>
    <added>
      <filename>rdoc/files/lib/fleximage/helper_rb.html</filename>
    </added>
    <added>
      <filename>rdoc/files/lib/fleximage/legacy_view_rb.html</filename>
    </added>
    <added>
      <filename>test/fixtures/100x1.jpg</filename>
    </added>
    <added>
      <filename>test/fixtures/100x100.jpg</filename>
    </added>
    <added>
      <filename>test/fixtures/1x1.jpg</filename>
    </added>
    <added>
      <filename>test/fixtures/1x100.jpg</filename>
    </added>
    <added>
      <filename>test/rails_root/app/locales/de.yml</filename>
    </added>
    <added>
      <filename>test/rails_root/app/locales/en.yml</filename>
    </added>
    <added>
      <filename>test/rails_root/app/models/photo_custom_error.rb</filename>
    </added>
    <added>
      <filename>test/rails_root/config/initializers/load_translations.rb</filename>
    </added>
    <added>
      <filename>test/rails_root/tmp/fleximage/1x1.jpg</filename>
    </added>
    <added>
      <filename>test/rails_root/tmp/fleximage/1x100.jpg</filename>
    </added>
    <added>
      <filename>test/unit/i18n_messages_test.rb</filename>
    </added>
    <added>
      <filename>test/unit/minimum_image_size_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,56 @@
-= Fleximage
+= I18n
+
+== Overview
+
+Uses the Rails I18n to translate error messages. 
+While they still can be set by using the 'missing_image_message' and 'invalid_image_message' accessors, it's better to configure them in your locale:
+
+  en:
+    activerecord:
+      errors:
+        messages:
+          missing_image: is really required
+          invalid_image: seems to be broken
+          image_too_small: &quot;seems to be too small, it needs to be {{minimum}} pixels&quot;
+
+They can also be set on a model level:
+
+  en:
+    activerecord:
+      errors:
+        models:
+          photo:
+            missing_image: needs to be attached
+            invalid_image: is broken
+            image_too_small: &quot;is too small (should be &gt;= {{minimum}})&quot;
+
+If no message is set in your locale, the default one of the original plugin will be shown.
+
+== Model class accessor minimum_image_size
+
+If this option is set, the model validates that the image is bigger than or equal to a minimum size.
+
+  minimum_image_size [800, 600]
+  
+You can set one integer to 1 if you just want one dimension be checked. (E.g. [800, 1] for images wider than 799 px)
+
+The corresponding error message can be set either via
+
+  image_too_small_message &quot;too small image (min {{minimum}})&quot;
+  
+or as shown above via I18n.
+
+== Installation
+
+Using git:
+
+  git submodule add git://github.com/moser/fleximage_i18n.git vendor/plugins/fleximage_i18n
+
+or using:
+
+  ./script/plugin install git://github.com/moser/fleximage_i18n.git
+
+= Fleximage (original Doc)
 
 == Overview
 </diff>
      <filename>README.rdoc</filename>
    </modified>
    <modified>
      <diff>@@ -117,11 +117,64 @@ module Fleximage
         # Require a valid image.  Defaults to true.  Set to false if its ok to have no image for
         dsl_accessor :require_image, :default =&gt; true
         
+        
+        def self.translate_error_message(name, fallback, options = {})
+          translation = I18n.translate &quot;activerecord.errors.models.#{self.model_name.underscore}.#{name}&quot;, options
+          if translation.match /translation missing:/
+            I18n.translate &quot;activerecord.errors.messages.#{name}&quot;, options.merge({ :default =&gt; fallback })
+          end
+        end
+        
         # Missing image message
-        dsl_accessor :missing_image_message, :default =&gt; 'is required'
+        #dsl_accessor :missing_image_message, :default =&gt; 'is required'
+        def self.missing_image_message(str = nil)
+          if str.nil?
+            if @missing_image_message
+              @missing_image_message
+            else
+              translate_error_message(&quot;missing_image&quot;, &quot;is required&quot;)
+            end
+            
+          else
+            @missing_image_message = str
+          end
+        end
+        
         
         # Invalid image message
-        dsl_accessor :invalid_image_message, :default =&gt; 'was not a readable image'
+        #dsl_accessor :invalid_image_message, :default =&gt; 'was not a readable image'
+        def self.invalid_image_message(str = nil)
+          if str.nil?
+            if @invalid_image_message
+              @invalid_image_message
+            else
+              translate_error_message(&quot;invalid_image&quot;, &quot;was not a readable image&quot;)
+            end
+          else
+            @invalid_image_message = str
+          end
+        end
+        
+        # Image too small message
+        # Should include {{minimum}}
+        def self.image_too_small_message(str = nil)
+          fb = &quot;is too small (Minimum: {{minimum}})&quot;
+          if str.nil?
+            if @image_too_small_message
+              @image_too_small_message.gsub(&quot;{{minimum}}&quot;, minimum_image_size_to_s)
+            else
+              translate_error_message(&quot;image_too_small&quot;, fb.gsub(&quot;{{minimum}}&quot;, minimum_image_size_to_s), :minimum =&gt; minimum_image_size_to_s)
+            end
+          else
+            @image_too_small_message = str
+          end
+        end
+        
+        def self.minimum_image_size_to_s
+          if minimum_image_size.is_a?(Array) &amp;&amp; minimum_image_size.size == 2
+            &quot;#{minimum_image_size[0]}x#{minimum_image_size[1]}&quot;
+          end
+        end
         
         # Sets the quality of rendered JPGs
         dsl_accessor :output_image_jpg_quality, :default =&gt; 85
@@ -137,6 +190,11 @@ module Fleximage
         # the &quot;preprocess_image { |image| ... }&quot; class method.
         dsl_accessor :preprocess_image_operation
         
+        # Set a minimum size ([x, y] e.g. [800, 600])
+        # Set [0, 600] to just enforce y size or
+        # [800, 0] to just validate x size.
+        dsl_accessor :minimum_image_size
+        
         # Image related save and destroy callbacks
         after_destroy :delete_image_file
         before_save   :pre_save
@@ -414,6 +472,13 @@ module Fleximage
           errors.add field_name, self.class.invalid_image_message
         elsif self.class.require_image &amp;&amp; !has_image?
           errors.add field_name, self.class.missing_image_message
+        elsif self.class.minimum_image_size.is_a?(Array) &amp;&amp; 
+              self.class.minimum_image_size.size == 2 &amp;&amp; 
+              !@uploaded_image.nil?
+          if @uploaded_image.columns &lt; self.class.minimum_image_size[0] || 
+             @uploaded_image.rows &lt; self.class.minimum_image_size[1]
+            errors.add field_name, self.class.image_too_small_message
+          end
         end
       end
       </diff>
      <filename>lib/fleximage/model.rb</filename>
    </modified>
    <modified>
      <diff>@@ -55,30 +55,50 @@
         &lt;tr class=&quot;top-aligned-row&quot;&gt;
             &lt;td&gt;&lt;strong&gt;In:&lt;/strong&gt;&lt;/td&gt;
             &lt;td&gt;
-                &lt;a href=&quot;../files/lib/fleximage/image_proxy_rb.html&quot;&gt;
-                lib/fleximage/image_proxy.rb
-                &lt;/a&gt;
-        &lt;br /&gt;
                 &lt;a href=&quot;../files/lib/fleximage/model_rb.html&quot;&gt;
                 lib/fleximage/model.rb
                 &lt;/a&gt;
         &lt;br /&gt;
-                &lt;a href=&quot;../files/lib/fleximage/operator/base_rb.html&quot;&gt;
-                lib/fleximage/operator/base.rb
+                &lt;a href=&quot;../files/lib/fleximage/view_rb.html&quot;&gt;
+                lib/fleximage/view.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
+                &lt;a href=&quot;../files/lib/fleximage/helper_rb.html&quot;&gt;
+                lib/fleximage/helper.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
+                &lt;a href=&quot;../files/lib/fleximage/image_proxy_rb.html&quot;&gt;
+                lib/fleximage/image_proxy.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
+                &lt;a href=&quot;../files/lib/fleximage/legacy_view_rb.html&quot;&gt;
+                lib/fleximage/legacy_view.rb
                 &lt;/a&gt;
         &lt;br /&gt;
                 &lt;a href=&quot;../files/lib/fleximage/operator/border_rb.html&quot;&gt;
                 lib/fleximage/operator/border.rb
                 &lt;/a&gt;
         &lt;br /&gt;
+                &lt;a href=&quot;../files/lib/fleximage/operator/text_rb.html&quot;&gt;
+                lib/fleximage/operator/text.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
                 &lt;a href=&quot;../files/lib/fleximage/operator/crop_rb.html&quot;&gt;
                 lib/fleximage/operator/crop.rb
                 &lt;/a&gt;
         &lt;br /&gt;
+                &lt;a href=&quot;../files/lib/fleximage/operator/unsharp_mask_rb.html&quot;&gt;
+                lib/fleximage/operator/unsharp_mask.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
                 &lt;a href=&quot;../files/lib/fleximage/operator/image_overlay_rb.html&quot;&gt;
                 lib/fleximage/operator/image_overlay.rb
                 &lt;/a&gt;
         &lt;br /&gt;
+                &lt;a href=&quot;../files/lib/fleximage/operator/base_rb.html&quot;&gt;
+                lib/fleximage/operator/base.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
                 &lt;a href=&quot;../files/lib/fleximage/operator/resize_rb.html&quot;&gt;
                 lib/fleximage/operator/resize.rb
                 &lt;/a&gt;
@@ -87,22 +107,10 @@
                 lib/fleximage/operator/shadow.rb
                 &lt;/a&gt;
         &lt;br /&gt;
-                &lt;a href=&quot;../files/lib/fleximage/operator/text_rb.html&quot;&gt;
-                lib/fleximage/operator/text.rb
-                &lt;/a&gt;
-        &lt;br /&gt;
                 &lt;a href=&quot;../files/lib/fleximage/operator/trim_rb.html&quot;&gt;
                 lib/fleximage/operator/trim.rb
                 &lt;/a&gt;
         &lt;br /&gt;
-                &lt;a href=&quot;../files/lib/fleximage/operator/unsharp_mask_rb.html&quot;&gt;
-                lib/fleximage/operator/unsharp_mask.rb
-                &lt;/a&gt;
-        &lt;br /&gt;
-                &lt;a href=&quot;../files/lib/fleximage/view_rb.html&quot;&gt;
-                lib/fleximage/view.rb
-                &lt;/a&gt;
-        &lt;br /&gt;
             &lt;/td&gt;
         &lt;/tr&gt;
 
@@ -131,7 +139,8 @@
     &lt;div id=&quot;class-list&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Classes and Modules&lt;/h3&gt;
 
-      Module &lt;a href=&quot;Fleximage/Model.html&quot; class=&quot;link&quot;&gt;Fleximage::Model&lt;/a&gt;&lt;br /&gt;
+      Module &lt;a href=&quot;Fleximage/Helper.html&quot; class=&quot;link&quot;&gt;Fleximage::Helper&lt;/a&gt;&lt;br /&gt;
+Module &lt;a href=&quot;Fleximage/Model.html&quot; class=&quot;link&quot;&gt;Fleximage::Model&lt;/a&gt;&lt;br /&gt;
 Module &lt;a href=&quot;Fleximage/Operator.html&quot; class=&quot;link&quot;&gt;Fleximage::Operator&lt;/a&gt;&lt;br /&gt;
 Class &lt;a href=&quot;Fleximage/ImageProxy.html&quot; class=&quot;link&quot;&gt;Fleximage::ImageProxy&lt;/a&gt;&lt;br /&gt;
 </diff>
      <filename>rdoc/classes/Fleximage.html</filename>
    </modified>
    <modified>
      <diff>@@ -104,8 +104,8 @@ href=&quot;ImageProxy.html&quot;&gt;ImageProxy&lt;/a&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000027&quot;&gt;method_missing&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000026&quot;&gt;new&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000039&quot;&gt;method_missing&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000038&quot;&gt;new&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -143,23 +143,22 @@ The image to be manipulated by operators.
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Class methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000026&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000026&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000038&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000038&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000026&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000038&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(image, model_obj)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;
-Create a &lt;a href=&quot;ImageProxy.html#M000026&quot;&gt;new&lt;/a&gt; image operator proxy.
-Just provide the name of the image
+Create a &lt;a href=&quot;ImageProxy.html#M000038&quot;&gt;new&lt;/a&gt; image operator proxy.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000026-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000026-source&quot;&gt;
+            onclick=&quot;toggleCode('M000038-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000038-source&quot;&gt;
 &lt;pre&gt;
     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/image_proxy.rb, line 21&lt;/span&gt;
 21:     &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;initialize&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;image&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;model_obj&lt;/span&gt;)
@@ -173,11 +172,11 @@ Just provide the name of the image
 
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000027&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000027&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000039&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000039&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000027&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000039&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;method_missing&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(method_name, *args)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -186,28 +185,31 @@ Just provide the name of the image
           &lt;p&gt;
 A call to an unknown method will look for an &lt;a
 href=&quot;Operator.html&quot;&gt;Operator&lt;/a&gt; by that method&amp;#8216;s name. If it finds
-one, it will execute that operator, otherwise it will simply call super for
-the default method missing behavior.
+one, it will execute that operator.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000027-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000027-source&quot;&gt;
+            onclick=&quot;toggleCode('M000039-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000039-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/image_proxy.rb, line 29&lt;/span&gt;
-29:     &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;method_missing&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;method_name&lt;/span&gt;, &lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt;)
-30:       &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Find the operator class&lt;/span&gt;
-31:       &lt;span class=&quot;ruby-identifier&quot;&gt;operator_class&lt;/span&gt; = &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;Fleximage::Operator::#{method_name.to_s.camelcase}&amp;quot;&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;constantize&lt;/span&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/image_proxy.rb, line 28&lt;/span&gt;
+28:     &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;method_missing&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;method_name&lt;/span&gt;, &lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt;)
+29:       &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Find the operator class&lt;/span&gt;
+30:       &lt;span class=&quot;ruby-identifier&quot;&gt;class_name&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;method_name&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_s&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;camelcase&lt;/span&gt;
+31:       &lt;span class=&quot;ruby-identifier&quot;&gt;operator_class&lt;/span&gt; = &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;Fleximage::Operator::#{class_name}&amp;quot;&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;constantize&lt;/span&gt;
 32:       
-33:       &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Execute the operator&lt;/span&gt;
-34:       &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;operator_class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;new&lt;/span&gt;(&lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;, &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;, &lt;span class=&quot;ruby-ivar&quot;&gt;@model&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;execute&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt;)
-35:     
-36:     &lt;span class=&quot;ruby-keyword kw&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;NameError&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;
-37:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_s&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;=~&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;/uninitialized constant Fleximage::Operator::#{method_name.to_s.camelcase}/&lt;/span&gt;
-38:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;OepratorNotFound&lt;/span&gt;, &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;No correspoding operator found for the method \&amp;quot;#{method_name}\&amp;quot;&amp;quot;&lt;/span&gt;
-39:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
-40:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;
-41:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-42:     &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+33:       &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Define a method for this operator so future calls to this operation are faster&lt;/span&gt;
+34:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;module_eval&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;def \#{method_name}(*args)\n@image = execute_operator(\#{operator_class}, *args)\nend\n&amp;quot;&lt;/span&gt;
+35:       
+36:       &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Call the method that was just defined to perform its functionality.&lt;/span&gt;
+37:       &lt;span class=&quot;ruby-identifier&quot;&gt;send&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;method_name&lt;/span&gt;, &lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt;)
+38:     
+39:     &lt;span class=&quot;ruby-keyword kw&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;NameError&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;
+40:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_s&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;=~&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;/uninitialized constant Fleximage::Operator::#{class_name}/&lt;/span&gt;
+41:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;OperatorNotFound&lt;/span&gt;, &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;No operator Fleximage::Operator::#{class_name} found for the method \&amp;quot;#{method_name}\&amp;quot;&amp;quot;&lt;/span&gt;
+42:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+43:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;
+44:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+45:     &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;</diff>
      <filename>rdoc/classes/Fleximage/ImageProxy.html</filename>
    </modified>
    <modified>
      <diff>@@ -76,7 +76,7 @@
       &lt;p&gt;
 Provides class methods for &lt;a href=&quot;../../Fleximage.html&quot;&gt;Fleximage&lt;/a&gt; for
 use in model classes. The only class method is &lt;a
-href=&quot;ClassMethods.html#M000001&quot;&gt;acts_as_fleximage&lt;/a&gt; which integrates &lt;a
+href=&quot;ClassMethods.html#M000002&quot;&gt;acts_as_fleximage&lt;/a&gt; which integrates &lt;a
 href=&quot;../../Fleximage.html&quot;&gt;Fleximage&lt;/a&gt; functionality into a model class.
 &lt;/p&gt;
 &lt;p&gt;
@@ -108,13 +108,15 @@ raise a validation error if no image is uploaded with the record. Setting
 to false allows record to be saved with no images.
 
 &lt;/li&gt;
-&lt;li&gt;&lt;tt&gt;missing_image_message&lt;/tt&gt;: (String, default &amp;quot;is required&amp;quot;)
-Validation message to display when no image was uploaded for a record.
+&lt;li&gt;&lt;tt&gt;&lt;a href=&quot;ClassMethods.html#M000006&quot;&gt;missing_image_message&lt;/a&gt;&lt;/tt&gt;:
+(String, default &amp;quot;is required&amp;quot;) Validation message to display
+when no image was uploaded for a record.
 
 &lt;/li&gt;
-&lt;li&gt;&lt;tt&gt;invalid_image_message&lt;/tt&gt;: (String default &amp;quot;was not a readable
-image&amp;quot;) Validation message when an image is uploaded, but is not an
-image format that can be read by RMagick.
+&lt;li&gt;&lt;tt&gt;&lt;a href=&quot;ClassMethods.html#M000007&quot;&gt;invalid_image_message&lt;/a&gt;&lt;/tt&gt;:
+(String default &amp;quot;was not a readable image&amp;quot;) Validation message
+when an image is uploaded, but is not an image format that can be read by
+RMagick.
 
 &lt;/li&gt;
 &lt;li&gt;&lt;tt&gt;output_image_jpg_quality&lt;/tt&gt;: (Integer, default 85) When rendering
@@ -128,7 +130,15 @@ for this record, the image at this path will be used instead. Useful for a
 placeholder graphic for new content that may not have an image just yet.
 
 &lt;/li&gt;
-&lt;li&gt;&lt;tt&gt;&lt;a href=&quot;ClassMethods.html#M000002&quot;&gt;preprocess_image&lt;/a&gt;&lt;/tt&gt;: (Block,
+&lt;li&gt;&lt;tt&gt;default_image&lt;/tt&gt;: A hash which defines an empty starting image. This
+hash look like: &lt;tt&gt;:size =&amp;gt; &amp;#8216;123x456&amp;#8217;, :color =&amp;gt;
+:transparent&lt;/tt&gt;, where &lt;tt&gt;:size&lt;/tt&gt; defines the dimensions of the
+default image, and &lt;tt&gt;:color&lt;/tt&gt; defines the fill. &lt;tt&gt;:color&lt;/tt&gt; can be
+a named color as a string (&amp;#8216;red&amp;#8217;), :transparent, or a
+Magick::Pixel object.
+
+&lt;/li&gt;
+&lt;li&gt;&lt;tt&gt;&lt;a href=&quot;ClassMethods.html#M000003&quot;&gt;preprocess_image&lt;/a&gt;&lt;/tt&gt;: (Block,
 no default) Call this class method just like you would call
 &lt;tt&gt;operate&lt;/tt&gt; in a view. The image transoformation in the provided block
 will be run on every uploaded image before its saved as the master image.
@@ -146,8 +156,8 @@ Example:
       image_storage_format      :png
       require_image             true
       missing_image_message     'is required'
-      invalid_image_message     'was not a readable image'
-      default_image_path        'public/images/no_photo_yet.png'
+      invalid_image_message     'was not a readable image'     #       default_image_path        'public/images/no_photo_yet.png'
+      default_image             nil
       output_image_jpg_quality  85
 
       preprocess_image do |image|
@@ -168,9 +178,15 @@ Example:
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000001&quot;&gt;acts_as_fleximage&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000003&quot;&gt;db_store?&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000002&quot;&gt;preprocess_image&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000002&quot;&gt;acts_as_fleximage&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000004&quot;&gt;db_store?&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000005&quot;&gt;has_store?&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000010&quot;&gt;image_file_exists&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000008&quot;&gt;image_too_small_message&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000007&quot;&gt;invalid_image_message&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000009&quot;&gt;minimum_image_size_to_s&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000006&quot;&gt;missing_image_message&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000003&quot;&gt;preprocess_image&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -199,11 +215,11 @@ Example:
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Class methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000003&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000003&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000004&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000004&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000003&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000004&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;db_store?&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -213,25 +229,196 @@ Example:
 Internal method to ask this class if it stores image in the DB.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000003-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000003-source&quot;&gt;
+            onclick=&quot;toggleCode('M000004-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000004-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 85&lt;/span&gt;
-85:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt;
-86:             &lt;span class=&quot;ruby-identifier&quot;&gt;columns&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
-87:               &lt;span class=&quot;ruby-identifier&quot;&gt;col&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;'image_file_data'&lt;/span&gt;
-88:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-89:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 88&lt;/span&gt;
+88:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt;
+89:           &lt;span class=&quot;ruby-identifier&quot;&gt;columns&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
+90:             &lt;span class=&quot;ruby-identifier&quot;&gt;col&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;'image_file_data'&lt;/span&gt;
+91:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+92:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000002&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000002&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000005&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000005&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000002&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000005&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;has_store?&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000005-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000005-source&quot;&gt;
+&lt;pre&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 94&lt;/span&gt;
+94:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;has_store?&lt;/span&gt;
+95:           &lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_directory&lt;/span&gt;
+96:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000008&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000008&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000008&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;image_too_small_message&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(str = nil)&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;p&gt;
+Image too small message Should include {{minimum}}
+&lt;/p&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000008-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000008-source&quot;&gt;
+&lt;pre&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 158&lt;/span&gt;
+158:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image_too_small_message&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
+159:           &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; = &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;is too small (Minimum: #{minimum_image_size_to_s})&amp;quot;&lt;/span&gt;
+160:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;nil?&lt;/span&gt;
+161:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@image_too_small_message&lt;/span&gt;
+162:               &lt;span class=&quot;ruby-ivar&quot;&gt;@image_too_small_message&lt;/span&gt;
+163:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+164:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;activerecord.errors.models.#{self.model_name.underscore}.image_too_small&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:minimum&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size_to_s&lt;/span&gt;
+165:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;activerecord.errors.messages.image_too_small&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:minimum&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size_to_s&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;gsub&lt;/span&gt;(&lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;{{minimum}}&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size_to_s&lt;/span&gt;) &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;match&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;/translation missing:/&lt;/span&gt;
+166:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;
+167:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+168:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+169:             &lt;span class=&quot;ruby-ivar&quot;&gt;@image_too_small_message&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;
+170:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+171:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000007&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000007&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000007&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;invalid_image_message&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(str = nil)&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;pre&gt;
+ Invalid image message
+&lt;/pre&gt;
+&lt;p&gt;
+dsl_accessor :&lt;a
+href=&quot;ClassMethods.html#M000007&quot;&gt;invalid_image_message&lt;/a&gt;, :default =&amp;gt;
+&amp;#8216;was not a readable image&amp;#8216;
+&lt;/p&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000007-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000007-source&quot;&gt;
+&lt;pre&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 141&lt;/span&gt;
+141:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;invalid_image_message&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
+142:           &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; = &lt;span class=&quot;ruby-value str&quot;&gt;'was not a readable image'&lt;/span&gt;
+143:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;nil?&lt;/span&gt;
+144:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image_message&lt;/span&gt;
+145:               &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image_message&lt;/span&gt;
+146:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+147:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;activerecord.errors.models.#{self.model_name.underscore}.invalid_image&amp;quot;&lt;/span&gt;
+148:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;activerecord.errors.messages.invalid_image&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;match&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;/translation missing:/&lt;/span&gt;
+149:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;
+150:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+151:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+152:             &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image_message&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;
+153:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+154:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000009&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000009&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000009&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;minimum_image_size_to_s&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000009-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000009-source&quot;&gt;
+&lt;pre&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 173&lt;/span&gt;
+173:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size_to_s&lt;/span&gt;
+174:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;is_a?&lt;/span&gt;(&lt;span class=&quot;ruby-constant&quot;&gt;Array&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;2&lt;/span&gt;
+175:             &lt;span class=&quot;ruby-comment cmt&quot;&gt;#if minimum_image_size[0] &amp;gt; 0 &amp;amp;&amp;amp; minimum_image_size[1] &amp;gt; 0&lt;/span&gt;
+176:             &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{minimum_image_size[0]}x#{minimum_image_size[1]}&amp;quot;&lt;/span&gt;
+177:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+178:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000006&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000006&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000006&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;missing_image_message&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(str = nil)&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;pre&gt;
+ Missing image message
+&lt;/pre&gt;
+&lt;p&gt;
+dsl_accessor :&lt;a
+href=&quot;ClassMethods.html#M000006&quot;&gt;missing_image_message&lt;/a&gt;, :default =&amp;gt;
+&amp;#8216;is required&amp;#8216;
+&lt;/p&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000006-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000006-source&quot;&gt;
+&lt;pre&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 122&lt;/span&gt;
+122:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;missing_image_message&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
+123:           &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; = &lt;span class=&quot;ruby-value str&quot;&gt;'is required'&lt;/span&gt;
+124:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;nil?&lt;/span&gt;
+125:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image_message&lt;/span&gt;
+126:               &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image_message&lt;/span&gt;
+127:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+128:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;activerecord.errors.models.#{self.model_name.underscore}.missing_image&amp;quot;&lt;/span&gt;
+129:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;activerecord.errors.messages.missing_image&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;match&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;/translation missing:/&lt;/span&gt;
+130:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;
+131:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+132:             
+133:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+134:             &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image_message&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;
+135:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+136:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000003&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000003&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000003&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;preprocess_image&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(&amp;amp;block)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -243,13 +430,13 @@ The image transoformation in the provided block will be run on every
 uploaded image before its saved as the master image.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000002-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000002-source&quot;&gt;
+            onclick=&quot;toggleCode('M000003-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000003-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 80&lt;/span&gt;
-80:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;preprocess_image&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
-81:             &lt;span class=&quot;ruby-identifier&quot;&gt;preprocess_image_operation&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
-82:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 83&lt;/span&gt;
+83:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;preprocess_image&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
+84:           &lt;span class=&quot;ruby-identifier&quot;&gt;preprocess_image_operation&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
+85:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
@@ -257,11 +444,11 @@ uploaded image before its saved as the master image.
 
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000001&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000001&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000002&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000002&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000001&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000002&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;acts_as_fleximage&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(options = {}) {|if block_given?| ...}&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -275,77 +462,185 @@ directory you want your images stored on your server. Or configure with a
 nice looking block.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000001-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000001-source&quot;&gt;
+            onclick=&quot;toggleCode('M000002-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000002-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 71&lt;/span&gt;
- 71:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;acts_as_fleximage&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})
- 72:         
- 73:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Insert class methods&lt;/span&gt;
- 74:         &lt;span class=&quot;ruby-identifier&quot;&gt;class_eval&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt;
- 75:           &lt;span class=&quot;ruby-identifier&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;Fleximage&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;Model&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;InstanceMethods&lt;/span&gt;
- 76:           
- 77:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Call this class method just like you would call +operate+ in a view.&lt;/span&gt;
- 78:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# The image transoformation in the provided block will be run on every uploaded image before its saved as the &lt;/span&gt;
- 79:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# master image.&lt;/span&gt;
- 80:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;preprocess_image&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
- 81:             &lt;span class=&quot;ruby-identifier&quot;&gt;preprocess_image_operation&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
- 82:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
- 83:           
- 84:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Internal method to ask this class if it stores image in the DB.&lt;/span&gt;
- 85:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt;
- 86:             &lt;span class=&quot;ruby-identifier&quot;&gt;columns&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
- 87:               &lt;span class=&quot;ruby-identifier&quot;&gt;col&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;'image_file_data'&lt;/span&gt;
- 88:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
- 89:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
- 90:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
- 91:         
- 92:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Where images get stored&lt;/span&gt;
- 93:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:image_directory&lt;/span&gt;
- 94:         
- 95:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Put uploads from different days into different subdirectories&lt;/span&gt;
- 96:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:use_creation_date_based_directories&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 75&lt;/span&gt;
+ 75:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;acts_as_fleximage&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})
+ 76:         
+ 77:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Include the necesary instance methods&lt;/span&gt;
+ 78:         &lt;span class=&quot;ruby-identifier&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;Fleximage&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;Model&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;InstanceMethods&lt;/span&gt;
+ 79:         
+ 80:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Call this class method just like you would call +operate+ in a view.&lt;/span&gt;
+ 81:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# The image transoformation in the provided block will be run on every uploaded image before its saved as the &lt;/span&gt;
+ 82:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# master image.&lt;/span&gt;
+ 83:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;preprocess_image&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
+ 84:           &lt;span class=&quot;ruby-identifier&quot;&gt;preprocess_image_operation&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
+ 85:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+ 86:         
+ 87:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Internal method to ask this class if it stores image in the DB.&lt;/span&gt;
+ 88:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt;
+ 89:           &lt;span class=&quot;ruby-identifier&quot;&gt;columns&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
+ 90:             &lt;span class=&quot;ruby-identifier&quot;&gt;col&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;'image_file_data'&lt;/span&gt;
+ 91:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+ 92:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+ 93:         
+ 94:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;has_store?&lt;/span&gt;
+ 95:           &lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_directory&lt;/span&gt;
+ 96:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
  97:         
- 98:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# The format are master images are stored in&lt;/span&gt;
- 99:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:image_storage_format&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;Proc&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;new&lt;/span&gt; { &lt;span class=&quot;ruby-identifier&quot;&gt;:png&lt;/span&gt; }
+ 98:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# validation callback&lt;/span&gt;
+ 99:         &lt;span class=&quot;ruby-identifier&quot;&gt;validate&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:validate_image&lt;/span&gt;
 100:         
-101:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Require a valid image.  Defaults to true.  Set to false if its ok to have no image for&lt;/span&gt;
-102:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:require_image&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
-103:         
-104:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Missing image message&lt;/span&gt;
-105:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:missing_image_message&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;'is required'&lt;/span&gt;
-106:         
-107:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Invalid image message&lt;/span&gt;
-108:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:invalid_image_message&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;'was not a readable image'&lt;/span&gt;
-109:         
-110:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Sets the quality of rendered JPGs&lt;/span&gt;
-111:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:output_image_jpg_quality&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;85&lt;/span&gt;
-112:         
-113:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Set a default image to use when no image has been assigned to this record&lt;/span&gt;
-114:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:default_image_path&lt;/span&gt;
-115:         
-116:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# A block that processes an image before it gets saved as the master image of a record.&lt;/span&gt;
-117:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Can be helpful to resize potentially huge images to something more manageable. Set via&lt;/span&gt;
-118:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# the &amp;quot;preprocess_image { |image| ... }&amp;quot; class method.&lt;/span&gt;
-119:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:preprocess_image_operation&lt;/span&gt;
-120:         
-121:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Image related save and destroy callbacks&lt;/span&gt;
-122:         &lt;span class=&quot;ruby-identifier&quot;&gt;after_destroy&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:delete_image_file&lt;/span&gt;
-123:         &lt;span class=&quot;ruby-identifier&quot;&gt;before_save&lt;/span&gt;   &lt;span class=&quot;ruby-identifier&quot;&gt;:pre_save&lt;/span&gt;
-124:         &lt;span class=&quot;ruby-identifier&quot;&gt;after_save&lt;/span&gt;    &lt;span class=&quot;ruby-identifier&quot;&gt;:post_save&lt;/span&gt;
-125:         
-126:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# execute configuration block&lt;/span&gt;
-127:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;yield&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;block_given?&lt;/span&gt;
-128:         
-129:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# set the image directory from passed options&lt;/span&gt;
-130:         &lt;span class=&quot;ruby-identifier&quot;&gt;image_directory&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:image_directory&lt;/span&gt;] &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:image_directory&lt;/span&gt;]
-131:         
-132:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Require the declaration of a master image storage directory&lt;/span&gt;
-133:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;image_directory&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt;
-134:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;No place to put images!  Declare this via the :image_directory =&amp;gt; 'path/to/directory' option\n&amp;quot;&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;+&lt;/span&gt;
-135:                 &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;Or add a database column named image_file_data for DB storage&amp;quot;&lt;/span&gt;
+101:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# The filename of the temp image.  Used for storing of good images when validation fails&lt;/span&gt;
+102:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# and the form needs to be redisplayed.&lt;/span&gt;
+103:         &lt;span class=&quot;ruby-identifier&quot;&gt;attr_reader&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:image_file_temp&lt;/span&gt;
+104:         
+105:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Setter for jpg compression quality at the instance level&lt;/span&gt;
+106:         &lt;span class=&quot;ruby-identifier&quot;&gt;attr_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:jpg_compression_quality&lt;/span&gt;
+107:         
+108:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Where images get stored&lt;/span&gt;
+109:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:image_directory&lt;/span&gt;
+110:         
+111:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Put uploads from different days into different subdirectories&lt;/span&gt;
+112:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:use_creation_date_based_directories&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
+113:         
+114:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# The format are master images are stored in&lt;/span&gt;
+115:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:image_storage_format&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;Proc&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;new&lt;/span&gt; { &lt;span class=&quot;ruby-identifier&quot;&gt;:png&lt;/span&gt; }
+116:         
+117:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Require a valid image.  Defaults to true.  Set to false if its ok to have no image for&lt;/span&gt;
+118:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:require_image&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
+119:         
+120:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Missing image message&lt;/span&gt;
+121:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;#dsl_accessor :missing_image_message, :default =&amp;gt; 'is required'&lt;/span&gt;
+122:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;missing_image_message&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
+123:           &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; = &lt;span class=&quot;ruby-value str&quot;&gt;'is required'&lt;/span&gt;
+124:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;nil?&lt;/span&gt;
+125:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image_message&lt;/span&gt;
+126:               &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image_message&lt;/span&gt;
+127:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+128:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;activerecord.errors.models.#{self.model_name.underscore}.missing_image&amp;quot;&lt;/span&gt;
+129:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;activerecord.errors.messages.missing_image&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;match&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;/translation missing:/&lt;/span&gt;
+130:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;
+131:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+132:             
+133:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+134:             &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image_message&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;
+135:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 136:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-137:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+137:         
+138:         
+139:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Invalid image message&lt;/span&gt;
+140:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;#dsl_accessor :invalid_image_message, :default =&amp;gt; 'was not a readable image'&lt;/span&gt;
+141:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;invalid_image_message&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
+142:           &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; = &lt;span class=&quot;ruby-value str&quot;&gt;'was not a readable image'&lt;/span&gt;
+143:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;nil?&lt;/span&gt;
+144:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image_message&lt;/span&gt;
+145:               &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image_message&lt;/span&gt;
+146:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+147:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;activerecord.errors.models.#{self.model_name.underscore}.invalid_image&amp;quot;&lt;/span&gt;
+148:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;activerecord.errors.messages.invalid_image&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;match&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;/translation missing:/&lt;/span&gt;
+149:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;
+150:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+151:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+152:             &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image_message&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;
+153:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+154:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+155:         
+156:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Image too small message&lt;/span&gt;
+157:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Should include {{minimum}}&lt;/span&gt;
+158:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image_too_small_message&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
+159:           &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt; = &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;is too small (Minimum: #{minimum_image_size_to_s})&amp;quot;&lt;/span&gt;
+160:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;nil?&lt;/span&gt;
+161:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@image_too_small_message&lt;/span&gt;
+162:               &lt;span class=&quot;ruby-ivar&quot;&gt;@image_too_small_message&lt;/span&gt;
+163:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+164:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;activerecord.errors.models.#{self.model_name.underscore}.image_too_small&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:minimum&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size_to_s&lt;/span&gt;
+165:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;I18n&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;translate&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;activerecord.errors.messages.image_too_small&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:minimum&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size_to_s&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;fb&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;gsub&lt;/span&gt;(&lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;{{minimum}}&amp;quot;&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size_to_s&lt;/span&gt;) &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;match&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;/translation missing:/&lt;/span&gt;
+166:               &lt;span class=&quot;ruby-identifier&quot;&gt;translation&lt;/span&gt;
+167:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+168:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+169:             &lt;span class=&quot;ruby-ivar&quot;&gt;@image_too_small_message&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;str&lt;/span&gt;
+170:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+171:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+172:         
+173:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size_to_s&lt;/span&gt;
+174:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;is_a?&lt;/span&gt;(&lt;span class=&quot;ruby-constant&quot;&gt;Array&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;minimum_image_size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;2&lt;/span&gt;
+175:             &lt;span class=&quot;ruby-comment cmt&quot;&gt;#if minimum_image_size[0] &amp;gt; 0 &amp;amp;&amp;amp; minimum_image_size[1] &amp;gt; 0&lt;/span&gt;
+176:             &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{minimum_image_size[0]}x#{minimum_image_size[1]}&amp;quot;&lt;/span&gt;
+177:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+178:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+179:         
+180:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Sets the quality of rendered JPGs&lt;/span&gt;
+181:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:output_image_jpg_quality&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:default&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;85&lt;/span&gt;
+182:         
+183:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Set a default image to use when no image has been assigned to this record&lt;/span&gt;
+184:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:default_image_path&lt;/span&gt;
+185:         
+186:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Set a default image based on a a size and fill&lt;/span&gt;
+187:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:default_image&lt;/span&gt;
+188:         
+189:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# A block that processes an image before it gets saved as the master image of a record.&lt;/span&gt;
+190:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Can be helpful to resize potentially huge images to something more manageable. Set via&lt;/span&gt;
+191:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# the &amp;quot;preprocess_image { |image| ... }&amp;quot; class method.&lt;/span&gt;
+192:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:preprocess_image_operation&lt;/span&gt;
+193:         
+194:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Set a minimum size ([x, y] e.g. [800, 600])&lt;/span&gt;
+195:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Set [0, 600] to just enforce y size or&lt;/span&gt;
+196:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# [800, 0] to just validate x size.&lt;/span&gt;
+197:         &lt;span class=&quot;ruby-identifier&quot;&gt;dsl_accessor&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:minimum_image_size&lt;/span&gt;
+198:         
+199:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Image related save and destroy callbacks&lt;/span&gt;
+200:         &lt;span class=&quot;ruby-identifier&quot;&gt;after_destroy&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:delete_image_file&lt;/span&gt;
+201:         &lt;span class=&quot;ruby-identifier&quot;&gt;before_save&lt;/span&gt;   &lt;span class=&quot;ruby-identifier&quot;&gt;:pre_save&lt;/span&gt;
+202:         &lt;span class=&quot;ruby-identifier&quot;&gt;after_save&lt;/span&gt;    &lt;span class=&quot;ruby-identifier&quot;&gt;:post_save&lt;/span&gt;
+203:         
+204:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# execute configuration block&lt;/span&gt;
+205:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;yield&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;block_given?&lt;/span&gt;
+206:         
+207:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# set the image directory from passed options&lt;/span&gt;
+208:         &lt;span class=&quot;ruby-identifier&quot;&gt;image_directory&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:image_directory&lt;/span&gt;] &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:image_directory&lt;/span&gt;]
+209:         
+210:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Require the declaration of a master image storage directory&lt;/span&gt;
+211:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;image_directory&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;default_image&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;default_image_path&lt;/span&gt;
+212:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;No place to put images!  Declare this via the :image_directory =&amp;gt; 'path/to/directory' option\n&amp;quot;&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;+&lt;/span&gt;
+213:                 &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;Or add a database column named image_file_data for DB storage&amp;quot;&lt;/span&gt;
+214:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+215:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000010&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000010&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000010&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;image_file_exists&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(file)&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000010-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000010-source&quot;&gt;
+&lt;pre&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 217&lt;/span&gt;
+217:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_file_exists&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;)
+218:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File must be a valid object&lt;/span&gt;
+219:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;nil?&lt;/span&gt;
+220:         
+221:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Get the size of the file.  file.size works for form-uploaded images, file.stat.size works&lt;/span&gt;
+222:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# for file object created by File.open('foo.jpg', 'rb').  It must have a size &amp;gt; 0.&lt;/span&gt;
+223:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;respond_to?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;stat&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;0&lt;/span&gt;
+224:         
+225:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# object must respond to the read method to fetch its contents.&lt;/span&gt;
+226:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;respond_to?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;:read&lt;/span&gt;)
+227:         
+228:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# file validation passed, return true&lt;/span&gt;
+229:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
+230:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;</diff>
      <filename>rdoc/classes/Fleximage/Model/ClassMethods.html</filename>
    </modified>
    <modified>
      <diff>@@ -86,14 +86,16 @@ Provides methods that every model instance that acts_as_fleximage needs.
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000011&quot;&gt;delete_image_file&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000004&quot;&gt;directory_path&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000005&quot;&gt;file_path&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000009&quot;&gt;has_image?&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000006&quot;&gt;image_file=&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000008&quot;&gt;image_file_url&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000007&quot;&gt;image_file_url=&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000010&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000020&quot;&gt;delete_image_file&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000011&quot;&gt;directory_path&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000012&quot;&gt;file_path&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000017&quot;&gt;has_image?&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000018&quot;&gt;has_saved_image?&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000013&quot;&gt;image_file=&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000015&quot;&gt;image_file_temp=&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000016&quot;&gt;image_file_url&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000014&quot;&gt;image_file_url=&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000019&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -115,11 +117,11 @@ Provides methods that every model instance that acts_as_fleximage needs.
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000011&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000011&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000020&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000020&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000011&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000020&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;delete_image_file&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -131,23 +133,33 @@ record gets destroyed, but you can call it manually if you want to remove
 the image from the record.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000011-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000011-source&quot;&gt;
+            onclick=&quot;toggleCode('M000020-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000020-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 327&lt;/span&gt;
-327:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;delete_image_file&lt;/span&gt;
-328:         &lt;span class=&quot;ruby-constant&quot;&gt;File&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;delete&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;) &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;File&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;exists?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;)
-329:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 455&lt;/span&gt;
+455:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;delete_image_file&lt;/span&gt;
+456:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;has_store?&lt;/span&gt;
+457:         
+458:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt;
+459:           &lt;span class=&quot;ruby-identifier&quot;&gt;update_attribute&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:image_file_data&lt;/span&gt;, &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;frozen?&lt;/span&gt;
+460:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+461:           &lt;span class=&quot;ruby-constant&quot;&gt;File&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;delete&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;) &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;File&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;exists?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;)
+462:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+463:         
+464:         &lt;span class=&quot;ruby-identifier&quot;&gt;clear_magic_attributes&lt;/span&gt;
+465:         
+466:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;
+467:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000004&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000004&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000011&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000011&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000004&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000011&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;directory_path&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -168,34 +180,34 @@ number files in a directory.
   @some_image.directory_path #=&amp;gt; /var/www/myapp/uploaded_images/2008/3/30
 &lt;/pre&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000004-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000004-source&quot;&gt;
+            onclick=&quot;toggleCode('M000011-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000011-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 152&lt;/span&gt;
-152:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;directory_path&lt;/span&gt;
-153:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;'No image directory was defined, cannot generate path'&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image_directory&lt;/span&gt;
-154:         
-155:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# base directory&lt;/span&gt;
-156:         &lt;span class=&quot;ruby-identifier&quot;&gt;directory&lt;/span&gt; = &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{RAILS_ROOT}/#{self.class.image_directory}&amp;quot;&lt;/span&gt;
-157:         
-158:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# specific creation date based directory suffix.&lt;/span&gt;
-159:         &lt;span class=&quot;ruby-identifier&quot;&gt;creation&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:created_at&lt;/span&gt;] &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:created_on&lt;/span&gt;]
-160:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;use_creation_date_based_directories&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;creation&lt;/span&gt; 
-161:           &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{directory}/#{creation.year}/#{creation.month}/#{creation.day}&amp;quot;&lt;/span&gt;
-162:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
-163:           &lt;span class=&quot;ruby-identifier&quot;&gt;directory&lt;/span&gt;
-164:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-165:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 245&lt;/span&gt;
+245:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;directory_path&lt;/span&gt;
+246:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;'No image directory was defined, cannot generate path'&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image_directory&lt;/span&gt;
+247:         
+248:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# base directory&lt;/span&gt;
+249:         &lt;span class=&quot;ruby-identifier&quot;&gt;directory&lt;/span&gt; = &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{RAILS_ROOT}/#{self.class.image_directory}&amp;quot;&lt;/span&gt;
+250:         
+251:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# specific creation date based directory suffix.&lt;/span&gt;
+252:         &lt;span class=&quot;ruby-identifier&quot;&gt;creation&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:created_at&lt;/span&gt;] &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:created_on&lt;/span&gt;]
+253:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;use_creation_date_based_directories&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;creation&lt;/span&gt; 
+254:           &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{directory}/#{creation.year}/#{creation.month}/#{creation.day}&amp;quot;&lt;/span&gt;
+255:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+256:           &lt;span class=&quot;ruby-identifier&quot;&gt;directory&lt;/span&gt;
+257:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+258:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000005&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000005&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000012&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000012&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000005&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000012&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;file_path&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -208,23 +220,23 @@ Returns the path to the master image file for this record.
   @some_image.file_path #=&amp;gt; /var/www/myapp/uploaded_images/123.png
 &lt;/pre&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000005-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000005-source&quot;&gt;
+            onclick=&quot;toggleCode('M000012-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000012-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 170&lt;/span&gt;
-170:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;
-171:         &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{directory_path}/#{id}.#{self.class.image_storage_format}&amp;quot;&lt;/span&gt;
-172:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 263&lt;/span&gt;
+263:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;
+264:         &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{directory_path}/#{id}.#{self.class.image_storage_format}&amp;quot;&lt;/span&gt;
+265:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000009&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000009&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000017&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000017&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000009&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000017&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;has_image?&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -234,23 +246,46 @@ Returns the path to the master image file for this record.
 Return true if this record has an image.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000009-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000009-source&quot;&gt;
+            onclick=&quot;toggleCode('M000017-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000017-source&quot;&gt;
+&lt;pre&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 379&lt;/span&gt;
+379:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;has_image?&lt;/span&gt;
+380:         &lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@output_image&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;has_saved_image?&lt;/span&gt;
+381:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000018&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000018&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000018&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;has_saved_image?&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000018-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000018-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 264&lt;/span&gt;
-264:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;has_image?&lt;/span&gt;
-265:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;? &lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;image_file_data&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;File&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;exists?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;)
-266:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 383&lt;/span&gt;
+383:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;has_saved_image?&lt;/span&gt;
+384:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;db_store?&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;? &lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;image_file_data&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;File&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;exists?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;)
+385:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000006&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000006&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000013&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000013&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000006&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000013&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;image_file=&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(file)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -282,78 +317,120 @@ situations you would expect it to.
   p.images.create(params[:photo])
 &lt;/pre&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000006-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000006-source&quot;&gt;
+            onclick=&quot;toggleCode('M000013-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000013-source&quot;&gt;
+&lt;pre&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 289&lt;/span&gt;
+289:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_file=&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;)
+290:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image_file_exists&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;)
+291:           
+292:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Create RMagick Image object from uploaded file&lt;/span&gt;
+293:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;path&lt;/span&gt;
+294:             &lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;Magick&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;Image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;read&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;path&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;first&lt;/span&gt;
+295:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+296:             &lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;Magick&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;Image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;from_blob&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;read&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;first&lt;/span&gt;
+297:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+298:           
+299:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Sanitize image data&lt;/span&gt;
+300:           &lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;colorspace&lt;/span&gt;  = &lt;span class=&quot;ruby-constant&quot;&gt;Magick&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;RGBColorspace&lt;/span&gt;
+301:           &lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;density&lt;/span&gt;     = &lt;span class=&quot;ruby-value str&quot;&gt;'72'&lt;/span&gt;
+302:           
+303:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Save meta data to database&lt;/span&gt;
+304:           &lt;span class=&quot;ruby-identifier&quot;&gt;set_magic_attributes&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;)
+305:           
+306:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Success, make sure everything is valid&lt;/span&gt;
+307:           &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;false&lt;/span&gt;
+308:           &lt;span class=&quot;ruby-identifier&quot;&gt;save_temp_image&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;) &lt;span class=&quot;ruby-keyword kw&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@dont_save_temp&lt;/span&gt;
+309:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+310:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;Magick&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;ImageMagickError&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;
+311:         &lt;span class=&quot;ruby-identifier&quot;&gt;error_strings&lt;/span&gt; = [
+312:           &lt;span class=&quot;ruby-value str&quot;&gt;'Improper image header'&lt;/span&gt;,
+313:           &lt;span class=&quot;ruby-value str&quot;&gt;'no decode delegate for this image format'&lt;/span&gt;,
+314:           &lt;span class=&quot;ruby-value str&quot;&gt;'UnableToOpenBlob'&lt;/span&gt;
+315:         ]
+316:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_s&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;=~&lt;/span&gt; &lt;span class=&quot;ruby-node&quot;&gt;/#{error_strings.join('|')}/&lt;/span&gt;
+317:           &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
+318:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+319:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;
+320:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+321:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000015&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000015&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000015&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;image_file_temp=&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(file_name)&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;p&gt;
+Sets the uploaded image to the name of a file in RAILS_ROOT/tmp that was
+just uploaded. Use as a hidden field in your forms to keep an uploaded
+image when validation fails and the form needs to be redisplayed
+&lt;/p&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000015-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000015-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 196&lt;/span&gt;
-196:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_file=&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;)
-197:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Get the size of the file.  file.size works for form-uploaded images, file.stat.size works&lt;/span&gt;
-198:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# for file object created by File.open('foo.jpg', 'rb')&lt;/span&gt;
-199:         &lt;span class=&quot;ruby-identifier&quot;&gt;file_size&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;respond_to?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;stat&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;
-200:         
-201:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;respond_to?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;:read&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_size&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;0&lt;/span&gt;
-202:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Create RMagick Image object from uploaded file&lt;/span&gt;
-203:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;path&lt;/span&gt;
-204:             &lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;Magick&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;Image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;read&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;path&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;first&lt;/span&gt;
-205:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
-206:             &lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;Magick&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;Image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;from_blob&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;read&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;first&lt;/span&gt;
-207:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-208:           
-209:           &lt;span class=&quot;ruby-identifier&quot;&gt;set_magic_attributes&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;)
-210:           
-211:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Success, make sure everything is valid&lt;/span&gt;
-212:           &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;false&lt;/span&gt;
-213:           &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;false&lt;/span&gt;
-214:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
-215:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;require_image&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt;
-216:             &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
-217:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-218:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-219:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;Magick&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;ImageMagickError&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;
-220:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_s&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;=~&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;/no decode delegate for this image format/&lt;/span&gt;
-221:           &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
-222:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
-223:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;e&lt;/span&gt;
-224:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-225:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 357&lt;/span&gt;
+357:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_file_temp=&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_name&lt;/span&gt;)
+358:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_name&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_name&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;any?&lt;/span&gt;
+359:           &lt;span class=&quot;ruby-ivar&quot;&gt;@image_file_temp&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;file_name&lt;/span&gt;
+360:           &lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt; = &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;#{RAILS_ROOT}/tmp/fleximage/#{file_name}&amp;quot;&lt;/span&gt;
+361:           
+362:           &lt;span class=&quot;ruby-ivar&quot;&gt;@dont_save_temp&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
+363:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;File&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;exists?&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;)
+364:             &lt;span class=&quot;ruby-constant&quot;&gt;File&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;open&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_path&lt;/span&gt;, &lt;span class=&quot;ruby-value str&quot;&gt;'rb'&lt;/span&gt;) &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
+365:               &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image_file&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;f&lt;/span&gt;
+366:             &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+367:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+368:           &lt;span class=&quot;ruby-ivar&quot;&gt;@dont_save_temp&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;false&lt;/span&gt;
+369:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+370:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000008&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000008&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000016&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000016&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000008&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000016&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;image_file_url&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;
-Return the @&lt;a href=&quot;InstanceMethods.html#M000008&quot;&gt;image_file_url&lt;/a&gt; that
+Return the @&lt;a href=&quot;InstanceMethods.html#M000016&quot;&gt;image_file_url&lt;/a&gt; that
 was previously assigned. This is not saved in the database, and only exists
 to make forms happy.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000008-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000008-source&quot;&gt;
+            onclick=&quot;toggleCode('M000016-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000016-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 259&lt;/span&gt;
-259:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_file_url&lt;/span&gt;
-260:         &lt;span class=&quot;ruby-ivar&quot;&gt;@image_file_url&lt;/span&gt;
-261:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 374&lt;/span&gt;
+374:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_file_url&lt;/span&gt;
+375:         &lt;span class=&quot;ruby-ivar&quot;&gt;@image_file_url&lt;/span&gt;
+376:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000007&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000007&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000014&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000014&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000007&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000014&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;image_file_url=&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(file_url)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -370,35 +447,38 @@ machine, or pull from the internet.
   @photo.image_file_url = 'http://foo.com/bar.jpg'
 &lt;/pre&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000007-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000007-source&quot;&gt;
+            onclick=&quot;toggleCode('M000014-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000014-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 234&lt;/span&gt;
-234:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_file_url=&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt;)
-235:         &lt;span class=&quot;ruby-ivar&quot;&gt;@image_file_url&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt;
-236:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;=~&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;%r{^https?://}&lt;/span&gt;
-237:           &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;open&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt;)
-238:           
-239:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Force a URL based file to have an original_filename&lt;/span&gt;
-240:           &lt;span class=&quot;ruby-identifier&quot;&gt;eval&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;class &amp;lt;&amp;lt; file\ndef original_filename\n\&amp;quot;\#{file_url}\&amp;quot;\nend\nend\n&amp;quot;&lt;/span&gt;
-241:           
-242:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image_file&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;
-243:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;elsif&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;empty?&lt;/span&gt;
-244:           &lt;span class=&quot;ruby-ivar&quot;&gt;@missing_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@uploaded_image&lt;/span&gt;
-245:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
-246:           &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
-247:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-248:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 330&lt;/span&gt;
+330:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;image_file_url=&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt;)
+331:         &lt;span class=&quot;ruby-ivar&quot;&gt;@image_file_url&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt;
+332:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;=~&lt;/span&gt; &lt;span class=&quot;ruby-regexp re&quot;&gt;%r{^https?://}&lt;/span&gt;
+333:           &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;open&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt;)
+334:           
+335:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Force a URL based file to have an original_filename&lt;/span&gt;
+336:           &lt;span class=&quot;ruby-identifier&quot;&gt;eval&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;def file.original_filename\n\&amp;quot;\#{file_url}\&amp;quot;\nend\n&amp;quot;&lt;/span&gt;
+337:           
+338:           &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image_file&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;file&lt;/span&gt;
+339:           
+340:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;elsif&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;file_url&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;empty?&lt;/span&gt;
+341:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Nothing to process, move along&lt;/span&gt;
+342:           
+343:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+344:           &lt;span class=&quot;ruby-comment cmt&quot;&gt;# invalid URL, raise invalid image validation error&lt;/span&gt;
+345:           &lt;span class=&quot;ruby-ivar&quot;&gt;@invalid_image&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;
+346:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+347:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000010&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000010&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000019&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000019&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000010&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000019&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(&amp;amp;block)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -417,17 +497,17 @@ code inside a block passed to this method.
   end
 &lt;/pre&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000010-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000010-source&quot;&gt;
+            onclick=&quot;toggleCode('M000019-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000019-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 277&lt;/span&gt;
-277:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
-278:         &lt;span class=&quot;ruby-identifier&quot;&gt;returning&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt;
-279:           &lt;span class=&quot;ruby-identifier&quot;&gt;proxy&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;ImageProxy&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;new&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;load_image&lt;/span&gt;, &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;)
-280:           &lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;call&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;proxy&lt;/span&gt;)
-281:           &lt;span class=&quot;ruby-ivar&quot;&gt;@output_image&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;proxy&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image&lt;/span&gt;
-282:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-283:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/model.rb, line 396&lt;/span&gt;
+396:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;)
+397:         &lt;span class=&quot;ruby-identifier&quot;&gt;returning&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt;
+398:           &lt;span class=&quot;ruby-identifier&quot;&gt;proxy&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;ImageProxy&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;new&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;load_image&lt;/span&gt;, &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;)
+399:           &lt;span class=&quot;ruby-identifier&quot;&gt;block&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;call&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;proxy&lt;/span&gt;)
+400:           &lt;span class=&quot;ruby-ivar&quot;&gt;@output_image&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;proxy&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;image&lt;/span&gt;
+401:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+402:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;</diff>
      <filename>rdoc/classes/Fleximage/Model/InstanceMethods.html</filename>
    </modified>
    <modified>
      <diff>@@ -55,22 +55,30 @@
         &lt;tr class=&quot;top-aligned-row&quot;&gt;
             &lt;td&gt;&lt;strong&gt;In:&lt;/strong&gt;&lt;/td&gt;
             &lt;td&gt;
-                &lt;a href=&quot;../../files/lib/fleximage/operator/base_rb.html&quot;&gt;
-                lib/fleximage/operator/base.rb
-                &lt;/a&gt;
-        &lt;br /&gt;
                 &lt;a href=&quot;../../files/lib/fleximage/operator/border_rb.html&quot;&gt;
                 lib/fleximage/operator/border.rb
                 &lt;/a&gt;
         &lt;br /&gt;
+                &lt;a href=&quot;../../files/lib/fleximage/operator/text_rb.html&quot;&gt;
+                lib/fleximage/operator/text.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
                 &lt;a href=&quot;../../files/lib/fleximage/operator/crop_rb.html&quot;&gt;
                 lib/fleximage/operator/crop.rb
                 &lt;/a&gt;
         &lt;br /&gt;
+                &lt;a href=&quot;../../files/lib/fleximage/operator/unsharp_mask_rb.html&quot;&gt;
+                lib/fleximage/operator/unsharp_mask.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
                 &lt;a href=&quot;../../files/lib/fleximage/operator/image_overlay_rb.html&quot;&gt;
                 lib/fleximage/operator/image_overlay.rb
                 &lt;/a&gt;
         &lt;br /&gt;
+                &lt;a href=&quot;../../files/lib/fleximage/operator/base_rb.html&quot;&gt;
+                lib/fleximage/operator/base.rb
+                &lt;/a&gt;
+        &lt;br /&gt;
                 &lt;a href=&quot;../../files/lib/fleximage/operator/resize_rb.html&quot;&gt;
                 lib/fleximage/operator/resize.rb
                 &lt;/a&gt;
@@ -79,18 +87,10 @@
                 lib/fleximage/operator/shadow.rb
                 &lt;/a&gt;
         &lt;br /&gt;
-                &lt;a href=&quot;../../files/lib/fleximage/operator/text_rb.html&quot;&gt;
-                lib/fleximage/operator/text.rb
-                &lt;/a&gt;
-        &lt;br /&gt;
                 &lt;a href=&quot;../../files/lib/fleximage/operator/trim_rb.html&quot;&gt;
                 lib/fleximage/operator/trim.rb
                 &lt;/a&gt;
         &lt;br /&gt;
-                &lt;a href=&quot;../../files/lib/fleximage/operator/unsharp_mask_rb.html&quot;&gt;
-                lib/fleximage/operator/unsharp_mask.rb
-                &lt;/a&gt;
-        &lt;br /&gt;
             &lt;/td&gt;
         &lt;/tr&gt;
 </diff>
      <filename>rdoc/classes/Fleximage/Operator.html</filename>
    </modified>
    <modified>
      <diff>@@ -83,13 +83,13 @@
 The &lt;a href=&quot;Base.html&quot;&gt;Operator::Base&lt;/a&gt; class is what all other &lt;a
 href=&quot;../Operator.html&quot;&gt;Operator&lt;/a&gt; classes inherit from. To write your
 own &lt;a href=&quot;../Operator.html&quot;&gt;Operator&lt;/a&gt; class, simply inherit from this
-class, and implement your own &lt;a href=&quot;Base.html#M000018&quot;&gt;operate&lt;/a&gt;
+class, and implement your own &lt;a href=&quot;Base.html#M000027&quot;&gt;operate&lt;/a&gt;
 methods, with your own arguments. Just return a new RMagick image object
 that represents the new image, and the model will be updated automatically.
 &lt;/p&gt;
 &lt;p&gt;
 You have access to a few instance variables in the &lt;a
-href=&quot;Base.html#M000018&quot;&gt;operate&lt;/a&gt; method:
+href=&quot;Base.html#M000027&quot;&gt;operate&lt;/a&gt; method:
 &lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;@image : The current image from the model. Use this is a starting point for
@@ -111,12 +111,14 @@ in. Use it to get data out of your model for display in your image.
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000018&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000020&quot;&gt;scale&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000021&quot;&gt;scale_and_crop&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000019&quot;&gt;size_to_xy&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000022&quot;&gt;stretch&lt;/a&gt;&amp;nbsp;&amp;nbsp;
-      &lt;a href=&quot;#M000023&quot;&gt;symbol_to_blending_mode&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000027&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000030&quot;&gt;scale&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000031&quot;&gt;scale_and_crop&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000029&quot;&gt;size_to_xy&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000028&quot;&gt;size_to_xy&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000032&quot;&gt;stretch&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000033&quot;&gt;symbol_to_blending_mode&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000034&quot;&gt;symbol_to_gravity&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -136,13 +138,52 @@ in. Use it to get data out of your model for display in your image.
 
     &lt;!-- if method_list --&gt;
     &lt;div id=&quot;methods&quot;&gt;
+      &lt;h3 class=&quot;section-bar&quot;&gt;Public Class methods&lt;/h3&gt;
+
+      &lt;div id=&quot;method-M000028&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000028&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000028&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;size_to_xy&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size)&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;p&gt;
+Allows access to size conversion globally. See &lt;a
+href=&quot;Base.html#M000028&quot;&gt;size_to_xy&lt;/a&gt; for a more detailed explanation
+&lt;/p&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000028-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000028-source&quot;&gt;
+&lt;pre&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 56&lt;/span&gt;
+56:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;)
+57:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;case&lt;/span&gt;          
+58:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;when&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;is_a?&lt;/span&gt;(&lt;span class=&quot;ruby-constant&quot;&gt;Array&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;2&lt;/span&gt;  &lt;span class=&quot;ruby-comment cmt&quot;&gt;# [320, 240]&lt;/span&gt;
+59:           &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;
+60:       
+61:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;when&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_s&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;include?&lt;/span&gt;(&lt;span class=&quot;ruby-value str&quot;&gt;'x'&lt;/span&gt;)              &lt;span class=&quot;ruby-comment cmt&quot;&gt;# &amp;quot;320x240&amp;quot;&lt;/span&gt;
+62:           &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;split&lt;/span&gt;(&lt;span class=&quot;ruby-value str&quot;&gt;'x'&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;collect&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;:to_i&lt;/span&gt;)
+63:         
+64:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;ruby-comment cmt&quot;&gt;# Anything else, convert the object to an integer and assume square dimensions&lt;/span&gt;
+65:           [&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_i&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_i&lt;/span&gt;]
+66:           
+67:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+68:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000018&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000018&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000027&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000027&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000018&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000027&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(*args)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -154,24 +195,24 @@ href=&quot;Base.html&quot;&gt;Operator::Base&lt;/a&gt; subclasses in order to write your own
 image operators.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000018-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000018-source&quot;&gt;
+            onclick=&quot;toggleCode('M000027-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000027-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 41&lt;/span&gt;
-41:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt;)
-42:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;Override this method in your own subclass.&amp;quot;&lt;/span&gt;
-43:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 47&lt;/span&gt;
+47:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt;)
+48:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;OperationNotImplemented&lt;/span&gt;, &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;Override this method in your own subclass.&amp;quot;&lt;/span&gt;
+49:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000020&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000020&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000030&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000030&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000020&quot; class=&quot;method-signature&quot;&gt;
-          &lt;span class=&quot;method-name&quot;&gt;scale&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size, img = nil)&lt;/span&gt;
+          &lt;a href=&quot;#M000030&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;scale&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size, img = @image)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
@@ -179,31 +220,31 @@ image operators.
           &lt;p&gt;
 Scale the image, respecting aspect ratio. Operation will happen in the main
 &lt;tt&gt;@image&lt;/tt&gt; unless you supply the &lt;tt&gt;img&lt;/tt&gt; argument to &lt;a
-href=&quot;Base.html#M000018&quot;&gt;operate&lt;/a&gt; on instead.
+href=&quot;Base.html#M000027&quot;&gt;operate&lt;/a&gt; on instead.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000020-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000020-source&quot;&gt;
+            onclick=&quot;toggleCode('M000030-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000030-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 72&lt;/span&gt;
-72:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;scale&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
-73:         (&lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;change_geometry!&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;join&lt;/span&gt;(&lt;span class=&quot;ruby-value str&quot;&gt;'x'&lt;/span&gt;)) &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;cols&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
-74:           &lt;span class=&quot;ruby-identifier&quot;&gt;cols&lt;/span&gt; = &lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;cols&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;
-75:           &lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt; = &lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;
-76:           &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;resize!&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;cols&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt;)
-77:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-78:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 87&lt;/span&gt;
+87:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;scale&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; = &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;)
+88:         &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;change_geometry!&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;join&lt;/span&gt;(&lt;span class=&quot;ruby-value str&quot;&gt;'x'&lt;/span&gt;)) &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;cols&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;_img&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
+89:           &lt;span class=&quot;ruby-identifier&quot;&gt;cols&lt;/span&gt; = &lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;cols&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;
+90:           &lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt; = &lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;
+91:           &lt;span class=&quot;ruby-identifier&quot;&gt;_img&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;resize!&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;cols&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt;)
+92:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+93:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000021&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000021&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000031&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000031&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000021&quot; class=&quot;method-signature&quot;&gt;
-          &lt;span class=&quot;method-name&quot;&gt;scale_and_crop&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size, img = nil)&lt;/span&gt;
+          &lt;a href=&quot;#M000031&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;scale_and_crop&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size, img = @image)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
@@ -211,27 +252,27 @@ href=&quot;Base.html#M000018&quot;&gt;operate&lt;/a&gt; on instead.
           &lt;p&gt;
 Scale to the desired size and crop edges off to get the exact dimensions
 needed. Operation will happen in the main &lt;tt&gt;@image&lt;/tt&gt; unless you supply
-the &lt;tt&gt;img&lt;/tt&gt; argument to &lt;a href=&quot;Base.html#M000018&quot;&gt;operate&lt;/a&gt; on
+the &lt;tt&gt;img&lt;/tt&gt; argument to &lt;a href=&quot;Base.html#M000027&quot;&gt;operate&lt;/a&gt; on
 instead.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000021-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000021-source&quot;&gt;
+            onclick=&quot;toggleCode('M000031-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000031-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 83&lt;/span&gt;
-83:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;scale_and_crop&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
-84:         (&lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;crop_resized!&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;))
-85:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 98&lt;/span&gt;
+ 98:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;scale_and_crop&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; = &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;)
+ 99:         &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;crop_resized!&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;))
+100:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000019&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000019&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000029&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000029&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000019&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000029&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;size_to_xy&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -261,30 +302,24 @@ Usage:
   x, y = size_to_xy(&amp;quot;10x20&amp;quot;)
 &lt;/pre&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000019-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000019-source&quot;&gt;
+            onclick=&quot;toggleCode('M000029-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000029-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 59&lt;/span&gt;
-59:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;)
-60:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;is_a?&lt;/span&gt;(&lt;span class=&quot;ruby-constant&quot;&gt;Array&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;2&lt;/span&gt;
-61:           &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;
-62:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;elsif&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_s&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;include?&lt;/span&gt;(&lt;span class=&quot;ruby-value str&quot;&gt;'x'&lt;/span&gt;)
-63:           &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;split&lt;/span&gt;(&lt;span class=&quot;ruby-value str&quot;&gt;'x'&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;collect&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;:to_i&lt;/span&gt;)
-64:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
-65:           [&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_i&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;to_i&lt;/span&gt;]
-66:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-67:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 80&lt;/span&gt;
+80:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;)
+81:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;class&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;
+82:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000022&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000022&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000032&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000032&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000022&quot; class=&quot;method-signature&quot;&gt;
-          &lt;span class=&quot;method-name&quot;&gt;stretch&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size, img = nil)&lt;/span&gt;
+          &lt;a href=&quot;#M000032&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;stretch&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size, img = @image)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
@@ -292,27 +327,27 @@ Usage:
           &lt;p&gt;
 &lt;a href=&quot;Resize.html&quot;&gt;Resize&lt;/a&gt; the image, with no respect to aspect
 ratio. Operation will happen in the main &lt;tt&gt;@image&lt;/tt&gt; unless you supply
-the &lt;tt&gt;img&lt;/tt&gt; argument to &lt;a href=&quot;Base.html#M000018&quot;&gt;operate&lt;/a&gt; on
+the &lt;tt&gt;img&lt;/tt&gt; argument to &lt;a href=&quot;Base.html#M000027&quot;&gt;operate&lt;/a&gt; on
 instead.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000022-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000022-source&quot;&gt;
+            onclick=&quot;toggleCode('M000032-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000032-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 90&lt;/span&gt;
-90:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;stretch&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; = &lt;span class=&quot;ruby-keyword kw&quot;&gt;nil&lt;/span&gt;)
-91:         (&lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;).&lt;span class=&quot;ruby-identifier&quot;&gt;resize!&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;))
-92:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 105&lt;/span&gt;
+105:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;stretch&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt; = &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;)
+106:         &lt;span class=&quot;ruby-identifier&quot;&gt;img&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;resize!&lt;/span&gt;(&lt;span class=&quot;ruby-operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;))
+107:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;
       &lt;/div&gt;
 
-      &lt;div id=&quot;method-M000023&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000023&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000033&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000033&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000023&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000033&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;symbol_to_blending_mode&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(mode)&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
@@ -333,15 +368,44 @@ To use a blend mode remove the &lt;tt&gt;CompositeOp&lt;/tt&gt; form the name and
 &lt;tt&gt;CopyBlackCompositeOp&lt;/tt&gt; becomes :&lt;tt&gt;copy_black&lt;/tt&gt;.
 &lt;/p&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000023-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000023-source&quot;&gt;
+            onclick=&quot;toggleCode('M000033-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000033-source&quot;&gt;
+&lt;pre&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 116&lt;/span&gt;
+116:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_blending_mode&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;mode&lt;/span&gt;)
+117:         &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;Magick::#{mode.to_s.camelize}CompositeOp&amp;quot;&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;constantize&lt;/span&gt;
+118:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;NameError&lt;/span&gt;
+119:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;ArgumentError&lt;/span&gt;, &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;:#{mode} is not a valid blending mode.&amp;quot;&lt;/span&gt;
+120:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+&lt;/pre&gt;
+          &lt;/div&gt;
+        &lt;/div&gt;
+      &lt;/div&gt;
+
+      &lt;div id=&quot;method-M000034&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000034&quot;&gt;&lt;/a&gt;
+
+        &lt;div class=&quot;method-heading&quot;&gt;
+          &lt;a href=&quot;#M000034&quot; class=&quot;method-signature&quot;&gt;
+          &lt;span class=&quot;method-name&quot;&gt;symbol_to_gravity&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(gravity_name)&lt;/span&gt;
+          &lt;/a&gt;
+        &lt;/div&gt;
+      
+        &lt;div class=&quot;method-description&quot;&gt;
+          &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
+            onclick=&quot;toggleCode('M000034-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000034-source&quot;&gt;
 &lt;pre&gt;
-     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 101&lt;/span&gt;
-101:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_blending_mode&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;mode&lt;/span&gt;)
-102:         &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;Magick::#{mode.to_s.camelize}CompositeOp&amp;quot;&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;constantize&lt;/span&gt;
-103:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;NameError&lt;/span&gt;
-104:         &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;ArgumentError&lt;/span&gt;, &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;:#{mode} is not a valid blending mode.&amp;quot;&lt;/span&gt;
-105:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/base.rb, line 122&lt;/span&gt;
+122:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_gravity&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;gravity_name&lt;/span&gt;)
+123:         &lt;span class=&quot;ruby-identifier&quot;&gt;gravity&lt;/span&gt; = &lt;span class=&quot;ruby-constant&quot;&gt;GRAVITIES&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;gravity_name&lt;/span&gt;]
+124:         
+125:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;gravity&lt;/span&gt;
+126:           &lt;span class=&quot;ruby-identifier&quot;&gt;gravity&lt;/span&gt;
+127:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;else&lt;/span&gt;
+128:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;ArgumentError&lt;/span&gt;, &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;:#{gravity_name} is not a valid gravity name.\n\nValid names are :center, :top, :top_right, :right, :bottom_right, :bottom, :bottom_left, :left, :top_left&amp;quot;&lt;/span&gt;
+129:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+130:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;</diff>
      <filename>rdoc/classes/Fleximage/Operator/Base.html</filename>
    </modified>
    <modified>
      <diff>@@ -129,7 +129,7 @@ Example:
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000012&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000023&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -151,19 +151,19 @@ Example:
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000012&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000012&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000023&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000023&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000012&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000023&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(options = {})&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000012-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000012-source&quot;&gt;
+            onclick=&quot;toggleCode('M000023-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000023-source&quot;&gt;
 &lt;pre&gt;
     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/border.rb, line 33&lt;/span&gt;
 33:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})</diff>
      <filename>rdoc/classes/Fleximage/Operator/Border.html</filename>
    </modified>
    <modified>
      <diff>@@ -91,6 +91,11 @@ down and right from there.
 Use the following keys in the &lt;tt&gt;options&lt;/tt&gt; hash:
 &lt;/p&gt;
 &lt;ul&gt;
+&lt;li&gt;&lt;tt&gt;gravity&lt;/tt&gt;: Select gravity for the crop. Default is :top_left
+(Magick::NorthWestGravity) Choose from GRAVITITES constant defined in
+base.rb.
+
+&lt;/li&gt;
 &lt;li&gt;&lt;tt&gt;from&lt;/tt&gt;: coorinates for the upper left corner of resulting image.
 
 &lt;/li&gt;
@@ -99,9 +104,9 @@ of the :&lt;tt&gt;from&lt;/tt&gt; coordinate.
 
 &lt;/li&gt;
 &lt;/ul&gt;
-&lt;p&gt;
-Both options are &lt;b&gt;required&lt;/b&gt;.
-&lt;/p&gt;
+&lt;pre&gt;
+ size and from options are *required*.
+&lt;/pre&gt;
 &lt;p&gt;
 Example:
 &lt;/p&gt;
@@ -113,6 +118,18 @@ Example:
     )
   end
 &lt;/pre&gt;
+&lt;p&gt;
+or
+&lt;/p&gt;
+&lt;pre&gt;
+  @photo.operate do |image|
+    image.crop(
+      :gravity =&amp;gt; :center,
+      :from    =&amp;gt; '100x50',
+      :size    =&amp;gt; '500x350'
+    )
+  end
+&lt;/pre&gt;
 
     &lt;/div&gt;
 
@@ -123,7 +140,7 @@ Example:
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000017&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000035&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -145,38 +162,39 @@ Example:
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000017&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000017&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000035&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000035&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000017&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000035&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(options = {})&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000017-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000017-source&quot;&gt;
+            onclick=&quot;toggleCode('M000035-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000035-source&quot;&gt;
 &lt;pre&gt;
-    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/crop.rb, line 25&lt;/span&gt;
-25:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})
-26:         &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;symbolize_keys&lt;/span&gt;
-27: 
-28:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# required integer keys&lt;/span&gt;
-29:         [&lt;span class=&quot;ruby-identifier&quot;&gt;:from&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;].&lt;span class=&quot;ruby-identifier&quot;&gt;each&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
-30:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;ArgumentError&lt;/span&gt;, &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;:#{key} must be included in crop options&amp;quot;&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;key&lt;/span&gt;]
-31:           &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;key&lt;/span&gt;] = &lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;key&lt;/span&gt;])
-32:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-33: 
-34:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# width and height must not be zero&lt;/span&gt;
-35:         &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;].&lt;span class=&quot;ruby-identifier&quot;&gt;each&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;dimension&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
-36:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;ArgumentError&lt;/span&gt;, &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;:size must not be zero for X or Y&amp;quot;&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;dimension&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;zero?&lt;/span&gt;
-37:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
-38: 
-39:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# crop&lt;/span&gt;
-40:         &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;crop!&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:from&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;0&lt;/span&gt;], &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:from&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;], &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;0&lt;/span&gt;], &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;], &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;)
-41:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+    &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/crop.rb, line 37&lt;/span&gt;
+37:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})
+38:         &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;symbolize_keys&lt;/span&gt;
+39:         &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;reverse_merge!&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;:gravity&lt;/span&gt; =&lt;span class=&quot;ruby-operator&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:top_left&lt;/span&gt;)
+40: 
+41:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# required integer keys&lt;/span&gt;
+42:         [&lt;span class=&quot;ruby-identifier&quot;&gt;:from&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;].&lt;span class=&quot;ruby-identifier&quot;&gt;each&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
+43:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;ArgumentError&lt;/span&gt;, &lt;span class=&quot;ruby-node&quot;&gt;&amp;quot;:#{key} must be included in crop options&amp;quot;&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;unless&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;key&lt;/span&gt;]
+44:           &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;key&lt;/span&gt;] = &lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;key&lt;/span&gt;])
+45:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+46: 
+47:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# width and height must not be zero&lt;/span&gt;
+48:         &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;].&lt;span class=&quot;ruby-identifier&quot;&gt;each&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;ruby-identifier&quot;&gt;dimension&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;|&lt;/span&gt;
+49:           &lt;span class=&quot;ruby-identifier&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;ArgumentError&lt;/span&gt;, &lt;span class=&quot;ruby-value str&quot;&gt;&amp;quot;:size must not be zero for X or Y&amp;quot;&lt;/span&gt; &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;dimension&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;zero?&lt;/span&gt;
+50:         &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
+51: 
+52:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# crop&lt;/span&gt;
+53:         &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;crop!&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_gravity&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:gravity&lt;/span&gt;]), &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:from&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;0&lt;/span&gt;], &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:from&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;], &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;0&lt;/span&gt;], &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:size&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;], &lt;span class=&quot;ruby-keyword kw&quot;&gt;true&lt;/span&gt;)
+54:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;end&lt;/span&gt;
 &lt;/pre&gt;
           &lt;/div&gt;
         &lt;/div&gt;</diff>
      <filename>rdoc/classes/Fleximage/Operator/Crop.html</filename>
    </modified>
    <modified>
      <diff>@@ -159,7 +159,7 @@ Example:
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000015&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000025&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -181,19 +181,19 @@ Example:
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000015&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000015&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000025&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000025&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000015&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000025&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(image_overlay_path, options = {})&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000015-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000015-source&quot;&gt;
+            onclick=&quot;toggleCode('M000025-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000025-source&quot;&gt;
 &lt;pre&gt;
     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/image_overlay.rb, line 52&lt;/span&gt;
 52:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;image_overlay_path&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})
@@ -217,7 +217,7 @@ Example:
 70:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;#prepare arguments for composite!&lt;/span&gt;
 71:         &lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt; = []
 72:         &lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;overlay&lt;/span&gt;                                               &lt;span class=&quot;ruby-comment cmt&quot;&gt;#overlay image&lt;/span&gt;
-73:         &lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ruby-constant&quot;&gt;GRAVITIES&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:alignment&lt;/span&gt;] &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:center&lt;/span&gt;]             &lt;span class=&quot;ruby-comment cmt&quot;&gt;#gravity&lt;/span&gt;
+73:         &lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_gravity&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:alignment&lt;/span&gt;] &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:center&lt;/span&gt;)     &lt;span class=&quot;ruby-comment cmt&quot;&gt;#gravity&lt;/span&gt;
 74:         &lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;size_to_xy&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:offset&lt;/span&gt;]) &lt;span class=&quot;ruby-keyword kw&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:offset&lt;/span&gt;]      &lt;span class=&quot;ruby-comment cmt&quot;&gt;#offset&lt;/span&gt;
 75:         &lt;span class=&quot;ruby-identifier&quot;&gt;args&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_blending_mode&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:blending&lt;/span&gt;] &lt;span class=&quot;ruby-operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;:over&lt;/span&gt;)  &lt;span class=&quot;ruby-comment cmt&quot;&gt;#compositing mode&lt;/span&gt;
 76:         </diff>
      <filename>rdoc/classes/Fleximage/Operator/ImageOverlay.html</filename>
    </modified>
    <modified>
      <diff>@@ -142,7 +142,7 @@ Example:
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000025&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000036&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -164,19 +164,19 @@ Example:
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000025&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000025&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000036&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000036&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000025&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000036&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(size, options = {})&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000025-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000025-source&quot;&gt;
+            onclick=&quot;toggleCode('M000036-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000036-source&quot;&gt;
 &lt;pre&gt;
     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/resize.rb, line 39&lt;/span&gt;
 39:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;size&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})</diff>
      <filename>rdoc/classes/Fleximage/Operator/Resize.html</filename>
    </modified>
    <modified>
      <diff>@@ -147,7 +147,7 @@ Example:
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000016&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000024&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -169,19 +169,19 @@ Example:
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000016&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000016&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000024&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000024&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000016&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000024&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(options = {})&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000016-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000016-source&quot;&gt;
+            onclick=&quot;toggleCode('M000024-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000024-source&quot;&gt;
 &lt;pre&gt;
     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/shadow.rb, line 48&lt;/span&gt;
 48:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})
@@ -213,7 +213,7 @@ Example:
 74:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# apply shadow&lt;/span&gt;
 75:         &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;shadow&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;composite&lt;/span&gt;(
 76:           &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;, 
-77:           &lt;span class=&quot;ruby-constant&quot;&gt;GRAVITIES&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:top_left&lt;/span&gt;], 
+77:           &lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_gravity&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;:top_left&lt;/span&gt;), 
 78:           (&lt;span class=&quot;ruby-identifier&quot;&gt;shadow&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;columns&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;columns&lt;/span&gt;) &lt;span class=&quot;ruby-operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:offset&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;0&lt;/span&gt;], 
 79:           (&lt;span class=&quot;ruby-identifier&quot;&gt;shadow&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt;    &lt;span class=&quot;ruby-operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ruby-ivar&quot;&gt;@image&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;rows&lt;/span&gt;)    &lt;span class=&quot;ruby-operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;ruby-value&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;ruby-operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:offset&lt;/span&gt;][&lt;span class=&quot;ruby-value&quot;&gt;1&lt;/span&gt;], 
 80:           &lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_blending_mode&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;:over&lt;/span&gt;)</diff>
      <filename>rdoc/classes/Fleximage/Operator/Shadow.html</filename>
    </modified>
    <modified>
      <diff>@@ -146,7 +146,7 @@ Example:
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000014&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000026&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -168,19 +168,19 @@ Example:
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000014&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000014&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000026&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000026&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000014&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000026&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(string_to_write, options = {})&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000014-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000014-source&quot;&gt;
+            onclick=&quot;toggleCode('M000026-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000026-source&quot;&gt;
 &lt;pre&gt;
     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/text.rb, line 37&lt;/span&gt;
 37:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;string_to_write&lt;/span&gt;, &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})
@@ -199,7 +199,7 @@ Example:
 50: 
 51:         &lt;span class=&quot;ruby-comment cmt&quot;&gt;# prepare drawing surface&lt;/span&gt;
 52:         &lt;span class=&quot;ruby-identifier&quot;&gt;text&lt;/span&gt;                = &lt;span class=&quot;ruby-constant&quot;&gt;Magick&lt;/span&gt;&lt;span class=&quot;ruby-operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ruby-constant&quot;&gt;Draw&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;new&lt;/span&gt;
-53:         &lt;span class=&quot;ruby-identifier&quot;&gt;text&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;gravity&lt;/span&gt;        = &lt;span class=&quot;ruby-constant&quot;&gt;GRAVITIES&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:alignment&lt;/span&gt;]]
+53:         &lt;span class=&quot;ruby-identifier&quot;&gt;text&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;gravity&lt;/span&gt;        = &lt;span class=&quot;ruby-identifier&quot;&gt;symbol_to_gravity&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:alignment&lt;/span&gt;])
 54:         &lt;span class=&quot;ruby-identifier&quot;&gt;text&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;fill&lt;/span&gt;           = &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:color&lt;/span&gt;]
 55:         &lt;span class=&quot;ruby-identifier&quot;&gt;text&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;text_antialias&lt;/span&gt; = &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:antialias&lt;/span&gt;]
 56:         &lt;span class=&quot;ruby-identifier&quot;&gt;text&lt;/span&gt;.&lt;span class=&quot;ruby-identifier&quot;&gt;pointsize&lt;/span&gt;      = &lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt;[&lt;span class=&quot;ruby-identifier&quot;&gt;:font_size&lt;/span&gt;].&lt;span class=&quot;ruby-identifier&quot;&gt;to_i&lt;/span&gt;</diff>
      <filename>rdoc/classes/Fleximage/Operator/Text.html</filename>
    </modified>
    <modified>
      <diff>@@ -96,7 +96,7 @@ that have the same color.
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000013&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000022&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -118,19 +118,19 @@ that have the same color.
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000013&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000013&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000022&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000022&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000013&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000022&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;()&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000013-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000013-source&quot;&gt;
+            onclick=&quot;toggleCode('M000022-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000022-source&quot;&gt;
 &lt;pre&gt;
     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/trim.rb, line 8&lt;/span&gt;
  8:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;()</diff>
      <filename>rdoc/classes/Fleximage/Operator/Trim.html</filename>
    </modified>
    <modified>
      <diff>@@ -125,7 +125,7 @@ Example:
       &lt;h3 class=&quot;section-bar&quot;&gt;Methods&lt;/h3&gt;
 
       &lt;div class=&quot;name-list&quot;&gt;
-      &lt;a href=&quot;#M000024&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
+      &lt;a href=&quot;#M000037&quot;&gt;operate&lt;/a&gt;&amp;nbsp;&amp;nbsp;
       &lt;/div&gt;
     &lt;/div&gt;
 
@@ -147,19 +147,19 @@ Example:
     &lt;div id=&quot;methods&quot;&gt;
       &lt;h3 class=&quot;section-bar&quot;&gt;Public Instance methods&lt;/h3&gt;
 
-      &lt;div id=&quot;method-M000024&quot; class=&quot;method-detail&quot;&gt;
-        &lt;a name=&quot;M000024&quot;&gt;&lt;/a&gt;
+      &lt;div id=&quot;method-M000037&quot; class=&quot;method-detail&quot;&gt;
+        &lt;a name=&quot;M000037&quot;&gt;&lt;/a&gt;
 
         &lt;div class=&quot;method-heading&quot;&gt;
-          &lt;a href=&quot;#M000024&quot; class=&quot;method-signature&quot;&gt;
+          &lt;a href=&quot;#M000037&quot; class=&quot;method-signature&quot;&gt;
           &lt;span class=&quot;method-name&quot;&gt;operate&lt;/span&gt;&lt;span class=&quot;method-args&quot;&gt;(options = {})&lt;/span&gt;
           &lt;/a&gt;
         &lt;/div&gt;
       
         &lt;div class=&quot;method-description&quot;&gt;
           &lt;p&gt;&lt;a class=&quot;source-toggle&quot; href=&quot;#&quot;
-            onclick=&quot;toggleCode('M000024-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
-          &lt;div class=&quot;method-source-code&quot; id=&quot;M000024-source&quot;&gt;
+            onclick=&quot;toggleCode('M000037-source');return false;&quot;&gt;[Source]&lt;/a&gt;&lt;/p&gt;
+          &lt;div class=&quot;method-source-code&quot; id=&quot;M000037-source&quot;&gt;
 &lt;pre&gt;
     &lt;span class=&quot;ruby-comment cmt&quot;&gt;# File lib/fleximage/operator/unsharp_mask.rb, line 21&lt;/span&gt;
 21:       &lt;span class=&quot;ruby-keyword kw&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;ruby-identifier&quot;&gt;operate&lt;/span&gt;(&lt;span class=&quot;ruby-identifier&quot;&gt;options&lt;/span&gt; = {})</diff>
      <filename>rdoc/classes/Fleximage/Operator/UnsharpMask.html</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1 @@
-Sat, 12 Apr 2008 13:32:13 -0700
+Tue, 17 Mar 2009 15:29:02 +0100</diff>
      <filename>rdoc/created.rid</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Sat Apr 12 13:26:28 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Tue Mar 17 15:28:58 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;
@@ -69,7 +69,75 @@
   &lt;div id=&quot;contextContent&quot;&gt;
 
     &lt;div id=&quot;description&quot;&gt;
-      &lt;h1&gt;&lt;a href=&quot;../classes/Fleximage.html&quot;&gt;Fleximage&lt;/a&gt;&lt;/h1&gt;
+      &lt;h1&gt;I18n&lt;/h1&gt;
+&lt;h2&gt;Overview&lt;/h2&gt;
+&lt;p&gt;
+Uses the Rails I18n to translate error messages. While they still can be
+set by using the &amp;#8216;missing_image_message&amp;#8217; and
+&amp;#8216;invalid_image_message&amp;#8217; accessors, it&amp;#8216;s better to
+configure them in your locale:
+&lt;/p&gt;
+&lt;pre&gt;
+  en:
+    activerecord:
+      errors:
+        messages:
+          missing_image: is really required
+          invalid_image: seems to be broken
+          image_too_small: &amp;quot;seems to be too small, it needs to be {{minimum}} pixels&amp;quot;
+&lt;/pre&gt;
+&lt;p&gt;
+They can also be set on a model level:
+&lt;/p&gt;
+&lt;pre&gt;
+  en:
+    activerecord:
+      errors:
+        models:
+          photo:
+            missing_image: needs to be attached
+            invalid_image: is broken
+            image_too_small: &amp;quot;is too small (should be &amp;gt;= {{minimum}})&amp;quot;
+&lt;/pre&gt;
+&lt;p&gt;
+If no message is set in your locale, the default one of the original plugin
+will be shown.
+&lt;/p&gt;
+&lt;h2&gt;ModelClassAccessor minimum_image_size&lt;/h2&gt;
+&lt;p&gt;
+If this option is set, the model validates that the image is bigger than or
+equal to a minimum size.
+&lt;/p&gt;
+&lt;pre&gt;
+  minimum_image_size [800, 600]
+&lt;/pre&gt;
+&lt;p&gt;
+You can set one integer to 1 if you just want one dimension be checked.
+(E.g. [800, 1] for images wider than 799 px)
+&lt;/p&gt;
+&lt;p&gt;
+The corresponding error message can be set either via
+&lt;/p&gt;
+&lt;pre&gt;
+  image_too_small_message &amp;quot;too small image (min {{minimum}})&amp;quot;
+&lt;/pre&gt;
+&lt;p&gt;
+or as shown above via I18n.
+&lt;/p&gt;
+&lt;h2&gt;Installation&lt;/h2&gt;
+&lt;p&gt;
+Using git:
+&lt;/p&gt;
+&lt;pre&gt;
+  git submodule add git://github.com/moser/fleximage_i18n.git vendor/plugins/fleximage_i18n
+&lt;/pre&gt;
+&lt;p&gt;
+or using:
+&lt;/p&gt;
+&lt;pre&gt;
+  ./script/plugin install git://github.com/moser/fleximage_i18n.git
+&lt;/pre&gt;
+&lt;h1&gt;&lt;a href=&quot;../classes/Fleximage.html&quot;&gt;Fleximage&lt;/a&gt; (original Doc)&lt;/h1&gt;
 &lt;h2&gt;Overview&lt;/h2&gt;
 &lt;p&gt;
 &lt;a href=&quot;../classes/Fleximage.html&quot;&gt;Fleximage&lt;/a&gt; is a Rails plugin that</diff>
      <filename>rdoc/files/README_rdoc.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Sat Apr 05 21:00:22 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/image_proxy_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Sat Apr 12 13:32:05 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Tue Mar 17 15:04:31 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/model_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Sat Apr 05 21:00:22 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/base_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Fri Apr 04 13:51:47 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/border_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Mon Mar 31 09:26:25 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/crop_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Mon Mar 31 10:35:05 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/image_overlay_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Tue Apr 01 14:30:24 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/resize_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Fri Apr 04 15:06:12 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/shadow_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Sat Apr 05 12:52:24 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/text_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Mon Mar 31 09:35:06 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/trim_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Sat Apr 05 13:18:57 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/operator/unsharp_mask_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -56,7 +56,7 @@
     &lt;/tr&gt;
     &lt;tr class=&quot;top-aligned-row&quot;&gt;
       &lt;td&gt;&lt;strong&gt;Last Update:&lt;/strong&gt;&lt;/td&gt;
-      &lt;td&gt;Sat Apr 12 13:32:01 -0700 2008&lt;/td&gt;
+      &lt;td&gt;Sat Feb 28 11:37:01 +0100 2009&lt;/td&gt;
     &lt;/tr&gt;
     &lt;/table&gt;
   &lt;/div&gt;</diff>
      <filename>rdoc/files/lib/fleximage/view_rb.html</filename>
    </modified>
    <modified>
      <diff>@@ -20,7 +20,9 @@
 &lt;div id=&quot;index&quot;&gt;
   &lt;h1 class=&quot;section-bar&quot;&gt;Classes&lt;/h1&gt;
   &lt;div id=&quot;index-entries&quot;&gt;
+    &lt;a href=&quot;classes/Class.html&quot;&gt;Class&lt;/a&gt;&lt;br /&gt;
     &lt;a href=&quot;classes/Fleximage.html&quot;&gt;Fleximage&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Helper.html&quot;&gt;Fleximage::Helper&lt;/a&gt;&lt;br /&gt;
     &lt;a href=&quot;classes/Fleximage/ImageProxy.html&quot;&gt;Fleximage::ImageProxy&lt;/a&gt;&lt;br /&gt;
     &lt;a href=&quot;classes/Fleximage/Model.html&quot;&gt;Fleximage::Model&lt;/a&gt;&lt;br /&gt;
     &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html&quot;&gt;Fleximage::Model::ClassMethods&lt;/a&gt;&lt;br /&gt;</diff>
      <filename>rdoc/fr_class_index.html</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,10 @@
   &lt;h1 class=&quot;section-bar&quot;&gt;Files&lt;/h1&gt;
   &lt;div id=&quot;index-entries&quot;&gt;
     &lt;a href=&quot;files/README_rdoc.html&quot;&gt;README.rdoc&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;files/lib/dsl_accessor_rb.html&quot;&gt;lib/dsl_accessor.rb&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;files/lib/fleximage/helper_rb.html&quot;&gt;lib/fleximage/helper.rb&lt;/a&gt;&lt;br /&gt;
     &lt;a href=&quot;files/lib/fleximage/image_proxy_rb.html&quot;&gt;lib/fleximage/image_proxy.rb&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;files/lib/fleximage/legacy_view_rb.html&quot;&gt;lib/fleximage/legacy_view.rb&lt;/a&gt;&lt;br /&gt;
     &lt;a href=&quot;files/lib/fleximage/model_rb.html&quot;&gt;lib/fleximage/model.rb&lt;/a&gt;&lt;br /&gt;
     &lt;a href=&quot;files/lib/fleximage/operator/base_rb.html&quot;&gt;lib/fleximage/operator/base.rb&lt;/a&gt;&lt;br /&gt;
     &lt;a href=&quot;files/lib/fleximage/operator/border_rb.html&quot;&gt;lib/fleximage/operator/border.rb&lt;/a&gt;&lt;br /&gt;</diff>
      <filename>rdoc/fr_file_index.html</filename>
    </modified>
    <modified>
      <diff>@@ -20,33 +20,45 @@
 &lt;div id=&quot;index&quot;&gt;
   &lt;h1 class=&quot;section-bar&quot;&gt;Methods&lt;/h1&gt;
   &lt;div id=&quot;index-entries&quot;&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000001&quot;&gt;acts_as_fleximage (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000003&quot;&gt;db_store? (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000011&quot;&gt;delete_image_file (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000004&quot;&gt;directory_path (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000005&quot;&gt;file_path (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000009&quot;&gt;has_image? (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000006&quot;&gt;image_file= (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000008&quot;&gt;image_file_url (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000007&quot;&gt;image_file_url= (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/ImageProxy.html#M000027&quot;&gt;method_missing (Fleximage::ImageProxy)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/ImageProxy.html#M000026&quot;&gt;new (Fleximage::ImageProxy)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Shadow.html#M000016&quot;&gt;operate (Fleximage::Operator::Shadow)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Trim.html#M000013&quot;&gt;operate (Fleximage::Operator::Trim)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000010&quot;&gt;operate (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/ImageOverlay.html#M000015&quot;&gt;operate (Fleximage::Operator::ImageOverlay)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Border.html#M000012&quot;&gt;operate (Fleximage::Operator::Border)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Crop.html#M000017&quot;&gt;operate (Fleximage::Operator::Crop)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000018&quot;&gt;operate (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/UnsharpMask.html#M000024&quot;&gt;operate (Fleximage::Operator::UnsharpMask)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Resize.html#M000025&quot;&gt;operate (Fleximage::Operator::Resize)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Text.html#M000014&quot;&gt;operate (Fleximage::Operator::Text)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000002&quot;&gt;preprocess_image (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000020&quot;&gt;scale (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000021&quot;&gt;scale_and_crop (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000019&quot;&gt;size_to_xy (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000022&quot;&gt;stretch (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
-    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000023&quot;&gt;symbol_to_blending_mode (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000002&quot;&gt;acts_as_fleximage (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000004&quot;&gt;db_store? (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000020&quot;&gt;delete_image_file (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000011&quot;&gt;directory_path (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Class.html#M000001&quot;&gt;dsl_accessor (Class)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Helper.html#M000021&quot;&gt;embedded_image_tag (Fleximage::Helper)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000012&quot;&gt;file_path (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000017&quot;&gt;has_image? (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000018&quot;&gt;has_saved_image? (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000005&quot;&gt;has_store? (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000013&quot;&gt;image_file= (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000010&quot;&gt;image_file_exists (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000015&quot;&gt;image_file_temp= (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000016&quot;&gt;image_file_url (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000014&quot;&gt;image_file_url= (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000008&quot;&gt;image_too_small_message (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000007&quot;&gt;invalid_image_message (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/ImageProxy.html#M000039&quot;&gt;method_missing (Fleximage::ImageProxy)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000009&quot;&gt;minimum_image_size_to_s (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000006&quot;&gt;missing_image_message (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/ImageProxy.html#M000038&quot;&gt;new (Fleximage::ImageProxy)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Text.html#M000026&quot;&gt;operate (Fleximage::Operator::Text)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/InstanceMethods.html#M000019&quot;&gt;operate (Fleximage::Model::InstanceMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Shadow.html#M000024&quot;&gt;operate (Fleximage::Operator::Shadow)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/ImageOverlay.html#M000025&quot;&gt;operate (Fleximage::Operator::ImageOverlay)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Trim.html#M000022&quot;&gt;operate (Fleximage::Operator::Trim)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000027&quot;&gt;operate (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/UnsharpMask.html#M000037&quot;&gt;operate (Fleximage::Operator::UnsharpMask)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Resize.html#M000036&quot;&gt;operate (Fleximage::Operator::Resize)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Crop.html#M000035&quot;&gt;operate (Fleximage::Operator::Crop)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Border.html#M000023&quot;&gt;operate (Fleximage::Operator::Border)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Model/ClassMethods.html#M000003&quot;&gt;preprocess_image (Fleximage::Model::ClassMethods)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000030&quot;&gt;scale (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000031&quot;&gt;scale_and_crop (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000028&quot;&gt;size_to_xy (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000029&quot;&gt;size_to_xy (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000032&quot;&gt;stretch (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000033&quot;&gt;symbol_to_blending_mode (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
+    &lt;a href=&quot;classes/Fleximage/Operator/Base.html#M000034&quot;&gt;symbol_to_gravity (Fleximage::Operator::Base)&lt;/a&gt;&lt;br /&gt;
   &lt;/div&gt;
 &lt;/div&gt;
 &lt;/body&gt;</diff>
      <filename>rdoc/fr_method_index.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,6 @@
 class PhotoBare &lt; ActiveRecord::Base
-  acts_as_fleximage :image_directory =&gt; 'public/uploads'
+  acts_as_fleximage do
+    image_directory 'public/uploads'
+    minimum_image_size [2, 2]
+  end
 end</diff>
      <filename>test/rails_root/app/models/photo_bare.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@
 # ENV['RAILS_ENV'] ||= 'production'
 
 # Specifies gem version of Rails to use when vendor/rails is not present
-RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION
+RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION
 
 # Bootstrap the Rails environment, frameworks, and default configuration
 require File.join(File.dirname(__FILE__), 'boot')
@@ -63,4 +63,4 @@ Rails::Initializer.run do |config|
   config.load_paths &lt;&lt; &quot;#{File.dirname(__FILE__)}/../../../lib/&quot;
 end
 
-Dependencies.log_activity = true
\ No newline at end of file
+#Dependencies.log_activity = true</diff>
      <filename>test/rails_root/config/environment.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@
 # test suite.  You never need to work with it otherwise.  Remember that
 # your test database is &quot;scratch space&quot; for the test suite and is wiped
 # and recreated between test runs.  Don't rely on the data there!
-config.cache_classes = true
+config.cache_classes = false
 
 # Log error messages when you accidentally call methods on nil.
 config.whiny_nils = true</diff>
      <filename>test/rails_root/config/environments/test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -42,6 +42,18 @@ class Test::Unit::TestCase #:nodoc:
     when :cmyk
       MockFile.new(&quot;#{RAILS_ROOT}/../fixtures/cmyk.jpg&quot;)
     
+    when :i100x100
+      MockFile.new(&quot;#{RAILS_ROOT}/../fixtures/100x100.jpg&quot;)
+      
+    when :i1x100
+      MockFile.new(&quot;#{RAILS_ROOT}/../fixtures/1x100.jpg&quot;)
+      
+    when :i100x1
+      MockFile.new(&quot;#{RAILS_ROOT}/../fixtures/100x1.jpg&quot;)
+      
+    when :i1x1
+      MockFile.new(&quot;#{RAILS_ROOT}/../fixtures/1x1.jpg&quot;)
+    
     end
   end
   </diff>
      <filename>test/test_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>test/rails_root/db/test.sqlite3</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>87c1089bd8f861b1bac8f7d015d7501762e37363</id>
    </parent>
    <parent>
      <id>5cbc497cf9ca18a9db5426fa4e8c341d61156c80</id>
    </parent>
  </parents>
  <author>
    <name>Alex Wayne</name>
    <email>alex@beautifulpixel.com</email>
  </author>
  <url>http://github.com/Squeegy/fleximage/commit/092abaf3d8daedc2b4b31c2e8ce793c967fdcdfc</url>
  <id>092abaf3d8daedc2b4b31c2e8ce793c967fdcdfc</id>
  <committed-date>2009-04-10T15:46:29-07:00</committed-date>
  <authored-date>2009-04-10T15:46:29-07:00</authored-date>
  <message>Merge branch 'master' of git://github.com/moser/fleximage_i18n

Conflicts:

	.gitignore</message>
  <tree>77ef8de2cd9b73d67dd0e0f2a5c660a3e25c7517</tree>
  <committer>
    <name>Alex Wayne</name>
    <email>alex@beautifulpixel.com</email>
  </committer>
</commit>
