djatoka 0.0.9 → 0.0.10
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/VERSION +1 -1
- data/bin/djatoka_url +50 -32
- data/lib/djatoka/common.rb +5 -1
- data/test/helper.rb +3 -1
- data/test/test_common.rb +10 -0
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.10
|
data/bin/djatoka_url
CHANGED
@@ -15,7 +15,7 @@ Usage:
|
|
15
15
|
where options are:
|
16
16
|
EOS
|
17
17
|
opt :resolver, "A Djatoka resolver base URL", :required => true, :type => String
|
18
|
-
opt :rftid, "Resource identifier", :
|
18
|
+
opt :rftid, "Resource identifier", :type => String, :short => :i
|
19
19
|
opt :level, 'Level', :type => String
|
20
20
|
opt :rotate, 'Rotate', :type => String
|
21
21
|
opt :region, 'Region', :type => String
|
@@ -29,47 +29,65 @@ EOS
|
|
29
29
|
opt :square, 'Squares the image by cropping both sides'
|
30
30
|
opt :topleftsquare, 'Squares the image by justifying to the top left'
|
31
31
|
opt :bottomrightsquare, 'Squares the image by jutifying to the bottom right'
|
32
|
+
opt :file, 'process a whole file of rtfids', :type => String
|
32
33
|
end
|
33
34
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
[:level, :rotate, :region, :scale, :format, :clayer].each do |param|
|
38
|
-
region.send(param, opts[param]) if opts[param]
|
35
|
+
if (!opts[:rftid] and !opts[:file]) or (opts[:rftid] and opts[:file])
|
36
|
+
Trollop::die :rftid, "You must specify either --rftid or --file"
|
39
37
|
end
|
40
38
|
|
41
|
-
if opts[:
|
42
|
-
|
39
|
+
if opts[:rftid]
|
40
|
+
rftids = [opts[:rftid]]
|
41
|
+
elsif opts[:file]
|
42
|
+
Trollop::die :file, "File must exist" if !File.exists?(opts[:file])
|
43
|
+
rftids = File.read(opts[:file]).split("\n")
|
43
44
|
end
|
44
45
|
|
45
|
-
|
46
|
-
region.square
|
47
|
-
end
|
46
|
+
resolver = Djatoka::Resolver.new(opts[:resolver])
|
48
47
|
|
49
|
-
|
50
|
-
region.
|
51
|
-
end
|
48
|
+
rftids.each do |rftid|
|
49
|
+
region = resolver.region(rftid)
|
52
50
|
|
53
|
-
|
54
|
-
|
55
|
-
end
|
51
|
+
[:level, :rotate, :region, :scale, :format, :clayer].each do |param|
|
52
|
+
region.send(param, opts[param]) if opts[param]
|
53
|
+
end
|
56
54
|
|
57
|
-
if opts[:
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
end
|
55
|
+
if opts[:smallbox]
|
56
|
+
region.smallbox
|
57
|
+
end
|
58
|
+
|
59
|
+
if opts[:square]
|
60
|
+
region.square
|
61
|
+
end
|
62
|
+
|
63
|
+
if opts[:topleftsquare]
|
64
|
+
region.top_left_square
|
65
|
+
end
|
69
66
|
|
70
|
-
|
67
|
+
if opts[:bottomrightsquare]
|
68
|
+
region.bottom_right_square
|
69
|
+
end
|
71
70
|
|
72
|
-
|
71
|
+
if opts[:metadata] or opts[:levels]
|
72
|
+
metadata = resolver.metadata(rftid)
|
73
|
+
metadata.perform
|
74
|
+
if opts[:metadata]
|
75
|
+
puts metadata.url unless opts[:file]
|
76
|
+
`#{opts[:browser]} "#{metadata.url}"` if opts[:browser]
|
77
|
+
pp metadata.response #unless opts[:file]
|
78
|
+
if metadata.response.nil? or metadata.response.empty?
|
79
|
+
pp rftid + ": empty"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
if opts[:levels]
|
83
|
+
pp metadata.all_levels unless opts[:file]
|
84
|
+
end
|
85
|
+
end
|
73
86
|
|
74
|
-
|
87
|
+
pp region.query unless opts[:file]
|
88
|
+
|
89
|
+
puts region.url unless opts[:file]
|
90
|
+
|
91
|
+
`#{opts[:browser]} "#{region.url}"` if opts[:browser]
|
92
|
+
end
|
75
93
|
|
data/lib/djatoka/common.rb
CHANGED
@@ -90,7 +90,11 @@ module Djatoka::Common
|
|
90
90
|
# seen so far.
|
91
91
|
def square_params(justify = :center)
|
92
92
|
metadata = Djatoka::Metadata.new(resolver, rft_id).perform
|
93
|
-
|
93
|
+
# since nil.to_i #=> 0
|
94
|
+
# check that height and width are present otherwise our calculations will
|
95
|
+
# fail and raise an error. We want to avoid that and would rather show a
|
96
|
+
# broken image than raise--at least for now.
|
97
|
+
if metadata.height and metadata.width
|
94
98
|
orig_height = metadata.height.to_i
|
95
99
|
orig_width = metadata.width.to_i
|
96
100
|
if query.scale and query.scale.split.length == 1
|
data/test/helper.rb
CHANGED
@@ -38,4 +38,6 @@ end
|
|
38
38
|
|
39
39
|
FakeWeb.register_uri(:get, "http://african.lanl.gov/adore-djatoka/resolver?rft_id=ua023_015-006-bx0003-014-075&svc_id=info%3Alanl-repo%2Fsvc%2FgetMetadata&url_ver=Z39.88-2004",
|
40
40
|
:response => File.read('test/fixtures/ua023_015-006-bx0003-014-075-metadata.json'))
|
41
|
-
|
41
|
+
|
42
|
+
FakeWeb.register_uri(:get, "http://african.lanl.gov/adore-djatoka/resolver?rft_id=asdf&svc_id=info%3Alanl-repo%2Fsvc%2FgetMetadata&url_ver=Z39.88-2004",
|
43
|
+
:response => File.read('test/fixtures/empty-metadata.json'))
|
data/test/test_common.rb
CHANGED
@@ -79,6 +79,16 @@ context 'A Djatoka Resolver' do
|
|
79
79
|
assert @region2.url
|
80
80
|
end
|
81
81
|
end
|
82
|
+
|
83
|
+
context 'an request for a non-existent image' do
|
84
|
+
setup do
|
85
|
+
@no_region = Djatoka::Region.new(@resolver, 'asdf')
|
86
|
+
end
|
87
|
+
should 'not raise when no metadata and trying to create a square at scale' do
|
88
|
+
@no_region.scale(300).square
|
89
|
+
assert @no_region.url
|
90
|
+
end
|
91
|
+
end
|
82
92
|
|
83
93
|
end
|
84
94
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: djatoka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 10
|
10
|
+
version: 0.0.10
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jason Ronallo
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-15 00:00:00 -05:00
|
19
19
|
default_executable: djatoka_url
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|