image_optim 0.31.0 → 0.31.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 +4 -4
- data/.github/workflows/check.yml +30 -0
- data/CHANGELOG.markdown +4 -0
- data/README.markdown +0 -1
- data/image_optim.gemspec +2 -2
- data/lib/image_optim/runner/option_parser.rb +1 -1
- data/spec/spec_helper.rb +7 -5
- metadata +6 -7
- data/.appveyor.yml +0 -55
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 481b027ab78658543ea138ff4d7547a609dca8b31eea02f8cb003318f10c67eb
         | 
| 4 | 
            +
              data.tar.gz: e11f9f69a28e6a3e7a0028579cb36e78b5dd1457943a884f8071d6de17e7031e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 961044af3b8ef65acbdc6bbce6a278e8aefe246a1ea53a6eceea5bb025f02c7adeecf457843fd2244a5bc21fa0f303094a16f4947cda41fc9ac7372dbcce5f46
         | 
| 7 | 
            +
              data.tar.gz: ea8dcb08f8fffd1aad10506bdb3ab2bdf0043f30d08b68e2cb0d2195562492d6477619e3bdcf830a9bec9ead04adfe36b195b136fba61a1e7d4f96835c61c854
         | 
    
        data/.github/workflows/check.yml
    CHANGED
    
    | @@ -32,6 +32,36 @@ jobs: | |
| 32 32 | 
             
                - run: curl -L "https://github.com/shssoichiro/oxipng/releases/download/v4.0.3/oxipng-4.0.3-x86_64-unknown-linux-musl.tar.gz" | tar -xz -C /usr/local/bin --strip-components 1 --wildcards '*oxipng'
         | 
| 33 33 | 
             
                - run: bundle exec image_optim --info
         | 
| 34 34 | 
             
                - run: bundle exec rspec
         | 
| 35 | 
            +
              windows:
         | 
| 36 | 
            +
                runs-on: windows-latest
         | 
| 37 | 
            +
                strategy:
         | 
| 38 | 
            +
                  matrix:
         | 
| 39 | 
            +
                    ruby:
         | 
| 40 | 
            +
                    - '2.6'
         | 
| 41 | 
            +
                    - '2.7'
         | 
| 42 | 
            +
                    - '3.0'
         | 
| 43 | 
            +
                  fail-fast: false
         | 
| 44 | 
            +
                steps:
         | 
| 45 | 
            +
                - uses: actions/checkout@v2
         | 
| 46 | 
            +
                - uses: ruby/setup-ruby@v1
         | 
| 47 | 
            +
                  with:
         | 
| 48 | 
            +
                    ruby-version: "${{ matrix.ruby }}"
         | 
| 49 | 
            +
                    bundler-cache: true
         | 
| 50 | 
            +
                - uses: actions/cache@v2
         | 
| 51 | 
            +
                  with:
         | 
| 52 | 
            +
                    path: "$HOME/bin"
         | 
| 53 | 
            +
                    key: ${{ runner.os }}
         | 
| 54 | 
            +
                - run: |
         | 
| 55 | 
            +
                    mkdir "$HOME/bin"
         | 
| 56 | 
            +
                    git fetch origin windows-binaries
         | 
| 57 | 
            +
                    git --work-tree="$HOME/bin" checkout origin/windows-binaries -- '*.exe'
         | 
| 58 | 
            +
                    echo "$HOME/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
         | 
| 59 | 
            +
                - run: |
         | 
| 60 | 
            +
                    choco install --no-progress imagemagick
         | 
| 61 | 
            +
                    ls C:\'Program Files'\ImageMagick* | % FullName | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
         | 
| 62 | 
            +
                - run: npm install -g svgo
         | 
| 63 | 
            +
                - run: bundle exec image_optim --info
         | 
| 64 | 
            +
                - run: bundle exec rspec
         | 
| 35 65 | 
             
              coverage:
         | 
| 36 66 | 
             
                runs-on: ubuntu-latest
         | 
| 37 67 | 
             
                env:
         | 
    
        data/CHANGELOG.markdown
    CHANGED
    
    | @@ -2,6 +2,10 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            ## unreleased
         | 
| 4 4 |  | 
| 5 | 
            +
            ## v0.31.1 (2021-10-21)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            * Allow image_size 3 [@toy](https://github.com/toy)
         | 
| 8 | 
            +
             | 
| 5 9 | 
             
            ## v0.31.0 (2021-10-03)
         | 
| 6 10 |  | 
| 7 11 | 
             
            * Add support for Oxipng [#167](https://github.com/toy/image_optim/issues/167) [#190](https://github.com/toy/image_optim/pull/190) [@oblakeerickson](https://github.com/oblakeerickson)
         | 
    
        data/README.markdown
    CHANGED
    
    | @@ -1,6 +1,5 @@ | |
| 1 1 | 
             
            [](https://rubygems.org/gems/image_optim)
         | 
| 2 2 | 
             
            [](https://github.com/toy/image_optim/actions/workflows/check.yml)
         | 
| 3 | 
            -
            [](https://ci.appveyor.com/project/toy/image-optim)
         | 
| 4 3 | 
             
            [](https://codeclimate.com/github/toy/image_optim)
         | 
| 5 4 | 
             
            [](https://codeclimate.com/github/toy/image_optim)
         | 
| 6 5 | 
             
            [](https://depfu.com/github/toy/image_optim)
         | 
    
        data/image_optim.gemspec
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            Gem::Specification.new do |s|
         | 
| 4 4 | 
             
              s.name        = 'image_optim'
         | 
| 5 | 
            -
              s.version     = '0.31. | 
| 5 | 
            +
              s.version     = '0.31.1'
         | 
| 6 6 | 
             
              s.summary     = %q{Command line tool and ruby interface to optimize (lossless compress, optionally lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, oxipng, pngcrush, pngout, pngquant, svgo)}
         | 
| 7 7 | 
             
              s.homepage    = "https://github.com/toy/#{s.name}"
         | 
| 8 8 | 
             
              s.authors     = ['Ivan Kuchin']
         | 
| @@ -28,7 +28,7 @@ You can safely remove `config.assets.image_optim = false` if you are not going t | |
| 28 28 | 
             
            EOF
         | 
| 29 29 |  | 
| 30 30 | 
             
              s.add_dependency 'fspath', '~> 3.0'
         | 
| 31 | 
            -
              s.add_dependency 'image_size', '>= 1.5', '<  | 
| 31 | 
            +
              s.add_dependency 'image_size', '>= 1.5', '< 4'
         | 
| 32 32 | 
             
              s.add_dependency 'exifr', '~> 1.2', '>= 1.2.2'
         | 
| 33 33 | 
             
              s.add_dependency 'progress', '~> 3.0', '>= 3.0.1'
         | 
| 34 34 | 
             
              s.add_dependency 'in_threads', '~> 1.3'
         | 
| @@ -84,7 +84,7 @@ ImageOptim::Runner::OptionParser::DEFINE = proc do |op, options| | |
| 84 84 | 
             
              ImageOptim::TrueFalseNil.add_to_option_parser(op)
         | 
| 85 85 | 
             
              ImageOptim::NonNegativeIntegerRange.add_to_option_parser(op)
         | 
| 86 86 |  | 
| 87 | 
            -
              op.banner = <<-TEXT.gsub(/^\s*\|/, '') | 
| 87 | 
            +
              op.banner = <<-TEXT.gsub(/^\s*\|/, '')
         | 
| 88 88 | 
             
                |#{ImageOptim.full_version}
         | 
| 89 89 | 
             
                |
         | 
| 90 90 | 
             
                |Usage:
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -23,16 +23,18 @@ RSpec.configure do |c| | |
| 23 23 | 
             
              c.order = :random
         | 
| 24 24 | 
             
            end
         | 
| 25 25 |  | 
| 26 | 
            +
            IMAGEMAGICK_PREFIX = ImageOptim::Cmd.capture('which magick').empty? ? [] : %w[magick]
         | 
| 27 | 
            +
             | 
| 26 28 | 
             
            def flatten_animation(image)
         | 
| 27 29 | 
             
              if image.image_format == :gif
         | 
| 28 30 | 
             
                flattened = image.temp_path
         | 
| 29 | 
            -
                command = %W[
         | 
| 31 | 
            +
                command = (IMAGEMAGICK_PREFIX + %W[
         | 
| 30 32 | 
             
                  convert
         | 
| 31 33 | 
             
                  #{image}
         | 
| 32 34 | 
             
                  -coalesce
         | 
| 33 35 | 
             
                  -append
         | 
| 34 36 | 
             
                  #{flattened}
         | 
| 35 | 
            -
                ].shelljoin
         | 
| 37 | 
            +
                ]).shelljoin
         | 
| 36 38 | 
             
                expect(ImageOptim::Cmd.run(command)).to be_truthy
         | 
| 37 39 | 
             
                flattened
         | 
| 38 40 | 
             
              else
         | 
| @@ -43,7 +45,7 @@ end | |
| 43 45 | 
             
            def mepp(image_a, image_b)
         | 
| 44 46 | 
             
              coalesce_a = flatten_animation(image_a)
         | 
| 45 47 | 
             
              coalesce_b = flatten_animation(image_b)
         | 
| 46 | 
            -
              output = ImageOptim::Cmd.capture(%W[
         | 
| 48 | 
            +
              output = ImageOptim::Cmd.capture((IMAGEMAGICK_PREFIX + %W[
         | 
| 47 49 | 
             
                compare
         | 
| 48 50 | 
             
                -metric MEPP
         | 
| 49 51 | 
             
                -alpha Background
         | 
| @@ -51,7 +53,7 @@ def mepp(image_a, image_b) | |
| 51 53 | 
             
                #{coalesce_b.to_s.shellescape}
         | 
| 52 54 | 
             
                #{ImageOptim::Path::NULL}
         | 
| 53 55 | 
             
                2>&1
         | 
| 54 | 
            -
              ].join(' '))
         | 
| 56 | 
            +
              ]).join(' '))
         | 
| 55 57 | 
             
              unless [0, 1].include?($CHILD_STATUS.exitstatus)
         | 
| 56 58 | 
             
                fail "compare #{image_a} with #{image_b} failed with `#{output}`"
         | 
| 57 59 | 
             
              end
         | 
| @@ -71,7 +73,7 @@ RSpec::Matchers.define :be_similar_to do |expected, max_difference| | |
| 71 73 | 
             
              end
         | 
| 72 74 | 
             
              failure_message do |actual|
         | 
| 73 75 | 
             
                "expected #{actual} to have at most #{max_difference} difference from "\
         | 
| 74 | 
            -
                  "#{expected}, got  | 
| 76 | 
            +
                  "#{expected}, got mean error per pixel of #{@diff}"
         | 
| 75 77 | 
             
              end
         | 
| 76 78 | 
             
            end
         | 
| 77 79 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: image_optim
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.31. | 
| 4 | 
            +
              version: 0.31.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ivan Kuchin
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-10- | 
| 11 | 
            +
            date: 2021-10-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: fspath
         | 
| @@ -33,7 +33,7 @@ dependencies: | |
| 33 33 | 
             
                    version: '1.5'
         | 
| 34 34 | 
             
                - - "<"
         | 
| 35 35 | 
             
                  - !ruby/object:Gem::Version
         | 
| 36 | 
            -
                    version: ' | 
| 36 | 
            +
                    version: '4'
         | 
| 37 37 | 
             
              type: :runtime
         | 
| 38 38 | 
             
              prerelease: false
         | 
| 39 39 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -43,7 +43,7 @@ dependencies: | |
| 43 43 | 
             
                    version: '1.5'
         | 
| 44 44 | 
             
                - - "<"
         | 
| 45 45 | 
             
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            -
                    version: ' | 
| 46 | 
            +
                    version: '4'
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: exifr
         | 
| 49 49 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -167,7 +167,6 @@ executables: | |
| 167 167 | 
             
            extensions: []
         | 
| 168 168 | 
             
            extra_rdoc_files: []
         | 
| 169 169 | 
             
            files:
         | 
| 170 | 
            -
            - ".appveyor.yml"
         | 
| 171 170 | 
             
            - ".github/workflows/check.yml"
         | 
| 172 171 | 
             
            - ".gitignore"
         | 
| 173 172 | 
             
            - ".pre-commit-hooks.yaml"
         | 
| @@ -286,7 +285,7 @@ licenses: | |
| 286 285 | 
             
            metadata:
         | 
| 287 286 | 
             
              bug_tracker_uri: https://github.com/toy/image_optim/issues
         | 
| 288 287 | 
             
              changelog_uri: https://github.com/toy/image_optim/blob/master/CHANGELOG.markdown
         | 
| 289 | 
            -
              documentation_uri: https://www.rubydoc.info/gems/image_optim/0.31. | 
| 288 | 
            +
              documentation_uri: https://www.rubydoc.info/gems/image_optim/0.31.1
         | 
| 290 289 | 
             
              source_code_uri: https://github.com/toy/image_optim
         | 
| 291 290 | 
             
            post_install_message: |
         | 
| 292 291 | 
             
              Rails image assets optimization is extracted into image_optim_rails gem
         | 
| @@ -305,7 +304,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 305 304 | 
             
                - !ruby/object:Gem::Version
         | 
| 306 305 | 
             
                  version: '0'
         | 
| 307 306 | 
             
            requirements: []
         | 
| 308 | 
            -
            rubygems_version: 3.2. | 
| 307 | 
            +
            rubygems_version: 3.2.29
         | 
| 309 308 | 
             
            signing_key:
         | 
| 310 309 | 
             
            specification_version: 4
         | 
| 311 310 | 
             
            summary: Command line tool and ruby interface to optimize (lossless compress, optionally
         | 
    
        data/.appveyor.yml
    DELETED
    
    | @@ -1,55 +0,0 @@ | |
| 1 | 
            -
            version: '{build}-{branch}'
         | 
| 2 | 
            -
            install:
         | 
| 3 | 
            -
              - mkdir tmp\bin || exit 0
         | 
| 4 | 
            -
              - set PATH=C:\Ruby25-x64\bin;%cd%\tmp\bin;%PATH%
         | 
| 5 | 
            -
              - ruby --version
         | 
| 6 | 
            -
              - gem --version
         | 
| 7 | 
            -
              - bundle package --all
         | 
| 8 | 
            -
             | 
| 9 | 
            -
              - ps: Install-Product node
         | 
| 10 | 
            -
             | 
| 11 | 
            -
              - ps: git --work-tree=tmp\bin checkout origin/windows-binaries -- '*.exe'
         | 
| 12 | 
            -
             | 
| 13 | 
            -
              - ps: | # svgo
         | 
| 14 | 
            -
                  npm install -g svgo
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              - ps: | # ImageMagick
         | 
| 17 | 
            -
                  if ((-not (test-path tmp/bin/convert.exe)) -or (-not (test-path tmp/bin/compare.exe)) -or (-not (test-path tmp/bin/magic.xml))) {
         | 
| 18 | 
            -
                    choco install -y imagemagick.tool
         | 
| 19 | 
            -
                    cp C:\ProgramData\chocolatey\lib\imagemagick.tool\tools\convert.exe tmp\bin
         | 
| 20 | 
            -
                    cp C:\ProgramData\chocolatey\lib\imagemagick.tool\tools\compare.exe tmp\bin
         | 
| 21 | 
            -
                    cp C:\ProgramData\chocolatey\lib\imagemagick.tool\tools\magic.xml tmp\bin
         | 
| 22 | 
            -
                  }
         | 
| 23 | 
            -
             | 
| 24 | 
            -
              - bundle exec image_optim --info --allow-lossy --no-pack
         | 
| 25 | 
            -
            cache:
         | 
| 26 | 
            -
              - tmp/bin
         | 
| 27 | 
            -
            build: off
         | 
| 28 | 
            -
            test_script:
         | 
| 29 | 
            -
              - ps: |
         | 
| 30 | 
            -
                  $path = $env:Path
         | 
| 31 | 
            -
                  $rubypaths = ls -Path C:\Ruby*\bin
         | 
| 32 | 
            -
                  foreach ($rubypath in $rubypaths) {
         | 
| 33 | 
            -
                    $env:Path = "$rubypath;" + $path
         | 
| 34 | 
            -
                    ruby -e "abort unless RUBY_VERSION > '2.3'"
         | 
| 35 | 
            -
                    if ($LASTEXITCODE -gt 0) {
         | 
| 36 | 
            -
                      continue
         | 
| 37 | 
            -
                    }
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                    echo "################################ $rubypath ################################"
         | 
| 40 | 
            -
                    ruby --version
         | 
| 41 | 
            -
                    gem --version
         | 
| 42 | 
            -
                    bundle package --all
         | 
| 43 | 
            -
                    bundle install --local -j4
         | 
| 44 | 
            -
                    bundle exec rspec
         | 
| 45 | 
            -
                    if ($LASTEXITCODE -gt 0) {
         | 
| 46 | 
            -
                      exit 1
         | 
| 47 | 
            -
                    }
         | 
| 48 | 
            -
                    rm tmp/optimize_test -recurse -force
         | 
| 49 | 
            -
                    cp spec/images tmp/optimize_test -recurse -force
         | 
| 50 | 
            -
                    bundle exec image_optim --allow-lossy -r tmp/optimize_test
         | 
| 51 | 
            -
                    if ($LASTEXITCODE -gt 0) {
         | 
| 52 | 
            -
                      exit 1
         | 
| 53 | 
            -
                    }
         | 
| 54 | 
            -
                  }
         | 
| 55 | 
            -
                  $env:Path = $path
         |