riiif 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dea7c70b11b5f293a13b1518eaad32036f450189
4
- data.tar.gz: 26af68981801093f8d7a0f0e7b4f4aaf4d1cb14f
3
+ metadata.gz: 5b43fe6591b40519b5eaf7678c4b732bcae87e79
4
+ data.tar.gz: 2c0d7e9b9e59f6e2886ab0830f3479bb09cabd29
5
5
  SHA512:
6
- metadata.gz: 619d7dd008484a2cb62d18d0a21d9e015d7d3a2c3b04065f3859eb59bf9857007b7768e2e1898f53b9795eff11f98eadeb0aef4be694d533a8ec1d822f5f70cc
7
- data.tar.gz: 31a0d174c238ad6177b887028370665cb9e61dcf02522843a71be121e97ac88b2069ddab733b6e87d414332cb57eb53cb40de32bc35bc1d5c5a62b178b4280ae
6
+ metadata.gz: aed34ce6c02744acc1cc74ea0d66ec2361aaca0578bfb9e6cc9742826088ac2edc7bef6f4755247f808d266b1eb659fcd08821797e548e0d4728a291d09f1c85
7
+ data.tar.gz: 173080fd02eab35a999c52fdddf229ff416509c03471e0cdb666dfc5f26045fe6e2289cbbdcdbd22bc7210b481e3c1788b380930a98da2959a47aedc86a62df6
@@ -2,9 +2,20 @@ require 'digest/md5'
2
2
  module Riiif
3
3
  class Image
4
4
 
5
- class_attribute :file_resolver
5
+ class_attribute :file_resolver, :info_service
6
6
  self.file_resolver = FileSystemFileResolver
7
7
 
8
+ # this is the default info service
9
+ # returns a hash with the original image dimensions.
10
+ # You can set your own lambda if you want different behavior
11
+ # example:
12
+ # {:height=>390, :width=>600}
13
+ self.info_service = lambda do |id, image|
14
+ Rails.cache.fetch(Image.cache_key(id, { info: true }), compress: true, expires_in: 3.days) do
15
+ image.info
16
+ end
17
+ end
18
+
8
19
  OUTPUT_FORMATS = %W{jpg png}
9
20
 
10
21
  attr_reader :id, :image
@@ -23,7 +34,9 @@ module Riiif
23
34
  end
24
35
  end
25
36
 
26
- delegate :info, to: :image
37
+ def info
38
+ info_service.call(id, image)
39
+ end
27
40
 
28
41
  def self.cache_key(id, options)
29
42
  str = options.merge(id: id).delete_if {|_, v| v.nil?}.to_s
data/config/routes.rb CHANGED
@@ -1,8 +1,11 @@
1
1
  Riiif::Engine.routes.draw do
2
2
  ALLOW_DOTS ||= /[\w.]+/
3
3
  SIZES ||= /(pct:)?[\w.,]+/
4
- get "/:id/:region/:size/:rotation/:quality(.:format)" => "images#show",
5
- constraints: { rotation: ALLOW_DOTS, size: SIZES}
4
+ get "/:id/:region/:size/:rotation/:quality.:format" => "images#show",
5
+ constraints: { rotation: ALLOW_DOTS, size: SIZES },
6
+ defaults: { format: 'jpg', rotation: '0', region: 'full', quality: 'native' },
7
+ as: 'image'
8
+
6
9
  get "/:id/info.json" => "images#info", defaults: { format: 'json' }, as: 'info'
7
10
  get "/:id/view(.:format)" => "images#view"
8
11
  end
data/lib/riiif/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Riiif
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -33,6 +33,16 @@ describe "routes" do
33
33
  region: 'full', size: 'full', rotation: '0',
34
34
  quality: 'native', format: 'jpg')
35
35
  end
36
+
37
+ describe "route helper" do
38
+ it "takes all the options" do
39
+ expect(image_path('abcd1234', region: 'full', size: '100,50', rotation: '22.5', quality: 'native',
40
+ format: 'jpg')).to eq '/image-service/abcd1234/full/100,50/22.5/native.jpg'
41
+ end
42
+ it "has defaults" do
43
+ expect(image_path('abcd1234', size: '100,50')).to eq '/image-service/abcd1234/full/100,50/0/native.jpg'
44
+ end
45
+ end
36
46
  end
37
47
 
38
48
  describe "for info" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riiif
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-19 00:00:00.000000000 Z
11
+ date: 2014-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler