retina_rails 0.0.4 → 0.0.5
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.
- data/README.md +4 -2
- data/lib/retina_rails/carrierwave.rb +12 -6
- data/lib/retina_rails/version.rb +1 -1
- data/retina_rails.gemspec +10 -9
- data/spec/carrierwave_spec.rb +38 -1
- data/spec/fixtures/db/retina_rails.sqlite3 +0 -0
- data/spec/spec_helper.rb +7 -1
- metadata +18 -2
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
## Retina Rails
|
1
|
+
## Retina Rails
|
2
|
+
|
3
|
+
[](http://badge.fury.io/rb/retina_rails) [](http://travis-ci.org/jhnvz/retina_rails) [](https://coveralls.io/r/jhnvz/retina_rails) [](https://codeclimate.com/github/jhnvz/retina_rails) [](https://gemnasium.com/jhnvz/retina_rails)
|
2
4
|
|
3
5
|
Makes your live easier optimizing an application for retina displays.
|
4
6
|
|
@@ -80,4 +82,4 @@ Note on Patches/Pull Requests
|
|
80
82
|
Copyright
|
81
83
|
------------
|
82
84
|
|
83
|
-
Copyright (c) 2012 Johan van Zonneveld. See LICENSE for details.
|
85
|
+
Copyright (c) 2012 Johan van Zonneveld. See LICENSE for details.
|
@@ -9,17 +9,18 @@ module RetinaRails
|
|
9
9
|
## Define retina version based on defined versions in the uploader class
|
10
10
|
versions.each do |v|
|
11
11
|
|
12
|
-
|
12
|
+
processors = v[1][:uploader].processors.dup
|
13
|
+
dimensions_processor = nil
|
13
14
|
|
14
15
|
## Check if there's a resize processor to get the dimensions
|
15
|
-
|
16
|
-
|
16
|
+
processors.each do |p|
|
17
|
+
dimensions_processor = processors.delete(p) if p[0].to_s.scan(/resize_to_fill|resize_to_limit|resize_to_fit|resize_and_pad/).any?
|
17
18
|
end
|
18
19
|
|
19
20
|
## Define a retina version if processor is present
|
20
|
-
if
|
21
|
+
if dimensions_processor
|
21
22
|
|
22
|
-
options =
|
23
|
+
options = dimensions_processor[1].dup
|
23
24
|
|
24
25
|
width = options[0] * 2
|
25
26
|
height = options[1] * 2
|
@@ -30,7 +31,12 @@ module RetinaRails
|
|
30
31
|
options.insert(0, width)
|
31
32
|
|
32
33
|
version "#{v[0]}_retina" do
|
33
|
-
process
|
34
|
+
process dimensions_processor[0] => options
|
35
|
+
|
36
|
+
## Set other processors
|
37
|
+
processors.each do |processor|
|
38
|
+
process processor[0] => processor[1]
|
39
|
+
end
|
34
40
|
end
|
35
41
|
|
36
42
|
end
|
data/lib/retina_rails/version.rb
CHANGED
data/retina_rails.gemspec
CHANGED
@@ -4,10 +4,10 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'retina_rails/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
|
-
gem.name =
|
7
|
+
gem.name = 'retina_rails'
|
8
8
|
gem.version = RetinaRails::VERSION
|
9
|
-
gem.authors = [
|
10
|
-
gem.email = [
|
9
|
+
gem.authors = ['Johan van Zonneveld']
|
10
|
+
gem.email = ['johan@vzonneveld.nl']
|
11
11
|
gem.homepage = 'https://github.com/jhnvz/retina_rails.git'
|
12
12
|
gem.summary = %q{Makes your live easier optimizing for retina displays}
|
13
13
|
gem.description = %q{Retina Rails automatically generates retina versions of your uploaded images (CarrierWave or Paperclip). It detects if a visitor has a retina display and if so it displays the @2x version}
|
@@ -15,15 +15,16 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
-
gem.require_paths = [
|
18
|
+
gem.require_paths = ['lib']
|
19
19
|
|
20
|
-
gem.add_development_dependency
|
21
|
-
gem.add_development_dependency
|
22
|
-
gem.add_development_dependency
|
23
|
-
gem.add_development_dependency
|
20
|
+
gem.add_development_dependency 'bundler', '>= 1.0.0'
|
21
|
+
gem.add_development_dependency 'rake'
|
22
|
+
gem.add_development_dependency 'rspec', '>= 2.3'
|
23
|
+
gem.add_development_dependency 'rspec-rails', '~> 2.0'
|
24
24
|
gem.add_development_dependency 'carrierwave'
|
25
25
|
gem.add_development_dependency 'paperclip'
|
26
|
-
gem.add_development_dependency
|
26
|
+
gem.add_development_dependency 'sqlite3'
|
27
|
+
gem.add_development_dependency 'coveralls'
|
27
28
|
|
28
29
|
gem.add_dependency 'rails', '>= 3.0'
|
29
30
|
gem.add_dependency 'rmagick'
|
data/spec/carrierwave_spec.rb
CHANGED
@@ -8,6 +8,21 @@ class AnonymousUploader < CarrierWave::Uploader::Base
|
|
8
8
|
process :resize_to_fill => [30, 30]
|
9
9
|
end
|
10
10
|
|
11
|
+
version :small_without_dimensions do
|
12
|
+
process :desaturate
|
13
|
+
end
|
14
|
+
|
15
|
+
version :small_multiple_processors do
|
16
|
+
process :resize_to_fill => [30, 30]
|
17
|
+
process :desaturate
|
18
|
+
end
|
19
|
+
|
20
|
+
def desaturate
|
21
|
+
manipulate! do |img|
|
22
|
+
img = img.quantize 256, Magick::GRAYColorspace
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
11
26
|
version :small_without_processor
|
12
27
|
|
13
28
|
include RetinaRails::CarrierWave
|
@@ -46,7 +61,7 @@ describe RetinaRails::CarrierWave do
|
|
46
61
|
@uploader.remove!
|
47
62
|
end
|
48
63
|
|
49
|
-
context 'with processor' do
|
64
|
+
context 'with dimensions processor' do
|
50
65
|
|
51
66
|
its(:versions) { should include :small_retina }
|
52
67
|
|
@@ -60,6 +75,28 @@ describe RetinaRails::CarrierWave do
|
|
60
75
|
|
61
76
|
end
|
62
77
|
|
78
|
+
context 'without dimensions processor' do
|
79
|
+
|
80
|
+
its(:versions) { should_not include :small_without_dimensions_retina }
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
context 'with multiple processors' do
|
85
|
+
|
86
|
+
its(:versions) { should include :small_multiple_processors_retina }
|
87
|
+
|
88
|
+
it { subject.versions[:small_multiple_processors][:uploader].processors.should include([:desaturate, [], nil]) }
|
89
|
+
|
90
|
+
it { @uploader.small_multiple_processors.should have_dimensions(30, 30) }
|
91
|
+
it { @uploader.small_multiple_processors_retina.should have_dimensions(60, 60) }
|
92
|
+
|
93
|
+
it { File.basename(@uploader.small_multiple_processors.current_path, 'jpeg').should include 'small_'}
|
94
|
+
|
95
|
+
it { File.basename(@uploader.small_multiple_processors_retina.current_path, 'jpeg').should include '@2x'}
|
96
|
+
it { File.basename(@uploader.small_multiple_processors_retina.current_path, 'jpeg').should_not include 'retina_'}
|
97
|
+
|
98
|
+
end
|
99
|
+
|
63
100
|
context 'without processor' do
|
64
101
|
|
65
102
|
its(:versions) { should include :small_without_processor }
|
Binary file
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: retina_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -123,6 +123,22 @@ dependencies:
|
|
123
123
|
- - ! '>='
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: coveralls
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
126
142
|
- !ruby/object:Gem::Dependency
|
127
143
|
name: rails
|
128
144
|
requirement: !ruby/object:Gem::Requirement
|