dragonfly 0.9.9 → 0.9.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of dragonfly might be problematic. Click here for more details.
- data/History.md +6 -0
- data/README.md +1 -1
- data/VERSION +1 -1
- data/dragonfly.gemspec +2 -2
- data/extra_docs/Heroku.md +1 -1
- data/extra_docs/ImageMagick.md +1 -1
- data/extra_docs/Rails3.md +1 -1
- data/extra_docs/ServingRemotely.md +41 -20
- data/lib/dragonfly/data_storage/file_data_store.rb +6 -2
- data/spec/dragonfly/data_storage/file_data_store_spec.rb +6 -0
- metadata +37 -37
    
        data/History.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.9. | 
| 1 | 
            +
            0.9.10
         | 
    
        data/dragonfly.gemspec
    CHANGED
    
    | @@ -5,11 +5,11 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = "dragonfly"
         | 
| 8 | 
            -
              s.version = "0.9. | 
| 8 | 
            +
              s.version = "0.9.10"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["Mark Evans"]
         | 
| 12 | 
            -
              s.date = " | 
| 12 | 
            +
              s.date = "2012-01-11"
         | 
| 13 13 | 
             
              s.description = "Dragonfly is a framework that enables on-the-fly processing for any content type.\n  It is especially suited to image handling. Its uses range from image thumbnails to standard attachments to on-demand text generation."
         | 
| 14 14 | 
             
              s.email = "mark@new-bamboo.co.uk"
         | 
| 15 15 | 
             
              s.extra_rdoc_files = [
         | 
    
        data/extra_docs/Heroku.md
    CHANGED
    
    | @@ -40,7 +40,7 @@ The datastore remains as the {Dragonfly::DataStorage::FileDataStore FileDataStor | |
| 40 40 |  | 
| 41 41 | 
             
            application.rb if using with Rails:
         | 
| 42 42 |  | 
| 43 | 
            -
                config.middleware.insert  | 
| 43 | 
            +
                config.middleware.insert 1, 'Dragonfly::Middleware', :images
         | 
| 44 44 |  | 
| 45 45 | 
             
            We don't store the S3 access key and secret in the repository, rather we use Heroku's
         | 
| 46 46 | 
             
            {http://docs.heroku.com/config-vars config variables} using the command line (we only have to do this once).
         | 
    
        data/extra_docs/ImageMagick.md
    CHANGED
    
    | @@ -122,7 +122,7 @@ Note that the text generation options are meant to resemble css as much as possi | |
| 122 122 |  | 
| 123 123 | 
             
            You can use `padding-top`, `padding-left`, etc., as well as the standard css shortcuts for `padding` (it assumes unit is px).
         | 
| 124 124 |  | 
| 125 | 
            -
            An alternative for `:font_family` is `:font` (see {http://www.imagemagick.org/script/command-line-options.php#font}), which could be a complete filename.
         | 
| 125 | 
            +
            An alternative for `:font_family` is `:font` (see {http://www.imagemagick.org/script/command-line-options.php#font the imagemagick docs}), which could be a complete filename.
         | 
| 126 126 | 
             
            Available fonts are those available on your system.
         | 
| 127 127 |  | 
| 128 128 | 
             
            Configuration
         | 
    
        data/extra_docs/Rails3.md
    CHANGED
    
    
| @@ -10,8 +10,8 @@ For most cases, this is the way to go - you have control over it and you can {fi | |
| 10 10 | 
             
            However, if for whatever reason you must serve content from the datastore directly, e.g. for lightening the load on your server, Dragonfly
         | 
| 11 11 | 
             
            provides a number of ways of doing this.
         | 
| 12 12 |  | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 13 | 
            +
            Original Content
         | 
| 14 | 
            +
            ----------------
         | 
| 15 15 | 
             
            The {file:DataStorage#File\_datastore FileDataStore}, {file:DataStorage#S3\_datastore S3DataStore} and
         | 
| 16 16 | 
             
            {file:DataStorage#Couch\_datastore CouchDataStore} allow for serving data directly, so given a Dragonfly app
         | 
| 17 17 |  | 
| @@ -27,10 +27,30 @@ we can get the remote url using | |
| 27 27 |  | 
| 28 28 | 
             
            or from a model attachment:
         | 
| 29 29 |  | 
| 30 | 
            -
                my_model.attachment.remote_url     # http://my-bucket. | 
| 30 | 
            +
                my_model.attachment.remote_url     # http://my-bucket.s3.amazonaws.com/2011...
         | 
| 31 31 |  | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 32 | 
            +
            Processed Content
         | 
| 33 | 
            +
            -----------------
         | 
| 34 | 
            +
            If using models, the quick and easy way to serve e.g. image thumbnails remotely is to process them _on upload_
         | 
| 35 | 
            +
            like most other attachment ruby gems (see {file:Models#Up-front_thumbnailing}),
         | 
| 36 | 
            +
            e.g. for my avatar model,
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                class Avatar
         | 
| 39 | 
            +
                  image_accessor :image do
         | 
| 40 | 
            +
                    copy_to(:small_image){|a| a.thumb('200x200#') }
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
                  image_accessor :small_image
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            Then we can use `remote_url` for for each accessor.
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                avatar.image.remote_url            # http://my-bucket.s3.amazonaws.com/some/path.jpg
         | 
| 48 | 
            +
                avatar.small_image.remote_url      # http://my-bucket.s3.amazonaws.com/some/other/path.jpg
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            However, this has all the limitations that come with up-front processing, such as having to regenerate the thumbnail when the size requirement changes.
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            Serving Processed Content *on-the-fly*
         | 
| 53 | 
            +
            --------------------------------------
         | 
| 34 54 | 
             
            Serving processed versions of content such as thumbnails remotely is a bit more tricky as we need to upload the thumbnail
         | 
| 35 55 | 
             
            to the datastore in the on-the-fly manner.
         | 
| 36 56 |  | 
| @@ -38,34 +58,35 @@ Dragonfly provides a way of doing this using `define_url` and `before_serve` met | |
| 38 58 |  | 
| 39 59 | 
             
            The details of keeping track of/expiring these thumbnails is up to you.
         | 
| 40 60 |  | 
| 41 | 
            -
             | 
| 61 | 
            +
            We need to keep track of which thumbnails have been already created, by storing a uid for each one.
         | 
| 62 | 
            +
            Below is an example using an ActiveRecord 'Thumb' table to keep track of already created thumbnail uids.
         | 
| 42 63 | 
             
            It has two string columns; 'job' and 'uid'.
         | 
| 43 64 |  | 
| 44 65 | 
             
                app.configure do |c|
         | 
| 45 66 |  | 
| 46 | 
            -
                  c.server.before_serve do |job, env|
         | 
| 47 | 
            -
                    # Before serving, the first time it is requested...
         | 
| 48 | 
            -
                    # store the thumbnail in the datastore
         | 
| 49 | 
            -
                    uid = job.store
         | 
| 50 | 
            -
                    
         | 
| 51 | 
            -
                    # Keep track of its uid
         | 
| 52 | 
            -
                    Thumb.create!(
         | 
| 53 | 
            -
                      :uid => uid,
         | 
| 54 | 
            -
                      :job => job.serialize     # 'BAhbBls...' - holds all the job info
         | 
| 55 | 
            -
                    )                           # e.g. fetch 'some_uid' then resize to '40x40'
         | 
| 56 | 
            -
                  end
         | 
| 57 | 
            -
              
         | 
| 58 67 | 
             
                  # Override the .url method...
         | 
| 59 68 | 
             
                  c.define_url do |app, job, opts|
         | 
| 60 69 | 
             
                    thumb = Thumb.find_by_job(job.serialize)
         | 
| 61 | 
            -
                    # If (fetch 'some_uid' then resize to '40x40') has been stored already | 
| 70 | 
            +
                    # If (fetch 'some_uid' then resize to '40x40') has been stored already, give the datastore's remote url ...
         | 
| 62 71 | 
             
                    if thumb
         | 
| 63 72 | 
             
                      app.datastore.url_for(thumb.uid)
         | 
| 64 | 
            -
                    # ...otherwise  | 
| 73 | 
            +
                    # ...otherwise give the local Dragonfly server url
         | 
| 65 74 | 
             
                    else
         | 
| 66 75 | 
             
                      app.server.url_for(job)
         | 
| 67 76 | 
             
                    end
         | 
| 68 77 | 
             
                  end
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                  # Before serving from the local Dragonfly server...
         | 
| 80 | 
            +
                  c.server.before_serve do |job, env|
         | 
| 81 | 
            +
                    # ...store the thumbnail in the datastore...
         | 
| 82 | 
            +
                    uid = job.store
         | 
| 83 | 
            +
                    
         | 
| 84 | 
            +
                    # ...keep track of its uid so next time we can serve directly from the datastore
         | 
| 85 | 
            +
                    Thumb.create!(
         | 
| 86 | 
            +
                      :uid => uid,
         | 
| 87 | 
            +
                      :job => job.serialize     # 'BAhbBls...' - holds all the job info
         | 
| 88 | 
            +
                    )                           # e.g. fetch 'some_uid' then resize to '40x40'
         | 
| 89 | 
            +
                  end
         | 
| 69 90 |  | 
| 70 91 | 
             
                end
         | 
| 71 92 |  | 
| @@ -81,7 +81,7 @@ module Dragonfly | |
| 81 81 | 
             
                  private
         | 
| 82 82 |  | 
| 83 83 | 
             
                  def absolute(relative_path)
         | 
| 84 | 
            -
                    File.join(root_path, relative_path)
         | 
| 84 | 
            +
                    relative_path.to_s == '.' ? root_path : File.join(root_path, relative_path)
         | 
| 85 85 | 
             
                  end
         | 
| 86 86 |  | 
| 87 87 | 
             
                  def relative(absolute_path)
         | 
| @@ -91,6 +91,10 @@ module Dragonfly | |
| 91 91 | 
             
                  def directory_empty?(path)
         | 
| 92 92 | 
             
                    Dir.entries(path) == ['.','..']
         | 
| 93 93 | 
             
                  end
         | 
| 94 | 
            +
                  
         | 
| 95 | 
            +
                  def root_path?(dir)
         | 
| 96 | 
            +
                    root_path == dir
         | 
| 97 | 
            +
                  end
         | 
| 94 98 |  | 
| 95 99 | 
             
                  def meta_data_path(data_path)
         | 
| 96 100 | 
             
                    "#{data_path}.meta"
         | 
| @@ -126,7 +130,7 @@ module Dragonfly | |
| 126 130 | 
             
                    containing_directory = Pathname.new(path).dirname
         | 
| 127 131 | 
             
                    containing_directory.ascend do |relative_dir|
         | 
| 128 132 | 
             
                      dir = absolute(relative_dir)
         | 
| 129 | 
            -
                      FileUtils.rmdir dir if directory_empty?(dir)
         | 
| 133 | 
            +
                      FileUtils.rmdir dir if directory_empty?(dir) && !root_path?(dir)
         | 
| 130 134 | 
             
                    end
         | 
| 131 135 | 
             
                  end
         | 
| 132 136 |  | 
| @@ -174,6 +174,12 @@ describe Dragonfly::DataStorage::FileDataStore do | |
| 174 174 | 
             
                  @data_store.destroy(uid)
         | 
| 175 175 | 
             
                  @data_store.root_path.should be_an_empty_directory
         | 
| 176 176 | 
             
                end
         | 
| 177 | 
            +
                
         | 
| 178 | 
            +
                it "should not prune root_path directory when destroying file without directory prefix in path" do
         | 
| 179 | 
            +
                  uid = @data_store.store(@temp_object, :path => 'mate.png')
         | 
| 180 | 
            +
                  @data_store.destroy(uid)
         | 
| 181 | 
            +
                  @data_store.root_path.should be_an_empty_directory
         | 
| 182 | 
            +
                end
         | 
| 177 183 |  | 
| 178 184 | 
             
                it "should raise an error if the data doesn't exist on destroy" do
         | 
| 179 185 | 
             
                  uid = @data_store.store(@temp_object)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: dragonfly
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.9. | 
| 4 | 
            +
              version: 0.9.10
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2012-01-11 00:00:00.000000000Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rack
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70223626180020 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '0'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70223626180020
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: capybara
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &70223626179540 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ! '>='
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: '0'
         | 
| 33 33 | 
             
              type: :development
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *70223626179540
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: cucumber
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &70223626173660 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ~>
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: 0.10.0
         | 
| 44 44 | 
             
              type: :development
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *70223626173660
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: cucumber-rails
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &70223626173180 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ~>
         | 
| @@ -54,10 +54,10 @@ dependencies: | |
| 54 54 | 
             
                    version: 0.5.2
         | 
| 55 55 | 
             
              type: :development
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *70223626173180
         | 
| 58 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 59 59 | 
             
              name: database_cleaner
         | 
| 60 | 
            -
              requirement: & | 
| 60 | 
            +
              requirement: &70223626172700 !ruby/object:Gem::Requirement
         | 
| 61 61 | 
             
                none: false
         | 
| 62 62 | 
             
                requirements:
         | 
| 63 63 | 
             
                - - ! '>='
         | 
| @@ -65,10 +65,10 @@ dependencies: | |
| 65 65 | 
             
                    version: '0'
         | 
| 66 66 | 
             
              type: :development
         | 
| 67 67 | 
             
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: * | 
| 68 | 
            +
              version_requirements: *70223626172700
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: jeweler
         | 
| 71 | 
            -
              requirement: & | 
| 71 | 
            +
              requirement: &70223626172220 !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                none: false
         | 
| 73 73 | 
             
                requirements:
         | 
| 74 74 | 
             
                - - ~>
         | 
| @@ -76,10 +76,10 @@ dependencies: | |
| 76 76 | 
             
                    version: 1.5.2
         | 
| 77 77 | 
             
              type: :development
         | 
| 78 78 | 
             
              prerelease: false
         | 
| 79 | 
            -
              version_requirements: * | 
| 79 | 
            +
              version_requirements: *70223626172220
         | 
| 80 80 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 81 81 | 
             
              name: fog
         | 
| 82 | 
            -
              requirement: & | 
| 82 | 
            +
              requirement: &70223626171740 !ruby/object:Gem::Requirement
         | 
| 83 83 | 
             
                none: false
         | 
| 84 84 | 
             
                requirements:
         | 
| 85 85 | 
             
                - - ! '>='
         | 
| @@ -87,10 +87,10 @@ dependencies: | |
| 87 87 | 
             
                    version: '0'
         | 
| 88 88 | 
             
              type: :development
         | 
| 89 89 | 
             
              prerelease: false
         | 
| 90 | 
            -
              version_requirements: * | 
| 90 | 
            +
              version_requirements: *70223626171740
         | 
| 91 91 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 92 92 | 
             
              name: mongo
         | 
| 93 | 
            -
              requirement: & | 
| 93 | 
            +
              requirement: &70223626170440 !ruby/object:Gem::Requirement
         | 
| 94 94 | 
             
                none: false
         | 
| 95 95 | 
             
                requirements:
         | 
| 96 96 | 
             
                - - ! '>='
         | 
| @@ -98,10 +98,10 @@ dependencies: | |
| 98 98 | 
             
                    version: '0'
         | 
| 99 99 | 
             
              type: :development
         | 
| 100 100 | 
             
              prerelease: false
         | 
| 101 | 
            -
              version_requirements: * | 
| 101 | 
            +
              version_requirements: *70223626170440
         | 
| 102 102 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 103 103 | 
             
              name: couchrest
         | 
| 104 | 
            -
              requirement: & | 
| 104 | 
            +
              requirement: &70223626169900 !ruby/object:Gem::Requirement
         | 
| 105 105 | 
             
                none: false
         | 
| 106 106 | 
             
                requirements:
         | 
| 107 107 | 
             
                - - ~>
         | 
| @@ -109,10 +109,10 @@ dependencies: | |
| 109 109 | 
             
                    version: '1.0'
         | 
| 110 110 | 
             
              type: :development
         | 
| 111 111 | 
             
              prerelease: false
         | 
| 112 | 
            -
              version_requirements: * | 
| 112 | 
            +
              version_requirements: *70223626169900
         | 
| 113 113 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 114 114 | 
             
              name: rack-cache
         | 
| 115 | 
            -
              requirement: & | 
| 115 | 
            +
              requirement: &70223626169420 !ruby/object:Gem::Requirement
         | 
| 116 116 | 
             
                none: false
         | 
| 117 117 | 
             
                requirements:
         | 
| 118 118 | 
             
                - - ! '>='
         | 
| @@ -120,10 +120,10 @@ dependencies: | |
| 120 120 | 
             
                    version: '0'
         | 
| 121 121 | 
             
              type: :development
         | 
| 122 122 | 
             
              prerelease: false
         | 
| 123 | 
            -
              version_requirements: * | 
| 123 | 
            +
              version_requirements: *70223626169420
         | 
| 124 124 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 125 125 | 
             
              name: rails
         | 
| 126 | 
            -
              requirement: & | 
| 126 | 
            +
              requirement: &70223626168940 !ruby/object:Gem::Requirement
         | 
| 127 127 | 
             
                none: false
         | 
| 128 128 | 
             
                requirements:
         | 
| 129 129 | 
             
                - - ~>
         | 
| @@ -131,10 +131,10 @@ dependencies: | |
| 131 131 | 
             
                    version: 3.1.0
         | 
| 132 132 | 
             
              type: :development
         | 
| 133 133 | 
             
              prerelease: false
         | 
| 134 | 
            -
              version_requirements: * | 
| 134 | 
            +
              version_requirements: *70223626168940
         | 
| 135 135 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 136 136 | 
             
              name: rspec
         | 
| 137 | 
            -
              requirement: & | 
| 137 | 
            +
              requirement: &70223626168460 !ruby/object:Gem::Requirement
         | 
| 138 138 | 
             
                none: false
         | 
| 139 139 | 
             
                requirements:
         | 
| 140 140 | 
             
                - - ~>
         | 
| @@ -142,10 +142,10 @@ dependencies: | |
| 142 142 | 
             
                    version: '2.5'
         | 
| 143 143 | 
             
              type: :development
         | 
| 144 144 | 
             
              prerelease: false
         | 
| 145 | 
            -
              version_requirements: * | 
| 145 | 
            +
              version_requirements: *70223626168460
         | 
| 146 146 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 147 147 | 
             
              name: webmock
         | 
| 148 | 
            -
              requirement: & | 
| 148 | 
            +
              requirement: &70223626167980 !ruby/object:Gem::Requirement
         | 
| 149 149 | 
             
                none: false
         | 
| 150 150 | 
             
                requirements:
         | 
| 151 151 | 
             
                - - ! '>='
         | 
| @@ -153,10 +153,10 @@ dependencies: | |
| 153 153 | 
             
                    version: '0'
         | 
| 154 154 | 
             
              type: :development
         | 
| 155 155 | 
             
              prerelease: false
         | 
| 156 | 
            -
              version_requirements: * | 
| 156 | 
            +
              version_requirements: *70223626167980
         | 
| 157 157 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 158 158 | 
             
              name: yard
         | 
| 159 | 
            -
              requirement: & | 
| 159 | 
            +
              requirement: &70223626167500 !ruby/object:Gem::Requirement
         | 
| 160 160 | 
             
                none: false
         | 
| 161 161 | 
             
                requirements:
         | 
| 162 162 | 
             
                - - ! '>='
         | 
| @@ -164,10 +164,10 @@ dependencies: | |
| 164 164 | 
             
                    version: '0'
         | 
| 165 165 | 
             
              type: :development
         | 
| 166 166 | 
             
              prerelease: false
         | 
| 167 | 
            -
              version_requirements: * | 
| 167 | 
            +
              version_requirements: *70223626167500
         | 
| 168 168 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 169 169 | 
             
              name: bluecloth
         | 
| 170 | 
            -
              requirement: & | 
| 170 | 
            +
              requirement: &70223626167020 !ruby/object:Gem::Requirement
         | 
| 171 171 | 
             
                none: false
         | 
| 172 172 | 
             
                requirements:
         | 
| 173 173 | 
             
                - - ! '>='
         | 
| @@ -175,10 +175,10 @@ dependencies: | |
| 175 175 | 
             
                    version: '0'
         | 
| 176 176 | 
             
              type: :development
         | 
| 177 177 | 
             
              prerelease: false
         | 
| 178 | 
            -
              version_requirements: * | 
| 178 | 
            +
              version_requirements: *70223626167020
         | 
| 179 179 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 180 180 | 
             
              name: bson_ext
         | 
| 181 | 
            -
              requirement: & | 
| 181 | 
            +
              requirement: &70223626166540 !ruby/object:Gem::Requirement
         | 
| 182 182 | 
             
                none: false
         | 
| 183 183 | 
             
                requirements:
         | 
| 184 184 | 
             
                - - ~>
         | 
| @@ -186,10 +186,10 @@ dependencies: | |
| 186 186 | 
             
                    version: 1.3.1
         | 
| 187 187 | 
             
              type: :development
         | 
| 188 188 | 
             
              prerelease: false
         | 
| 189 | 
            -
              version_requirements: * | 
| 189 | 
            +
              version_requirements: *70223626166540
         | 
| 190 190 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 191 191 | 
             
              name: sqlite3-ruby
         | 
| 192 | 
            -
              requirement: & | 
| 192 | 
            +
              requirement: &70223626166060 !ruby/object:Gem::Requirement
         | 
| 193 193 | 
             
                none: false
         | 
| 194 194 | 
             
                requirements:
         | 
| 195 195 | 
             
                - - ! '>='
         | 
| @@ -197,7 +197,7 @@ dependencies: | |
| 197 197 | 
             
                    version: '0'
         | 
| 198 198 | 
             
              type: :development
         | 
| 199 199 | 
             
              prerelease: false
         | 
| 200 | 
            -
              version_requirements: * | 
| 200 | 
            +
              version_requirements: *70223626166060
         | 
| 201 201 | 
             
            description: ! "Dragonfly is a framework that enables on-the-fly processing for any
         | 
| 202 202 | 
             
              content type.\n  It is especially suited to image handling. Its uses range from
         | 
| 203 203 | 
             
              image thumbnails to standard attachments to on-demand text generation."
         | 
| @@ -394,7 +394,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 394 394 | 
             
                  version: '0'
         | 
| 395 395 | 
             
                  segments:
         | 
| 396 396 | 
             
                  - 0
         | 
| 397 | 
            -
                  hash:  | 
| 397 | 
            +
                  hash: 2886754180935822941
         | 
| 398 398 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 399 399 | 
             
              none: false
         | 
| 400 400 | 
             
              requirements:
         |