light_resizer 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
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