image_vise 0.1.6 → 0.2.0
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 +4 -4
- data/.gitignore +8 -0
- data/.travis.yml +13 -0
- data/DEVELOPMENT.md +0 -11
- data/Gemfile +2 -20
- data/Rakefile +3 -26
- data/image_vise.gemspec +37 -132
- data/lib/image_vise/file_response.rb +2 -2
- data/lib/image_vise/image_request.rb +2 -0
- data/lib/image_vise/operators/background_fill.rb +18 -0
- data/lib/image_vise/operators/ellipse_stencil.rb +7 -5
- data/lib/image_vise/operators/force_jpg_out.rb +17 -0
- data/lib/image_vise/pipeline.rb +13 -3
- data/lib/image_vise/render_engine.rb +36 -64
- data/lib/image_vise/version.rb +3 -0
- data/lib/image_vise/writers/auto_writer.rb +23 -0
- data/lib/image_vise/writers/jpeg_writer.rb +9 -0
- data/lib/image_vise.rb +19 -19
- metadata +43 -135
- data/spec/image_vise/auto_orient_spec.rb +0 -10
- data/spec/image_vise/crop_spec.rb +0 -20
- data/spec/image_vise/ellipse_stencil_spec.rb +0 -19
- data/spec/image_vise/fetcher_file_spec.rb +0 -48
- data/spec/image_vise/fetcher_http_spec.rb +0 -44
- data/spec/image_vise/file_response_spec.rb +0 -45
- data/spec/image_vise/fit_crop_spec.rb +0 -20
- data/spec/image_vise/geom_spec.rb +0 -33
- data/spec/image_vise/image_request_spec.rb +0 -62
- data/spec/image_vise/pipeline_spec.rb +0 -72
- data/spec/image_vise/render_engine_spec.rb +0 -325
- data/spec/image_vise/sharpen_spec.rb +0 -17
- data/spec/image_vise/srgb_spec.rb +0 -28
- data/spec/image_vise/strip_metadata_spec.rb +0 -14
- data/spec/image_vise_spec.rb +0 -110
- data/spec/layers-with-blending.psd +0 -0
- data/spec/spec_helper.rb +0 -103
- data/spec/test_server.rb +0 -61
- data/spec/waterside_magic_hour.jpg +0 -0
- data/spec/waterside_magic_hour.psd +0 -0
- data/spec/waterside_magic_hour_adobergb.jpg +0 -0
- data/spec/waterside_magic_hour_gray.tif +0 -0
- data/spec/waterside_magic_hour_transp.png +0 -0
data/spec/spec_helper.rb
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
Bundler.require
|
3
|
-
|
4
|
-
require 'addressable/uri'
|
5
|
-
require 'strenv'
|
6
|
-
require 'tmpdir'
|
7
|
-
require_relative 'test_server'
|
8
|
-
|
9
|
-
|
10
|
-
TEST_RENDERS_DIR = Dir.mktmpdir
|
11
|
-
|
12
|
-
module Examine
|
13
|
-
def examine_image(magick_image, name_tag = 'test-img')
|
14
|
-
# When doing TDD, waiting for stuff to open is a drag - allow
|
15
|
-
# it to be squelched using 2 envvars. Also viewing images
|
16
|
-
# makes no sense on CI unless we bother with artifacts.
|
17
|
-
# The first one is what Gitlab-CI sets for us.
|
18
|
-
return if ENV.key?("CI_BUILD_ID")
|
19
|
-
return if ENV.key?("SKIP_INTERACTIVE")
|
20
|
-
|
21
|
-
Dir.mkdir(TEST_RENDERS_DIR) unless File.exist?(TEST_RENDERS_DIR)
|
22
|
-
path = File.join(TEST_RENDERS_DIR, name_tag + '.png')
|
23
|
-
magick_image.format = 'png'
|
24
|
-
magick_image.write(path)
|
25
|
-
`open #{path}`
|
26
|
-
end
|
27
|
-
|
28
|
-
def examine_image_from_string(string)
|
29
|
-
# When doing TDD, waiting for stuff to open is a drag - allow
|
30
|
-
# it to be squelched using 2 envvars. Also viewing images
|
31
|
-
# makes no sense on CI unless we bother with artifacts.
|
32
|
-
# The first one is what Gitlab-CI sets for us.
|
33
|
-
return if ENV.key?("CI_BUILD_ID")
|
34
|
-
return if ENV.key?("SKIP_INTERACTIVE")
|
35
|
-
|
36
|
-
Dir.mkdir(TEST_RENDERS_DIR) unless File.exist?(TEST_RENDERS_DIR)
|
37
|
-
random_name = 'test-image-%s' % SecureRandom.hex(3)
|
38
|
-
path = File.join(TEST_RENDERS_DIR, random_name)
|
39
|
-
File.open(path, 'wb'){|f| f << string }
|
40
|
-
`open #{path}`
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
require 'simplecov'
|
45
|
-
SimpleCov.start do
|
46
|
-
add_filter "/spec/"
|
47
|
-
end
|
48
|
-
|
49
|
-
require_relative '../lib/image_vise'
|
50
|
-
|
51
|
-
RSpec.configure do | config |
|
52
|
-
config.order = 'random'
|
53
|
-
config.include Examine
|
54
|
-
config.before :suite do
|
55
|
-
TestServer.start(nil, ssl=false, port=9001)
|
56
|
-
end
|
57
|
-
|
58
|
-
config.after :each do
|
59
|
-
ImageVise.reset_allowed_hosts!
|
60
|
-
ImageVise.reset_secret_keys!
|
61
|
-
end
|
62
|
-
|
63
|
-
config.after :suite do
|
64
|
-
sleep 2
|
65
|
-
FileUtils.rm_rf(TEST_RENDERS_DIR)
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_image_path
|
69
|
-
File.expand_path(__dir__ + '/waterside_magic_hour.jpg')
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_image_path_psd
|
73
|
-
File.expand_path(__dir__ + '/waterside_magic_hour.psd')
|
74
|
-
end
|
75
|
-
|
76
|
-
def test_image_path_tif
|
77
|
-
File.expand_path(__dir__ + '/waterside_magic_hour_gray.tif')
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_image_adobergb_path
|
81
|
-
File.expand_path(__dir__ + '/waterside_magic_hour_adobergb.jpg')
|
82
|
-
end
|
83
|
-
|
84
|
-
def public_url
|
85
|
-
'http://localhost:9001/waterside_magic_hour.jpg'
|
86
|
-
end
|
87
|
-
|
88
|
-
def public_url_psd
|
89
|
-
'http://localhost:9001/waterside_magic_hour.psd'
|
90
|
-
end
|
91
|
-
|
92
|
-
def public_url_psd_multilayer
|
93
|
-
'http://localhost:9001/layers-with-blending.psd'
|
94
|
-
end
|
95
|
-
|
96
|
-
def public_url_tif
|
97
|
-
'http://localhost:9001/waterside_magic_hour_gray.tif'
|
98
|
-
end
|
99
|
-
|
100
|
-
config.around :each do |e|
|
101
|
-
STRICT_ENV.with_protected_env { e.run }
|
102
|
-
end
|
103
|
-
end
|
data/spec/test_server.rb
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'webrick'
|
2
|
-
include WEBrick
|
3
|
-
|
4
|
-
class ForbiddenServlet < HTTPServlet::AbstractServlet
|
5
|
-
def do_GET(req,res)
|
6
|
-
res['Content-Type'] = "text/plain"
|
7
|
-
res.status = 403
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
class TestServer
|
12
|
-
def self.start( log_file = nil, ssl = false, port = 9001 )
|
13
|
-
new(log_file, ssl, port).start
|
14
|
-
end
|
15
|
-
|
16
|
-
def initialize( log_file = nil, ssl = false, port = 9001 )
|
17
|
-
log_file ||= StringIO.new
|
18
|
-
log = WEBrick::Log.new(log_file)
|
19
|
-
|
20
|
-
options = {
|
21
|
-
:Port => port,
|
22
|
-
:Logger => log,
|
23
|
-
:AccessLog => [
|
24
|
-
[ log, WEBrick::AccessLog::COMMON_LOG_FORMAT ],
|
25
|
-
[ log, WEBrick::AccessLog::REFERER_LOG_FORMAT ]
|
26
|
-
],
|
27
|
-
:DocumentRoot => File.expand_path(__dir__),
|
28
|
-
}
|
29
|
-
|
30
|
-
if ssl
|
31
|
-
options[:SSLEnable] = true
|
32
|
-
options[:SSLCertificate] = OpenSSL::X509::Certificate.new(File.open("spec/certs/cacert.pem").read)
|
33
|
-
options[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(File.open("spec/certs/privkey.pem").read)
|
34
|
-
options[:SSLCertName] = [ ["CN", WEBrick::Utils::getservername ] ]
|
35
|
-
end
|
36
|
-
|
37
|
-
@server = WEBrick::HTTPServer.new(options)
|
38
|
-
@server.mount("/forbidden", ForbiddenServlet)
|
39
|
-
end
|
40
|
-
|
41
|
-
def start
|
42
|
-
trap('INT') {
|
43
|
-
begin
|
44
|
-
@server.shutdown unless @server.nil?
|
45
|
-
rescue Object => e
|
46
|
-
$stderr.puts "Error #{__FILE__}:#{__LINE__}\n#{e.message}"
|
47
|
-
end
|
48
|
-
}
|
49
|
-
|
50
|
-
@thread = Thread.new { @server.start }
|
51
|
-
Thread.pass
|
52
|
-
self
|
53
|
-
end
|
54
|
-
|
55
|
-
def join
|
56
|
-
if defined? @thread and @thread
|
57
|
-
@thread.join
|
58
|
-
end
|
59
|
-
self
|
60
|
-
end
|
61
|
-
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|