grosser-smusher 0.3 → 0.3.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.
- data/Rakefile +1 -1
- data/lib/smusher.rb +7 -7
- data/smusher.gemspec +3 -3
- data/spec/smusher_spec.rb +1 -21
- metadata +3 -2
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ end
|
|
9
9
|
#Gemspec
|
10
10
|
require 'echoe'
|
11
11
|
porject_name = 'smusher'
|
12
|
-
Echoe.new(porject_name , '0.3') do |p|
|
12
|
+
Echoe.new(porject_name , '0.3.1') do |p|
|
13
13
|
p.description = "Automatic Lossless Reduction Of All Your Images"
|
14
14
|
p.url = "http://github.com/grosser/#{porject_name}"
|
15
15
|
p.author = "Michael Grosser"
|
data/lib/smusher.rb
CHANGED
@@ -4,7 +4,6 @@ require 'json'
|
|
4
4
|
|
5
5
|
module Smusher
|
6
6
|
extend self
|
7
|
-
EMPTY_FILE_SIZE = 4
|
8
7
|
|
9
8
|
# optimize the given image !!coverts gif to png!!
|
10
9
|
def optimize_image(file)
|
@@ -31,7 +30,7 @@ private
|
|
31
30
|
|
32
31
|
def write_optimized_data(file)
|
33
32
|
data = optimized_image_data_for(file)
|
34
|
-
File.open(file,'w') {|f| f.puts data}
|
33
|
+
File.open(file,'w') {|f| f.puts data} unless data.nil?
|
35
34
|
end
|
36
35
|
|
37
36
|
def sanitize_folder(folder)
|
@@ -64,14 +63,14 @@ private
|
|
64
63
|
end
|
65
64
|
|
66
65
|
def empty?(file)
|
67
|
-
size(file) <=
|
66
|
+
size(file) <= 4 #empty file = 4kb
|
68
67
|
end
|
69
68
|
|
70
69
|
def with_logging(file)
|
71
70
|
puts "sushing #{file}"
|
72
71
|
|
73
72
|
before = size(file)
|
74
|
-
yield
|
73
|
+
begin; yield; rescue; puts $!; end
|
75
74
|
after = size(file)
|
76
75
|
|
77
76
|
result = "#{(100*after)/before}%"
|
@@ -80,9 +79,10 @@ private
|
|
80
79
|
|
81
80
|
def optimized_image_data_for(file)
|
82
81
|
#TODO use rest-client --> independent of curl
|
83
|
-
response = `curl -F files[]=@#{file} http://smush.it/ws.php -s`
|
84
|
-
|
85
|
-
path =
|
82
|
+
response = JSON.parse(`curl -F files[]=@#{file} http://smush.it/ws.php -s`)
|
83
|
+
raise "smush.it: #{response['error']}" if response['error']
|
84
|
+
path = response['dest']
|
85
|
+
raise "no dest path found" unless path
|
86
86
|
`curl http://smush.it/#{path} -s`
|
87
87
|
end
|
88
88
|
end
|
data/smusher.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{smusher}
|
5
|
-
s.version = "0.3"
|
5
|
+
s.version = "0.3.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Michael Grosser"]
|
9
|
-
s.date = %q{2009-01-
|
9
|
+
s.date = %q{2009-01-26}
|
10
10
|
s.default_executable = %q{smusher}
|
11
11
|
s.description = %q{Automatic Lossless Reduction Of All Your Images}
|
12
12
|
s.email = %q{grosser.michael@gmail.com}
|
13
13
|
s.executables = ["smusher"]
|
14
14
|
s.extra_rdoc_files = ["lib/smusher.rb", "bin/smusher", "README.markdown"]
|
15
|
-
s.files = ["Manifest", "nbproject/private/private.xml", "nbproject/private/rake-d.txt", "nbproject/project.xml", "nbproject/project.properties", "lib/smusher.rb", "spec/out/people.jpg", "spec/spec_helper.rb", "spec/smusher_spec.rb", "spec/images/logo.gif", "spec/images/woman.jpeg", "spec/images/add.png", "spec/images/drink_empty.png", "spec/images/people.jpg", "spec/images/water.JPG", "spec/reduced/fam.png", "spec/reduced/add.png", "bin/smusher", "Rakefile", "README.markdown", "smusher.gemspec"]
|
15
|
+
s.files = ["Manifest", "nbproject/private/private.xml", "nbproject/private/rake-d.txt", "nbproject/project.xml", "nbproject/project.properties", "lib/smusher.rb", "spec/out/people.jpg", "spec/spec_helper.rb", "spec/smusher_spec.rb", "spec/images/logo.gif", "spec/images/woman.jpeg", "spec/images/add.png", "spec/images/drink_empty.png", "spec/images/people.jpg", "spec/images/water.JPG", "spec/reduced/fam.png", "spec/reduced/add.png", "ar.gif", "bin/smusher", "Rakefile", "README.markdown", "smusher.gemspec"]
|
16
16
|
s.has_rdoc = true
|
17
17
|
s.homepage = %q{http://github.com/grosser/smusher}
|
18
18
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Smusher", "--main", "README.markdown"]
|
data/spec/smusher_spec.rb
CHANGED
@@ -88,32 +88,12 @@ describe :smusher do
|
|
88
88
|
it "reverts a file that got larger" do
|
89
89
|
Smusher.send(:with_protection,@file) do
|
90
90
|
write(File.open(@file).read + 'x')
|
91
|
-
@before.should_not == size
|
92
91
|
end
|
93
92
|
@before.should == size
|
94
93
|
end
|
95
94
|
|
96
95
|
it "reverts a file that got empty" do
|
97
|
-
Smusher.send(:with_protection,@file)
|
98
|
-
write nil
|
99
|
-
size.should == Smusher::EMPTY_FILE_SIZE
|
100
|
-
end
|
101
|
-
size.should == @before
|
102
|
-
end
|
103
|
-
|
104
|
-
it "reverts a file that has error-suggesting size" do
|
105
|
-
write("valid-file-contents")
|
106
|
-
@before = size
|
107
|
-
@before.should > Smusher::EMPTY_FILE_SIZE
|
108
|
-
|
109
|
-
#gets overwritten by failure data size
|
110
|
-
Smusher.send(:with_protection,@file) do
|
111
|
-
write nil
|
112
|
-
size.should == Smusher::EMPTY_FILE_SIZE
|
113
|
-
end
|
114
|
-
|
115
|
-
#and should be reverted
|
116
|
-
size.should_not == Smusher::EMPTY_FILE_SIZE
|
96
|
+
Smusher.send(:with_protection,@file){write nil}
|
117
97
|
size.should == @before
|
118
98
|
end
|
119
99
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grosser-smusher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-26 00:00:00 -08:00
|
13
13
|
default_executable: smusher
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- spec/images/water.JPG
|
68
68
|
- spec/reduced/fam.png
|
69
69
|
- spec/reduced/add.png
|
70
|
+
- ar.gif
|
70
71
|
- bin/smusher
|
71
72
|
- Rakefile
|
72
73
|
- README.markdown
|