nanoc-image-compressor 0.1.0 → 0.1.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.
@@ -3,3 +3,6 @@ rvm:
3
3
  - 1.8.7
4
4
  - 1.9.2
5
5
  - 1.9.3
6
+ before_install:
7
+ - sudo apt-get update
8
+ - sudo apt-get install -y advancecomp gifsicle jpegoptim libjpeg-progs optipng pngcrush
@@ -6,7 +6,7 @@ module Nanoc
6
6
  module Filters
7
7
  class ImageCompressor < Nanoc::Filter
8
8
 
9
- VERSION = '0.1.0'
9
+ VERSION = '0.1.1'
10
10
 
11
11
  identifier :image_compressor
12
12
  type :binary
@@ -21,6 +21,10 @@ module Nanoc
21
21
  result = io.optimize_image(filename)
22
22
  path = result ? result.to_s : filename
23
23
  FileUtils.cp path, output_filename
24
+ # ensure the output permissions match the input
25
+ in_mode = File.stat(filename).mode & 0777
26
+ out_mode = File.stat(output_filename).mode & 0777
27
+ File.chmod(in_mode, output_filename) if in_mode != out_mode
24
28
  end
25
29
 
26
30
  end
@@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
12
12
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
13
13
  gem.name = "nanoc-image-compressor"
14
14
  gem.require_paths = ["lib"]
15
- gem.version = '0.1.0'
15
+ gem.version = '0.1.1'
16
16
 
17
17
  gem.add_dependency 'nanoc', '>= 3.3.1'
18
18
  gem.add_dependency 'image_optim'
File without changes
File without changes
File without changes
@@ -5,9 +5,9 @@ require 'nanoc/filters/image_compressor'
5
5
 
6
6
  describe Nanoc::Filters::ImageCompressor do
7
7
 
8
- let(:gif_path) { File.expand_path('../test.gif', __FILE__) }
9
- let(:jpg_path) { File.expand_path('../test.jpg', __FILE__) }
10
- let(:png_path) { File.expand_path('../test.png', __FILE__) }
8
+ let(:gif_path) { File.expand_path('../fixtures/test.gif', __FILE__) }
9
+ let(:jpg_path) { File.expand_path('../fixtures/test.jpg', __FILE__) }
10
+ let(:png_path) { File.expand_path('../fixtures/test.png', __FILE__) }
11
11
  let(:run_options) { { :pngout => false } }
12
12
 
13
13
  before do
@@ -22,6 +22,37 @@ describe Nanoc::Filters::ImageCompressor do
22
22
  let(:extension) { path.sub(/^.+\.([a-z]+)$/, '\1') }
23
23
  let(:output_size) { File.size subject.output_filename }
24
24
 
25
+ context 'image whose output permission changes' do
26
+
27
+ def image_with_mode(mode)
28
+ file = Tempfile.new(['test', '.jpg'])
29
+ file.close
30
+ FileUtils.cp jpg_path, file.path
31
+ File.chmod mode, file.path
32
+ file.path
33
+ end
34
+
35
+ def mode_of(path)
36
+ File.stat(path).mode & 0777
37
+ end
38
+
39
+ it 'should match the input file whose mode is private' do
40
+ subject.run image_with_mode(0600), run_options
41
+ mode_of(subject.output_filename).should == 0600
42
+ end
43
+
44
+ it 'should match the input file whose mode is public' do
45
+ subject.run image_with_mode(0644), run_options
46
+ mode_of(subject.output_filename).should == 0644
47
+ end
48
+
49
+ it 'should match the input file whose mode is world readable' do
50
+ subject.run image_with_mode(0666), run_options
51
+ mode_of(subject.output_filename).should == 0666
52
+ end
53
+
54
+ end
55
+
25
56
  context 'jpg image' do
26
57
  let(:path) { jpg_path }
27
58
  it 'should compress' do
@@ -35,6 +66,7 @@ describe Nanoc::Filters::ImageCompressor do
35
66
  file = Tempfile.new(['test', '.jpeg'])
36
67
  file.close
37
68
  FileUtils.cp jpg_path, file.path
69
+ File.chmod 0644, file.path
38
70
  file.path
39
71
  end
40
72
  it 'should compress' do
metadata CHANGED
@@ -1,118 +1,119 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: nanoc-image-compressor
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - John Nishinaga
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-02-20 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-05-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: nanoc
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 9
29
- segments:
30
- - 3
31
- - 3
32
- - 1
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
33
21
  version: 3.3.1
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: image_optim
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.3.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: image_optim
32
+ requirement: !ruby/object:Gem::Requirement
40
33
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
48
38
  type: :runtime
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rake
52
39
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
54
49
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
62
54
  type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: rspec
66
55
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
68
57
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
76
70
  type: :development
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: yard
80
71
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
82
73
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: yard
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
90
86
  type: :development
91
- version_requirements: *id005
92
- - !ruby/object:Gem::Dependency
93
- name: bluecloth
94
87
  prerelease: false
95
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
96
89
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: bluecloth
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
104
102
  type: :development
105
- version_requirements: *id006
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
106
110
  description: Nanoc image compressor filter
107
- email:
111
+ email:
108
112
  - jingoro@casa-z.org
109
113
  executables: []
110
-
111
114
  extensions: []
112
-
113
115
  extra_rdoc_files: []
114
-
115
- files:
116
+ files:
116
117
  - .gitignore
117
118
  - .rspec
118
119
  - .travis.yml
@@ -123,46 +124,43 @@ files:
123
124
  - lib/nanoc-image-compressor.rb
124
125
  - lib/nanoc/filters/image_compressor.rb
125
126
  - nanoc-image-compressor.gemspec
127
+ - spec/fixtures/test.gif
128
+ - spec/fixtures/test.jpg
129
+ - spec/fixtures/test.png
126
130
  - spec/image_compressor_spec.rb
127
- - spec/test.gif
128
- - spec/test.jpg
129
- - spec/test.png
130
131
  homepage: https://github.com/jingoro/nanoc-image-compressor
131
132
  licenses: []
132
-
133
133
  post_install_message:
134
134
  rdoc_options: []
135
-
136
- require_paths:
135
+ require_paths:
137
136
  - lib
138
- required_ruby_version: !ruby/object:Gem::Requirement
137
+ required_ruby_version: !ruby/object:Gem::Requirement
139
138
  none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- hash: 3
144
- segments:
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ segments:
145
144
  - 0
146
- version: "0"
147
- required_rubygems_version: !ruby/object:Gem::Requirement
145
+ hash: -4129835042860490982
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
147
  none: false
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- hash: 3
153
- segments:
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ segments:
154
153
  - 0
155
- version: "0"
154
+ hash: -4129835042860490982
156
155
  requirements: []
157
-
158
156
  rubyforge_project:
159
- rubygems_version: 1.8.10
157
+ rubygems_version: 1.8.24
160
158
  signing_key:
161
159
  specification_version: 3
162
160
  summary: A nanoc filter that compresses gif, jpg and png images losslessly
163
- test_files:
161
+ test_files:
162
+ - spec/fixtures/test.gif
163
+ - spec/fixtures/test.jpg
164
+ - spec/fixtures/test.png
164
165
  - spec/image_compressor_spec.rb
165
- - spec/test.gif
166
- - spec/test.jpg
167
- - spec/test.png
168
166
  has_rdoc: