djatoka 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.10
1
+ 0.0.11
@@ -3,6 +3,7 @@ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
3
3
  require 'djatoka'
4
4
  require 'trollop'
5
5
  require 'pp'
6
+ require 'open-uri'
6
7
 
7
8
  opts = Trollop::options do
8
9
  banner <<-EOS
@@ -30,6 +31,7 @@ EOS
30
31
  opt :topleftsquare, 'Squares the image by justifying to the top left'
31
32
  opt :bottomrightsquare, 'Squares the image by jutifying to the bottom right'
32
33
  opt :file, 'process a whole file of rtfids', :type => String
34
+ opt :download, 'download the image to the current working directory'
33
35
  end
34
36
 
35
37
  if (!opts[:rftid] and !opts[:file]) or (opts[:rftid] and opts[:file])
@@ -43,6 +45,7 @@ elsif opts[:file]
43
45
  rftids = File.read(opts[:file]).split("\n")
44
46
  end
45
47
 
48
+
46
49
  resolver = Djatoka::Resolver.new(opts[:resolver])
47
50
 
48
51
  rftids.each do |rftid|
@@ -89,5 +92,13 @@ rftids.each do |rftid|
89
92
  puts region.url unless opts[:file]
90
93
 
91
94
  `#{opts[:browser]} "#{region.url}"` if opts[:browser]
95
+
96
+ if opts[:download]
97
+ puts 'downloading...'
98
+ image = open(region.url).read
99
+ File.open(rftid + '.jpg', 'w') do |fh|
100
+ fh.puts image
101
+ end
102
+ end
92
103
  end
93
104
 
@@ -64,7 +64,7 @@ module Djatoka::Common
64
64
  # try to compensate for any difference between the dwtLevels and djatoka levels
65
65
  # so that we get a decent image returned.
66
66
  def pick_best_level(metadata)
67
- best_level = '10'
67
+ best_level = metadata.max_level
68
68
  metadata_levels = metadata.all_levels
69
69
  metadata_levels.keys.sort.reverse.each do |k|
70
70
  if metadata_levels[k].height.to_i > query.scale.to_i and
@@ -56,21 +56,25 @@ class Djatoka::Metadata
56
56
  def all_levels
57
57
  perform if !response # if we haven't already performed the metadata query do it now
58
58
  levels_hash = Hashie::Mash.new
59
- levels_i = levels.to_i
59
+ levels_i = levels.to_i
60
60
  (0..levels_i).each do |level_num|
61
61
  level_height = height.to_i
62
62
  level_width = width.to_i
63
63
 
64
64
  times_to_halve = levels_i - level_num
65
65
  times_to_halve.times do
66
- level_height = level_height / 2
67
- level_width = level_width / 2
66
+ level_height = (level_height / 2.0).round
67
+ level_width = (level_width / 2.0).round
68
68
  end
69
69
 
70
70
  levels_hash[level_num] = {:height => level_height, :width => level_width}
71
71
  end
72
72
  levels_hash
73
73
  end
74
+
75
+ def max_level
76
+ all_levels.keys.sort.last
77
+ end
74
78
 
75
79
  end
76
80
 
@@ -8,18 +8,18 @@ context 'A Djatoka Resolver' do
8
8
  @region = Djatoka::Region.new(@resolver, @identifier)
9
9
  end
10
10
  should 'create a query for a 75x75 version of the image' do
11
- assert_equal '0,874,105,105', @region.smallbox.query.region
11
+ assert_equal '0,874,106,106', @region.smallbox.query.region
12
12
  assert_equal '75', @region.smallbox.query.scale
13
13
  end
14
14
 
15
15
  should 'return a String for a smallbox URL' do
16
16
  assert @region.smallbox_url.is_a? String
17
17
  assert @region.smallbox_url.include? 'http://african.lanl.gov'
18
- assert @region.smallbox_url.include? 'svc.region=0%2C874%2C105%2C105'
18
+ assert @region.smallbox_url.include? 'svc.region=0%2C874%2C106%2C106'
19
19
  end
20
20
 
21
21
  should 'return a uri for a small square version of the image' do
22
- assert_equal '0,874,105,105', @region.smallbox.uri.query_values['svc.region']
22
+ assert_equal '0,874,106,106', @region.smallbox.uri.query_values['svc.region']
23
23
  end
24
24
 
25
25
  should 'create a query for a square version of the image' do
@@ -66,21 +66,28 @@ class TestDjatokaMetadata < Test::Unit::TestCase
66
66
  @metadata = @metadata_obj.perform
67
67
  @levels = @metadata.all_levels
68
68
  end
69
+ should 'create the number of metadata levels as djatoka provides' do
70
+ assert_equal 7, @levels.length
71
+ end
69
72
  should 'return height and width for all levels' do
70
- levels = { "0"=>{"height"=>52, "width"=>80},
71
- "1"=>{"height"=>105, "width"=>160},
72
- "2"=>{"height"=>210, "width"=>320},
73
- "3"=>{"height"=>421, "width"=>640},
73
+ expected_levels = { "0"=>{"height"=>53, "width"=>80},
74
+ "1"=>{"height"=>106, "width"=>160},
75
+ "2"=>{"height"=>211, "width"=>320},
76
+ "3"=>{"height"=>422, "width"=>640},
74
77
  "4"=>{"height"=>843, "width"=>1280},
75
78
  "5"=>{"height"=>1686, "width"=>2560},
76
- "6"=>{"height"=>3372, "width"=>5120},}
77
- assert_equal levels, @levels
79
+ "6"=>{"height"=>3372, "width"=>5120}}
80
+ assert_equal expected_levels, @levels
81
+ end
82
+ should 'know which is the max level' do
83
+ assert_equal "6", @metadata.max_level
78
84
  end
85
+
79
86
  should 'return appropriate height and width for all levels when levels and dwt_levels do not match' do
80
- levels = {"0"=>{"height"=>57, "width"=>37},
81
- "1"=>{"height"=>114, "width"=>74},
82
- "2"=>{"height"=>228, "width"=>148},
83
- "3"=>{"height"=>457, "width"=>296},
87
+ levels = {"0"=>{"height"=>58, "width"=>37},
88
+ "1"=>{"height"=>115, "width"=>74},
89
+ "2"=>{"height"=>229, "width"=>148},
90
+ "3"=>{"height"=>458, "width"=>296},
84
91
  "4"=>{"height"=>915, "width"=>592}}
85
92
  metadata = @resolver.metadata('ua023_015-006-bx0003-014-075').perform
86
93
  returned_levels = metadata.all_levels
@@ -88,7 +95,6 @@ class TestDjatokaMetadata < Test::Unit::TestCase
88
95
 
89
96
  end
90
97
 
91
-
92
98
  end # levels
93
99
 
94
100
  end #with_a_resolver
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: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 10
10
- version: 0.0.10
9
+ - 11
10
+ version: 0.0.11
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-15 00:00:00 -05:00
18
+ date: 2010-12-21 00:00:00 -05:00
19
19
  default_executable: djatoka_url
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -167,20 +167,20 @@ files:
167
167
  - lib/djatoka/region.rb
168
168
  - lib/djatoka/resolver.rb
169
169
  - lib/djatoka/view_helpers.rb
170
- - test/test_metadata.rb
170
+ - test/helper.rb
171
+ - test/test_common.rb
171
172
  - test/test_djatoka.rb
173
+ - test/test_metadata.rb
174
+ - test/test_region.rb
172
175
  - test/test_resolver.rb
173
176
  - test/test_view_helpers.rb
174
- - test/test_region.rb
175
- - test/helper.rb
176
- - test/test_common.rb
177
177
  has_rdoc: true
178
178
  homepage: http://github.com/jronallo/djatoka
179
179
  licenses: []
180
180
 
181
181
  post_install_message:
182
- rdoc_options:
183
- - --charset=UTF-8
182
+ rdoc_options: []
183
+
184
184
  require_paths:
185
185
  - lib
186
186
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -209,10 +209,10 @@ signing_key:
209
209
  specification_version: 3
210
210
  summary: Djatoka image server helpers for Ruby and Rails.
211
211
  test_files:
212
- - test/test_metadata.rb
212
+ - test/helper.rb
213
+ - test/test_common.rb
213
214
  - test/test_djatoka.rb
215
+ - test/test_metadata.rb
216
+ - test/test_region.rb
214
217
  - test/test_resolver.rb
215
218
  - test/test_view_helpers.rb
216
- - test/test_region.rb
217
- - test/helper.rb
218
- - test/test_common.rb