light_resizer 0.1.4 → 0.1.6

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
  SHA1:
3
- metadata.gz: bc5c78b129e5231781ba262d6dac0f7752edd977
4
- data.tar.gz: 838eb313c7c7cc204308ae399ab14ed2442df8c7
3
+ metadata.gz: b7392c4235044044545b0f61bfa4a6e74c1c23b2
4
+ data.tar.gz: d1105fc9f115d319c809c7a07093e9aa19cf3b41
5
5
  SHA512:
6
- metadata.gz: 1a146c0e1021f487ae735be544bee6bd1191bd2e83a1a6ab4b339fa5dc288a2268dd813b33c5d4a4176060ae5f36e964e113a2b58610fbcc3a12f7a98b6e742e
7
- data.tar.gz: 69c813f29b65347c5c73e309a7617e2db3b747d000f785d54bfffbb35dd3a80d4d882f737e6df409f3ef2faada0e0e51c58ac29ce5d200b6ba0e2d4f3caa5fc1
6
+ metadata.gz: d224b64e7325571e306e8c264589d5d372a9a72e84035b25d8c636e05784020660a147594f2f10e747b97d7f9a6bf0bce96200f06b271a4b75a71a6df45e4c37
7
+ data.tar.gz: fe2a98b18901abe8ba8e6a39d1c4a43cab003152ade0102bd8e77c8e13d142de962a9e827f60558e032450c064e3dd2c103e02e1a0e4016086b3730d8c0d873a
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  /.idea/
19
+ /vendor/
data/lib/light_resizer.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require 'light_resizer/version'
2
2
  require 'light_resizer/middleware'
3
3
  require 'light_resizer/carrierwave_resize'
4
- require 'mini_magick'
4
+ require 'RMagick'
5
5
 
6
6
  module LightResizer
7
- # Your code goes here...
7
+
8
8
  end
@@ -1,5 +1,6 @@
1
1
  module LightResizer
2
2
  module CarrierWaveResize
3
+
3
4
  def resize_without_crop(width, height)
4
5
  filename_prefix = "#{width}x#{height}_"
5
6
  resized_image_path(filename_prefix, 'png')
@@ -12,15 +13,22 @@ module LightResizer
12
13
  resized_image_path(filename_prefix)
13
14
  end
14
15
 
16
+ def crop(image_path, x, y, width, height)
17
+ image = ::Magick::Image.read(image_path).first
18
+ image.crop!(x.to_i, y.to_i, width.to_i, height.to_i)
19
+ image.write("#{Rails.root}/tmp/cache/#{x}_#{y}_#{width}_#{height}_#{/([^\/]*)$/.match(image_path)[1]}")
20
+ File.open(image.filename)
21
+ end
22
+
15
23
  private
16
- def resized_image_path(prefix, extension = nil)
17
- if url
18
- path = File.dirname(url)
19
- filename = File.basename(url, '.*')
20
- new_filname = prefix + filename + '.png'
21
24
 
22
- File.join(path, 'light_resize', new_filname)
23
- end
25
+ def resized_image_path(prefix, extension = 'png')
26
+ if url
27
+ filename = File.basename(url, '.*')
28
+ new_filename = "#{prefix}#{filename}.#{extension}"
29
+ File.join(File.dirname(url), 'light_resize', new_filename)
24
30
  end
31
+ end
32
+
25
33
  end
26
34
  end
@@ -18,7 +18,7 @@ module LightResizer
18
18
 
19
19
  # Resized file name '150x150_image.png'
20
20
  def filename
21
- resize_prefix + '_' + original_filename
21
+ "#{resize_prefix}_#{original_filename}"
22
22
  end
23
23
 
24
24
  # Relative resize image path '/some_dir/resize/150x150_image.png'
@@ -6,7 +6,7 @@ require 'light_resizer/middleware/resizer'
6
6
  module LightResizer
7
7
  class Middleware
8
8
 
9
- def initialize(app, root, folder='public')
9
+ def initialize(app, root, folder = 'public')
10
10
  @app = app
11
11
  @image_loader = LightResizer::ImageLoader.new File.join(root, folder)
12
12
  @path = LightResizer::Middleware::Path.new
@@ -15,12 +15,11 @@ module LightResizer
15
15
 
16
16
  def call(env)
17
17
  @path.request_path = env['PATH_INFO']
18
-
19
- if (@path.image_path? and resize_request?)
20
- resize
21
- Rack::File.new(@image_loader.resized.root_dir).call(env) #todo check
18
+ if @path.image_path? and resize_request?
19
+ resize
20
+ Rack::File.new(@image_loader.resized.root_dir).call(env) #todo check
22
21
  else
23
- @app.call(env)
22
+ @app.call(env)
24
23
  end
25
24
 
26
25
  end
@@ -28,17 +27,21 @@ module LightResizer
28
27
  def resize_request?
29
28
  @image_loader.original_image_path = @path.image_path
30
29
  @image_loader.resize_prefix = @path.prefix
31
-
32
30
  @image_loader.original_image_exist?
33
31
  end
34
32
 
35
33
  private
36
34
 
37
35
  def resize
38
- unless @image_loader.resized_image_exist?
39
- @resizer.resize(@path.dimensions, @image_loader.original_path, @image_loader.resize_path, @path.crop_path?, @path.image_extension, @path.convert_path?)
40
- end
36
+ @resizer.resize(
37
+ @path.dimensions,
38
+ @image_loader.original_path,
39
+ @image_loader.resize_path,
40
+ @path.crop_path?,
41
+ @path.image_extension,
42
+ @path.convert_path?
43
+ ) unless @image_loader.resized_image_exist?
41
44
  end
42
45
 
43
46
  end
44
- end
47
+ end
@@ -9,6 +9,7 @@ module LightResizer
9
9
  end
10
10
 
11
11
  private
12
+
12
13
  def check_resized_dir(resize_path)
13
14
  dir_name = File.dirname resize_path
14
15
  Dir.mkdir dir_name unless Dir.exist? dir_name
@@ -17,37 +18,28 @@ module LightResizer
17
18
 
18
19
  def store_image(dimensions, original_path, resize_path, crop, extension)
19
20
  original_path += '.*'
20
- @image = MiniMagick::Image.open Dir[original_path].first
21
+ width, height = dimensions.split('x').map &:to_i
21
22
 
22
- @extension = extension[1..-1]
23
+ @image = Magick::Image.read(Dir[original_path].first).first
24
+ @image.format = extension[1..-1]
23
25
 
24
26
  # WARNING: DO NOT CHANGE COMMANDS ORDER FOR @IMAGE OBJECT
25
- # realy, don't do this
26
- @image.format(@extension)
27
- crop ? set_crop_options(dimensions) : set_options(dimensions)
27
+ # really, don't do this
28
+ crop ? crop_image(width, height) : resize_image(width, height)
28
29
 
29
- @image.write (resize_path + extension)
30
+ @image.write(resize_path + extension)
30
31
  end
31
-
32
- def set_options(dimensions)
33
- @image.combine_options do |c|
34
- c.adaptive_resize dimensions
35
- c.add_command 'quality', '0'
36
- c.add_command 'extent', dimensions
37
- c.gravity 'center'
38
- c.background 'transparent'
39
- end
32
+
33
+ def resize_image(width, height)
34
+ @image.resize_to_fit!(width, height)
35
+ @image.background_color = 'Transparent'
36
+ @image = @image.extent(width, height, (@image.columns - width) / 2, (@image.rows - height) / 2) # does not work with simple gravity
40
37
  end
41
-
42
- def set_crop_options(dimensions)
43
- @image.combine_options do |c|
44
- c.adaptive_resize dimensions+'^'
45
- c.add_command 'quality', '0'
46
- c.add_command 'extent', dimensions
47
- c.gravity 'center'
48
- end
38
+
39
+ def crop_image(width, height)
40
+ @image.resize_to_fill!(width, height)
49
41
  end
50
42
 
51
43
  end
52
44
  end
53
- end
45
+ end
@@ -1,3 +1,3 @@
1
1
  module LightResizer
2
- VERSION = "0.1.4"
2
+ VERSION = '0.1.6'
3
3
  end
@@ -4,26 +4,26 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'light_resizer/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "light_resizer"
7
+ spec.name = 'light_resizer'
8
8
  spec.version = LightResizer::VERSION
9
- spec.authors = ["Denis Sergienko", "Vladislav Melanitskiy"]
10
- spec.email = ["olol.toor@gmail.com", "co@rademade.com"]
9
+ spec.authors = ['Denis Sergienko', 'Vladislav Melanitskiy']
10
+ spec.email = %w(olol.toor@gmail.com co@rademade.com)
11
11
  spec.summary = %q{Tiny rack middleware for image resizing.}
12
12
  spec.description = %q{}
13
- spec.homepage = "http://github.com/Rademade/light_resizer"
14
- spec.license = "MIT"
13
+ spec.homepage = 'http://github.com/Rademade/light_resizer'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency "mini_magick", "~> 3.7.0"
22
- spec.add_dependency "rack", "~> 1.5.2"
21
+ spec.add_dependency 'rmagick', '>= 2.13'
22
+ spec.add_dependency 'rack', '>= 1.5'
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.5"
25
- spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rspec"
27
- spec.add_development_dependency "coveralls"
28
- spec.add_development_dependency "pry"
24
+ spec.add_development_dependency 'bundler', '>= 1.5'
25
+ spec.add_development_dependency 'rake'
26
+ spec.add_development_dependency 'rspec', '~> 3.0'
27
+ spec.add_development_dependency 'coveralls'
28
+ spec.add_development_dependency 'pry'
29
29
  end
@@ -16,13 +16,13 @@ describe LightResizer::Middleware do
16
16
  it 'should approve resize request' do
17
17
  resizer.call(env)
18
18
 
19
- expect(resizer.resize_request?).to be_true
19
+ expect(resizer.resize_request?).to be_truthy
20
20
  end
21
21
 
22
22
  it 'should create resized image' do
23
- expect(File.exist?(resize_full_path)).to be_false
23
+ expect(File.exist?(resize_full_path)).to be_falsey
24
24
  resizer.call(env)
25
- expect(File.exist?(resize_full_path)).to be_true
25
+ expect(File.exist?(resize_full_path)).to be_truthy
26
26
  end
27
27
  end
28
28
 
@@ -10,7 +10,7 @@ describe LightResizer::Middleware::Path do
10
10
  path.request_path = '/some_dir/light_resize/150x150_image.png'
11
11
  end
12
12
 
13
- it { expect(path.image_path?).to be_true }
13
+ it { expect(path.image_path?).to be_truthy }
14
14
 
15
15
  it { expect(path.image_path).to eq('/some_dir/image') }
16
16
 
@@ -27,9 +27,9 @@ describe LightResizer::Middleware::Path do
27
27
  path.request_path = '/some_dir/light_resize/150x150_crop_convert_image.png'
28
28
  end
29
29
 
30
- it { expect(path.crop_path?).to be_true }
30
+ it { expect(path.crop_path?).to be_truthy }
31
31
 
32
- it { expect(path.convert_path?).to be_true }
32
+ it { expect(path.convert_path?).to be_truthy }
33
33
 
34
34
  it { expect(path.image_path).to eq('/some_dir/image') }
35
35
 
@@ -46,7 +46,7 @@ describe LightResizer::Middleware::Path do
46
46
  path.request_path = '/asdada/123acad/some_dir/imdage.png'
47
47
  end
48
48
 
49
- it { expect(path.image_path?).to be_false }
49
+ it { expect(path.image_path?).to be_falsey }
50
50
 
51
51
  end
52
52
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: light_resizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Sergienko
@@ -9,48 +9,48 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-03 00:00:00.000000000 Z
12
+ date: 2014-12-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: mini_magick
15
+ name: rmagick
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 3.7.0
20
+ version: '2.13'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 3.7.0
27
+ version: '2.13'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rack
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 1.5.2
34
+ version: '1.5'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: 1.5.2
41
+ version: '1.5'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: bundler
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '1.5'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '1.5'
56
56
  - !ruby/object:Gem::Dependency
@@ -71,16 +71,16 @@ dependencies:
71
71
  name: rspec
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: '3.0'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: '3.0'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: coveralls
86
86
  requirement: !ruby/object:Gem::Requirement