dynamic_image 2.0.21 → 2.0.22

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7183bc59ab57bc659f3d38e0c2bd1fa250689d1e4647dfcc68e0eddceb4c2260
4
- data.tar.gz: 882038f115a0e2d78684f02a19672138d8a68a3e36af0ac74d736a7d4056083a
3
+ metadata.gz: bfb9c218b8902487079281c04685088ba37cee03ba5944425c8e391869ed1f54
4
+ data.tar.gz: 6be8904c347f0721fe0d52f4693c65c7a7c96d77d81b169c00b83859df46c741
5
5
  SHA512:
6
- metadata.gz: c2a6a1f35e3458693ae0d0c5b9eaca4fd5ddcd70164e070f67f80236723befc57d677d0de673bf94afb0416458cde7bc04648f7bd512d5682984af6ccb4adeae
7
- data.tar.gz: b6ca975270f79fb9100aaeb1d2083f30adf7196c77783f663b741f84144c49bc6b42338ba220b050fca4637746f57328adff2d88f9fc9b48c829ff08d9157e72
6
+ metadata.gz: 712f4d5d9077baec9e3f67d01ae686a38ef380686a37a5c6c91b2e0d27db50e2623cd30c3b25e107a3b03fc6e0712fe20bc0643fc47ae73473ee735e94d031b5
7
+ data.tar.gz: 8ef5cd0021f2d32bc0876923c19f9e059edd5fdb52e06893cbab4dc4d739f72551f5bf53da8ee0007854f78d2cb5cc1de157542e40be9d27b17c6eeee735ccdb
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  [![Version](https://img.shields.io/gem/v/dynamic_image.svg?style=flat)](https://rubygems.org/gems/dynamic_image)
2
- [![Build Status](https://travis-ci.org/elektronaut/dynamic_image.svg?branch=master)](https://travis-ci.org/elektronaut/dynamic_image)
2
+ ![Build](https://github.com/elektronaut/dynamic_image/workflows/Build/badge.svg)
3
3
  [![Code Climate](https://codeclimate.com/github/elektronaut/dynamic_image/badges/gpa.svg)](https://codeclimate.com/github/elektronaut/dynamic_image)
4
4
  [![Code Climate](https://codeclimate.com/github/elektronaut/dynamic_image/badges/coverage.svg)](https://codeclimate.com/github/elektronaut/dynamic_image)
5
5
  [![Inline docs](http://inch-ci.org/github/elektronaut/dynamic_image.svg)](http://inch-ci.org/github/elektronaut/dynamic_image)
@@ -8,7 +8,7 @@ module DynamicImage
8
8
 
9
9
  module ClassMethods
10
10
  def belongs_to_image(name, scope = nil, **options)
11
- belongs_to(name, scope, options)
11
+ belongs_to(name, scope, **options)
12
12
 
13
13
  define_method "#{name}=" do |new_image|
14
14
  if new_image.present? && !new_image.is_a?(DynamicImage::Model)
@@ -59,7 +59,7 @@ module DynamicImage
59
59
  render(file: File.join(File.dirname(__FILE__), "templates/show"),
60
60
  layout: false, locals: { options: options })
61
61
  end
62
- format.any(:gif, :jpeg, :png, :tiff, :webp) do
62
+ format.any(:gif, :jpeg, :jpg, :png, :tiff, :webp) do
63
63
  send_image(DynamicImage::ProcessedImage.new(@record, options))
64
64
  end
65
65
  end
@@ -69,7 +69,7 @@ module DynamicImage
69
69
  return unless stale?(@record)
70
70
 
71
71
  respond_to do |format|
72
- format.any(:gif, :jpeg, :png, :tiff, :webp) do
72
+ format.any(:gif, :jpeg, :jpg, :png, :tiff, :webp) do
73
73
  send_data(@record.data,
74
74
  filename: filename,
75
75
  content_type: @record.content_type,
@@ -31,7 +31,7 @@ module DynamicImage
31
31
  ActiveSupport.on_load(:active_record) do
32
32
  send :include, DynamicImage::BelongsTo
33
33
  end
34
- ActionDispatch::Routing::Mapper.send :include, DynamicImage::Routing
34
+ ActionDispatch::Routing::Mapper.include DynamicImage::Routing
35
35
 
36
36
  ActionDispatch::ExceptionWrapper.rescue_responses.merge!(
37
37
  "DynamicImage::Errors::InvalidSignature" => :unauthorized
@@ -149,8 +149,8 @@ module DynamicImage
149
149
  @uncropped
150
150
  end
151
151
 
152
- def vector(x, y)
153
- Vector2d.new(x, y)
152
+ def vector(width, height)
153
+ Vector2d.new(width, height)
154
154
  end
155
155
  end
156
156
  end
@@ -82,8 +82,8 @@ module DynamicImage
82
82
 
83
83
  private
84
84
 
85
- def vector(x, y)
86
- Vector2d.new(x, y)
85
+ def vector(width, height)
86
+ Vector2d.new(width, height)
87
87
  end
88
88
  end
89
89
  end
@@ -70,27 +70,30 @@ module DynamicImage
70
70
  private
71
71
 
72
72
  def coalesced(image)
73
- return image unless gif?
73
+ gif? ? DynamicImage::ImageReader.new(image.coalesce.to_blob).read : image
74
+ end
74
75
 
75
- DynamicImage::ImageReader.new(image.coalesce.to_blob).read
76
+ def create_variant(size)
77
+ record.variants.create(
78
+ variant_params(size).merge(filename: record.filename,
79
+ content_type: content_type,
80
+ data: crop_and_resize(size))
81
+ )
76
82
  end
77
83
 
78
84
  def crop_and_resize(size)
79
85
  normalized do |image|
80
- if record.cropped? || size != record.size
81
- image.crop(image_sizing.crop_geometry_string(size))
82
- image.resize(size)
83
- end
86
+ next unless record.cropped? || size != record.size
87
+
88
+ image.crop(image_sizing.crop_geometry_string(size))
89
+ image.resize(size)
84
90
  end
85
91
  end
86
92
 
87
93
  def find_or_create_variant(size)
88
- record.variants.find_by(variant_params(size)) ||
89
- record.variants.create(
90
- variant_params(size).merge(filename: record.filename,
91
- content_type: content_type,
92
- data: crop_and_resize(size))
93
- )
94
+ record.variants.find_by(variant_params(size)) || create_variant(size)
95
+ rescue ActiveRecord::RecordNotUnique
96
+ record.variants.find_by(variant_params(size))
94
97
  end
95
98
 
96
99
  def format
@@ -152,12 +155,9 @@ module DynamicImage
152
155
  def variant_params(size)
153
156
  crop_size, crop_start = image_sizing.crop_geometry(size)
154
157
 
155
- { width: size.x.round,
156
- height: size.y.round,
157
- crop_width: crop_size.x,
158
- crop_height: crop_size.y,
159
- crop_start_x: crop_start.x,
160
- crop_start_y: crop_start.y,
158
+ { width: size.x.round, height: size.y.round,
159
+ crop_width: crop_size.x, crop_height: crop_size.y,
160
+ crop_start_x: crop_start.x, crop_start_y: crop_start.y,
161
161
  format: format }
162
162
  end
163
163
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DynamicImage
4
- VERSION = "2.0.21"
4
+ VERSION = "2.0.22"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_image
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.21
4
+ version: 2.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inge Jørgensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-04 00:00:00.000000000 Z
11
+ date: 2020-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dis
@@ -78,6 +78,20 @@ dependencies:
78
78
  - - ">="
79
79
  - !ruby/object:Gem::Version
80
80
  version: 2.2.1
81
+ - !ruby/object:Gem::Dependency
82
+ name: rails-controller-testing
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
81
95
  - !ruby/object:Gem::Dependency
82
96
  name: rspec-rails
83
97
  requirement: !ruby/object:Gem::Requirement
@@ -92,6 +106,20 @@ dependencies:
92
106
  - - "~>"
93
107
  - !ruby/object:Gem::Version
94
108
  version: 3.7.0
109
+ - !ruby/object:Gem::Dependency
110
+ name: simplecov
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: 0.17.1
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: 0.17.1
95
123
  - !ruby/object:Gem::Dependency
96
124
  name: sqlite3
97
125
  requirement: !ruby/object:Gem::Requirement