middleman-imgix 1.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.travis.yml +10 -0
- data/Gemfile +9 -0
- data/Rakefile +3 -0
- data/lib/middleman-imgix.rb +6 -0
- data/lib/middleman-imgix/extension.rb +78 -0
- data/middleman-imgix.gemspec +18 -0
- data/spec/features/imgix_spec.rb +153 -0
- data/spec/fixtures/app/source/images/test.gif +0 -0
- data/spec/fixtures/app/source/images/test.jpg +0 -0
- data/spec/fixtures/app/source/images/test.png +0 -0
- data/spec/fixtures/app/source/imgix.html.erb +3 -0
- data/spec/spec_helper.rb +28 -0
- metadata +99 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: fbba5297726c9a3e3a325bfba635f9e3cd060bb3
         | 
| 4 | 
            +
              data.tar.gz: 77c58e86e08c9ce123ee8d9b37082c92b996ba53
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: dbd10bdb03066aa4b3d7d07d0be3a70171709d71c38503f36f771eeeb000a432e60c918c61e404b76ee8a214971641770440bac6e02ed6b6c1c8cbb7893b7d09
         | 
| 7 | 
            +
              data.tar.gz: be4c53177182f57dfa062f919e30c40b0d112307c8438de2fea082b37eb06fc488cc5e1ac0813bab8eebe1083be667272cd45c7f9d7362c1fdf831a6c1208fc5
         | 
    
        data/.gitignore
    ADDED
    
    
    
        data/.travis.yml
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/Rakefile
    ADDED
    
    
| @@ -0,0 +1,78 @@ | |
| 1 | 
            +
            require 'middleman-core'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class Middleman::Imgix < ::Middleman::Extension
         | 
| 4 | 
            +
              option :host, nil, 'Your imgix host.', required: true
         | 
| 5 | 
            +
              option :secure_url_token, nil, 'Your imgix secure_url_token.'
         | 
| 6 | 
            +
              option :use_https, true, 'Whether to use http or https for imgix.'
         | 
| 7 | 
            +
              option :shard_strategy, :crc, 'Your imgix shard strategy.'
         | 
| 8 | 
            +
              option :include_library_param, true, 'Include the imgix library param in each URL.'
         | 
| 9 | 
            +
              option :default_params, { auto: 'format' }, 'Default imgix params to use on all images.'
         | 
| 10 | 
            +
              option :imgix_js_version, nil, 'Converts image_tags to support imgix.js version 2 or 3.'
         | 
| 11 | 
            +
              option :exts, %w(.png .jpg .jpeg), 'List of file extensions that get converted to imgix URLs.'
         | 
| 12 | 
            +
              option :sources, %w(.css .htm .html .js .php .xhtml), 'List of source extensions that are searched for imgix images.'
         | 
| 13 | 
            +
              option :ignore, [], 'Regexes of filenames to skip adding imgix to.'
         | 
| 14 | 
            +
              option :rewrite_ignore, [], 'Regexes of filenames to skip processing for path rewrites.'
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              expose_to_template imgix_options: :options
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              def initialize(app, options_hash={}, &block)
         | 
| 19 | 
            +
                super
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                app.rewrite_inline_urls id: :imgix,
         | 
| 22 | 
            +
                                        url_extensions: options.exts,
         | 
| 23 | 
            +
                                        source_extensions: options.sources,
         | 
| 24 | 
            +
                                        ignore: options.ignore,
         | 
| 25 | 
            +
                                        rewrite_ignore: options.rewrite_ignore,
         | 
| 26 | 
            +
                                        proc: method(:rewrite_url)
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                require 'imgix'
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              def rewrite_url(asset_path, dirpath, _request_path)
         | 
| 32 | 
            +
                uri = URI.parse(asset_path)
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                if uri.relative?
         | 
| 35 | 
            +
                  params = CGI::parse(uri.query.to_s)
         | 
| 36 | 
            +
                  params = params.reverse_merge(options.default_params)
         | 
| 37 | 
            +
                  path = client.path(uri.path)
         | 
| 38 | 
            +
                  path.to_url(params)
         | 
| 39 | 
            +
                else
         | 
| 40 | 
            +
                  asset_path
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
              memoize :rewrite_url
         | 
| 44 | 
            +
             | 
| 45 | 
            +
              helpers do
         | 
| 46 | 
            +
                def image_tag(path, params={})
         | 
| 47 | 
            +
                  if imgix_options.imgix_js_version && imgix_image?(path)
         | 
| 48 | 
            +
                    version = imgix_options.imgix_js_version.to_i
         | 
| 49 | 
            +
                    params[:class] = 'imgix-fluid' if version == 2
         | 
| 50 | 
            +
                    src = version == 2 ? 'data-src=' : 'ix-src='
         | 
| 51 | 
            +
                    super(path, params).gsub('src=', src)
         | 
| 52 | 
            +
                  else
         | 
| 53 | 
            +
                    super
         | 
| 54 | 
            +
                  end
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                def imgix_image?(path)
         | 
| 58 | 
            +
                  uri = URI.parse(path)
         | 
| 59 | 
            +
                  uri.relative? &&
         | 
| 60 | 
            +
                  imgix_options.exts.include?(::File.extname(uri.path)) &&
         | 
| 61 | 
            +
                  imgix_options.sources.include?(::File.extname(current_resource.path)) &&
         | 
| 62 | 
            +
                  imgix_options.ignore.none? { |r| ::Middleman::Util.should_ignore?(r, uri.path) } &&
         | 
| 63 | 
            +
                  imgix_options.rewrite_ignore.none? { |i| ::Middleman::Util.path_match(i, uri.path) }
         | 
| 64 | 
            +
                end
         | 
| 65 | 
            +
              end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
              private
         | 
| 68 | 
            +
             | 
| 69 | 
            +
              def client
         | 
| 70 | 
            +
                @client ||= Imgix::Client.new({
         | 
| 71 | 
            +
                  host: options.host,
         | 
| 72 | 
            +
                  secure_url_token: options.secure_url_token,
         | 
| 73 | 
            +
                  use_https: options.use_https,
         | 
| 74 | 
            +
                  shard_strategy: options.shard_strategy,
         | 
| 75 | 
            +
                  include_library_param: options.include_library_param
         | 
| 76 | 
            +
                })
         | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Gem::Specification.new do |gem|
         | 
| 4 | 
            +
              gem.name          = 'middleman-imgix'
         | 
| 5 | 
            +
              gem.version       = '1.0.1'
         | 
| 6 | 
            +
              gem.licenses      = ['MIT']
         | 
| 7 | 
            +
              gem.authors       = ['Big Cartel']
         | 
| 8 | 
            +
              gem.email         = ['dev@bigcartel.com']
         | 
| 9 | 
            +
              gem.description   = %q(Use imgix images in your Middleman site.)
         | 
| 10 | 
            +
              gem.summary       = %q(Run all of your images (or only some) through imgix for all sorts of fun features.)
         | 
| 11 | 
            +
              gem.homepage      = 'https://github.com/bigcartel/middleman-imgix'
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              gem.files         = `git ls-files`.split($/)
         | 
| 14 | 
            +
              gem.require_paths = ['lib']
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              gem.add_runtime_dependency 'middleman-core', '~> 4.1', '>= 4.1.8'
         | 
| 17 | 
            +
              gem.add_runtime_dependency 'imgix', '~> 1.1', '>= 1.1.0'
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,153 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe "middleman-imgix", type: :feature do
         | 
| 4 | 
            +
              def visit_app(config='host: "images.example.com"')
         | 
| 5 | 
            +
                app("activate :imgix, #{config}")
         | 
| 6 | 
            +
                visit '/imgix.html'
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              describe "host" do
         | 
| 10 | 
            +
                it "should raise an error if missing" do
         | 
| 11 | 
            +
                  expect { app('activate :imgix') }.to raise_error
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                it "can be set to a single host" do
         | 
| 15 | 
            +
                  visit_app
         | 
| 16 | 
            +
                  expect(page.body).to include('images.example.com')
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                it "can be set to multiple hosts" do
         | 
| 20 | 
            +
                  visit_app('host: ["images1.example.com", "images2.example.com"]')
         | 
| 21 | 
            +
                  expect(page.body).to include('images1.example.com')
         | 
| 22 | 
            +
                  expect(page.body).to include('images2.example.com')
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              describe "secure_url_token" do
         | 
| 27 | 
            +
                it "should be nil by default" do
         | 
| 28 | 
            +
                  visit_app
         | 
| 29 | 
            +
                  expect(page.body).to_not include('&s=')
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                it "should work when set" do
         | 
| 33 | 
            +
                  visit_app('host: "images.example.com", secure_url_token: "test"')
         | 
| 34 | 
            +
                  expect(page.body).to include('&s=c2708015f12eae21de4d0e6cc55f525e')
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              describe "use_https" do
         | 
| 39 | 
            +
                it "should be true by default" do
         | 
| 40 | 
            +
                  visit_app
         | 
| 41 | 
            +
                  expect(page.body).to include('https://')
         | 
| 42 | 
            +
                end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                it "should work when false" do
         | 
| 45 | 
            +
                  visit_app('host: "images.example.com", use_https: false')
         | 
| 46 | 
            +
                  expect(page.body).to include('http://')
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              describe "shard_strategy" do
         | 
| 51 | 
            +
                it "should be crc by default" do
         | 
| 52 | 
            +
                  visit_app('host: ["1.example.com", "2.example.com", "3.example.com"]')
         | 
| 53 | 
            +
                  expect(page.body).to eq(%{<img src="https://2.example.com/images/test.png?ixlib=rb-1.1.0&auto=format" alt="Test" />\n<img src="https://2.example.com/images/test.jpg?ixlib=rb-1.1.0&auto=format" alt="Test" />\n<img src="/images/test.gif" alt="Test" />\n})
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                it "should work when cycle" do
         | 
| 57 | 
            +
                  visit_app('host: ["1.example.com", "2.example.com", "3.example.com"], shard_strategy: :cycle')
         | 
| 58 | 
            +
                  expect(page.body).to eq(%{<img src="https://1.example.com/images/test.png?ixlib=rb-1.1.0&auto=format" alt="Test" />\n<img src="https://2.example.com/images/test.jpg?ixlib=rb-1.1.0&auto=format" alt="Test" />\n<img src="/images/test.gif" alt="Test" />\n})
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
              describe "include_library_param" do
         | 
| 63 | 
            +
                it "should be true by default" do
         | 
| 64 | 
            +
                  visit_app
         | 
| 65 | 
            +
                  expect(page.body).to include('ixlib=rb-1.1.0')
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                it "should work when set" do
         | 
| 69 | 
            +
                  visit_app('host: "images.example.com", include_library_param: false')
         | 
| 70 | 
            +
                  expect(page.body).to_not include('ixlib=rb-1.1.0')
         | 
| 71 | 
            +
                end
         | 
| 72 | 
            +
              end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
              describe "default_params" do
         | 
| 75 | 
            +
                it "should be auto format by default" do
         | 
| 76 | 
            +
                  visit_app
         | 
| 77 | 
            +
                  expect(page.body).to include('auto=format')
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                it "should work when customized" do
         | 
| 81 | 
            +
                  visit_app('host: "images.example.com", default_params: {fit:"max"}')
         | 
| 82 | 
            +
                  expect(page.body).to_not include('auto=format')
         | 
| 83 | 
            +
                  expect(page.body).to include('fit=max')
         | 
| 84 | 
            +
                end
         | 
| 85 | 
            +
              end
         | 
| 86 | 
            +
             | 
| 87 | 
            +
              describe "imgix_js_version" do
         | 
| 88 | 
            +
                it "should not use imgix.js default" do
         | 
| 89 | 
            +
                  visit_app
         | 
| 90 | 
            +
                  expect(page.body).to include(%{<img src="https://images.example.com/images/test.png?ixlib=rb-1.1.0&auto=format" alt="Test" />})
         | 
| 91 | 
            +
                end
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                it "should support imgix.js v2" do
         | 
| 94 | 
            +
                  visit_app('host: "images.example.com", imgix_js_version: 2')
         | 
| 95 | 
            +
                  expect(page.body).to include(%{<img data-src="https://images.example.com/images/test.png?ixlib=rb-1.1.0&auto=format" class="imgix-fluid" alt="Test" />})
         | 
| 96 | 
            +
                end
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                it "should support imgix.js v3" do
         | 
| 99 | 
            +
                  visit_app('host: "images.example.com", imgix_js_version: 3')
         | 
| 100 | 
            +
                  expect(page.body).to include(%{<img ix-src="https://images.example.com/images/test.png?ixlib=rb-1.1.0&auto=format" alt="Test" />})
         | 
| 101 | 
            +
                end
         | 
| 102 | 
            +
              end
         | 
| 103 | 
            +
             | 
| 104 | 
            +
              describe "exts" do
         | 
| 105 | 
            +
                it "should be pngs and jpgs by default" do
         | 
| 106 | 
            +
                  visit_app
         | 
| 107 | 
            +
                  expect(page.body).to eq(%{<img src="https://images.example.com/images/test.png?ixlib=rb-1.1.0&auto=format" alt="Test" />\n<img src="https://images.example.com/images/test.jpg?ixlib=rb-1.1.0&auto=format" alt="Test" />\n<img src="/images/test.gif" alt="Test" />\n})
         | 
| 108 | 
            +
                end
         | 
| 109 | 
            +
             | 
| 110 | 
            +
                it "should work when customized" do
         | 
| 111 | 
            +
                  visit_app('host: "images.example.com", exts: %w(.png .jpg .jpeg .gif)')
         | 
| 112 | 
            +
                  expect(page.body).to eq(%{<img src="https://images.example.com/images/test.png?ixlib=rb-1.1.0&auto=format" alt="Test" />\n<img src="https://images.example.com/images/test.jpg?ixlib=rb-1.1.0&auto=format" alt="Test" />\n<img src="https://images.example.com/images/test.gif?ixlib=rb-1.1.0&auto=format" alt="Test" />\n})
         | 
| 113 | 
            +
                end
         | 
| 114 | 
            +
              end
         | 
| 115 | 
            +
             | 
| 116 | 
            +
              describe "sources" do
         | 
| 117 | 
            +
                it "should be html, js, and css by default" do
         | 
| 118 | 
            +
                  visit_app
         | 
| 119 | 
            +
                  expect(page.body).to include(%'images.example.com')
         | 
| 120 | 
            +
                end
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                it "should work when customized" do
         | 
| 123 | 
            +
                  visit_app('host: "images.example.com", sources: %w(.css)')
         | 
| 124 | 
            +
                  expect(page.body).to_not include(%'images.example.com')
         | 
| 125 | 
            +
                end
         | 
| 126 | 
            +
              end
         | 
| 127 | 
            +
             | 
| 128 | 
            +
              describe "ignore" do
         | 
| 129 | 
            +
                it "should not ignore anything by default" do
         | 
| 130 | 
            +
                  visit_app
         | 
| 131 | 
            +
                  expect(page.body).to include(%'images.example.com/images/test.png')
         | 
| 132 | 
            +
                end
         | 
| 133 | 
            +
             | 
| 134 | 
            +
                it "should work when customized" do
         | 
| 135 | 
            +
                  visit_app('host: "images.example.com", ignore: %w(/images/test.png)')
         | 
| 136 | 
            +
                  expect(page.body).to_not include(%'images.example.com/images/test.png')
         | 
| 137 | 
            +
                  expect(page.body).to include(%'/images/test.png')
         | 
| 138 | 
            +
                end
         | 
| 139 | 
            +
              end
         | 
| 140 | 
            +
             | 
| 141 | 
            +
              describe "rewrite_ignore" do
         | 
| 142 | 
            +
                it "should not ignore anything by default" do
         | 
| 143 | 
            +
                  visit_app
         | 
| 144 | 
            +
                  expect(page.body).to include(%'images.example.com/images/test.png')
         | 
| 145 | 
            +
                end
         | 
| 146 | 
            +
             | 
| 147 | 
            +
                it "should work when customized" do
         | 
| 148 | 
            +
                  visit_app('host: "images.example.com", rewrite_ignore: %w(/imgix.html)')
         | 
| 149 | 
            +
                  expect(page.body).to_not include(%'images.example.com/images/test.png')
         | 
| 150 | 
            +
                  expect(page.body).to include(%'/images/test.png')
         | 
| 151 | 
            +
                end
         | 
| 152 | 
            +
              end
         | 
| 153 | 
            +
            end
         | 
| Binary file | 
| Binary file | 
| Binary file | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            require 'rspec'
         | 
| 2 | 
            +
            require 'capybara/rspec'
         | 
| 3 | 
            +
            require 'middleman-core'
         | 
| 4 | 
            +
            require 'middleman-core/rack'
         | 
| 5 | 
            +
            require 'middleman-imgix'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            def app(config_rb='')
         | 
| 8 | 
            +
              ENV['MM_ROOT'] = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', 'app'))
         | 
| 9 | 
            +
              ENV['MM_ENV'] = 'test'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              config_path = File.join(ENV['MM_ROOT'], 'config.rb')
         | 
| 12 | 
            +
              File.write(config_path, config_rb)
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              mm_app = ::Middleman::Application.new do
         | 
| 15 | 
            +
                config[:watcher_disable] = true
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              Capybara.app = ::Middleman::Rack.new(mm_app).to_app
         | 
| 19 | 
            +
              File.delete(config_path)
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              mm_app
         | 
| 22 | 
            +
            end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            RSpec.configure do |config|
         | 
| 25 | 
            +
              config.color = true
         | 
| 26 | 
            +
              config.tty = true
         | 
| 27 | 
            +
              config.formatter = :documentation
         | 
| 28 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,99 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: middleman-imgix
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 1.0.1
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - Big Cartel
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2016-07-31 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: middleman-core
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ~>
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '4.1'
         | 
| 20 | 
            +
                - - '>='
         | 
| 21 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            +
                    version: 4.1.8
         | 
| 23 | 
            +
              type: :runtime
         | 
| 24 | 
            +
              prerelease: false
         | 
| 25 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 26 | 
            +
                requirements:
         | 
| 27 | 
            +
                - - ~>
         | 
| 28 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            +
                    version: '4.1'
         | 
| 30 | 
            +
                - - '>='
         | 
| 31 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            +
                    version: 4.1.8
         | 
| 33 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 34 | 
            +
              name: imgix
         | 
| 35 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 36 | 
            +
                requirements:
         | 
| 37 | 
            +
                - - ~>
         | 
| 38 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 39 | 
            +
                    version: '1.1'
         | 
| 40 | 
            +
                - - '>='
         | 
| 41 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            +
                    version: 1.1.0
         | 
| 43 | 
            +
              type: :runtime
         | 
| 44 | 
            +
              prerelease: false
         | 
| 45 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 46 | 
            +
                requirements:
         | 
| 47 | 
            +
                - - ~>
         | 
| 48 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 49 | 
            +
                    version: '1.1'
         | 
| 50 | 
            +
                - - '>='
         | 
| 51 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 52 | 
            +
                    version: 1.1.0
         | 
| 53 | 
            +
            description: Use imgix images in your Middleman site.
         | 
| 54 | 
            +
            email:
         | 
| 55 | 
            +
            - dev@bigcartel.com
         | 
| 56 | 
            +
            executables: []
         | 
| 57 | 
            +
            extensions: []
         | 
| 58 | 
            +
            extra_rdoc_files: []
         | 
| 59 | 
            +
            files:
         | 
| 60 | 
            +
            - .gitignore
         | 
| 61 | 
            +
            - .travis.yml
         | 
| 62 | 
            +
            - Gemfile
         | 
| 63 | 
            +
            - Rakefile
         | 
| 64 | 
            +
            - lib/middleman-imgix.rb
         | 
| 65 | 
            +
            - lib/middleman-imgix/extension.rb
         | 
| 66 | 
            +
            - middleman-imgix.gemspec
         | 
| 67 | 
            +
            - spec/features/imgix_spec.rb
         | 
| 68 | 
            +
            - spec/fixtures/app/source/images/test.gif
         | 
| 69 | 
            +
            - spec/fixtures/app/source/images/test.jpg
         | 
| 70 | 
            +
            - spec/fixtures/app/source/images/test.png
         | 
| 71 | 
            +
            - spec/fixtures/app/source/imgix.html.erb
         | 
| 72 | 
            +
            - spec/spec_helper.rb
         | 
| 73 | 
            +
            homepage: https://github.com/bigcartel/middleman-imgix
         | 
| 74 | 
            +
            licenses:
         | 
| 75 | 
            +
            - MIT
         | 
| 76 | 
            +
            metadata: {}
         | 
| 77 | 
            +
            post_install_message: 
         | 
| 78 | 
            +
            rdoc_options: []
         | 
| 79 | 
            +
            require_paths:
         | 
| 80 | 
            +
            - lib
         | 
| 81 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 82 | 
            +
              requirements:
         | 
| 83 | 
            +
              - - '>='
         | 
| 84 | 
            +
                - !ruby/object:Gem::Version
         | 
| 85 | 
            +
                  version: '0'
         | 
| 86 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 87 | 
            +
              requirements:
         | 
| 88 | 
            +
              - - '>='
         | 
| 89 | 
            +
                - !ruby/object:Gem::Version
         | 
| 90 | 
            +
                  version: '0'
         | 
| 91 | 
            +
            requirements: []
         | 
| 92 | 
            +
            rubyforge_project: 
         | 
| 93 | 
            +
            rubygems_version: 2.2.2
         | 
| 94 | 
            +
            signing_key: 
         | 
| 95 | 
            +
            specification_version: 4
         | 
| 96 | 
            +
            summary: Run all of your images (or only some) through imgix for all sorts of fun
         | 
| 97 | 
            +
              features.
         | 
| 98 | 
            +
            test_files: []
         | 
| 99 | 
            +
            has_rdoc: 
         |