uwdc 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +12 -3
- data/lib/uwdc.rb +1 -0
- data/lib/uwdc/display.rb +24 -5
- data/lib/uwdc/mods.rb +1 -3
- data/lib/uwdc/version.rb +1 -1
- data/spec/models/display_spec.rb +19 -2
- data/uwdc.gemspec +4 -4
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MmJlMGM4Nzk5ZWJjMGFlZGQ1OGM5MmVmOTA3NmViZmIyYjBiOGZhNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OGI3Y2E1ZWM0ZTYyMWYzNDVjOTUyNWVmNTFlOTliYTM2OWVjNzY2MA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjNiODBlYjQ2ZTczZGRlODViZTE3NzQ2NTU1NTAzYWYxMTZmNTY5NjcxNDA2
|
10
|
+
NzI2ODAyNjYwNGE2ODZiYTBlNmM3MWZhNGFjNGM4MTQyMWJhZDU2ZGQ3ZTMx
|
11
|
+
ZTI3N2Q0ZjU3ZDY2OGRiOTg2MjJiMDQwYmZjYzZlMDhjMzA4YjM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NDRlZTViMDZjYjNkZGM2YjAzMDFmNDRkMGZlZDI0MDg5NjI4NzY4NTY0OWYx
|
14
|
+
MWZiY2QyY2Q1OWIwOTI0M2YxY2YwM2U4ZWFmNzc3YWQxZDM0NWJhMmRiYTUz
|
15
|
+
MTY2ZWNlZDNiMTBlNDU0MzZlYWIzZGNiNTg5MDEwZWJhMjRkYWY=
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
UWDC
|
2
2
|
====
|
3
3
|
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/uwdc.png)](http://badge.fury.io/rb/uwdc)
|
4
5
|
[![Build Status](https://travis-ci.org/ewlarson/uwdc.png)](https://travis-ci.org/ewlarson/uwdc)
|
5
6
|
[![Dependency Status](https://gemnasium.com/ewlarson/uwdc.png)](https://gemnasium.com/ewlarson/uwdc)
|
6
7
|
[![Code Climate](https://codeclimate.com/github/ewlarson/uwdc.png)](https://codeclimate.com/github/ewlarson/uwdc)
|
@@ -9,6 +10,10 @@ UWDC
|
|
9
10
|
|
10
11
|
Gem for accessing University of Wisconsin Digital Collection items from our Fedora Commons repository.
|
11
12
|
|
13
|
+
## Install
|
14
|
+
|
15
|
+
gem install uwdc
|
16
|
+
|
12
17
|
## Usage
|
13
18
|
|
14
19
|
### METS
|
@@ -16,9 +21,13 @@ Obtain the METS metadata for a UWDC object.
|
|
16
21
|
|
17
22
|
```ruby
|
18
23
|
require 'uwdc'
|
19
|
-
mets = UWDC::Mets.new('33QOBSVPJLWEM8S')
|
24
|
+
mets = UWDC::Mets.new('33QOBSVPJLWEM8S')
|
20
25
|
mets.mods
|
21
26
|
mets.mods.titles
|
27
|
+
# => ["A life idyl"]
|
28
|
+
|
29
|
+
mets.mods.metadata
|
30
|
+
# => {:titles=>["A life idyl"], :names=>[], :dates=>["1869"], :forms=>["text"], ...}
|
22
31
|
```
|
23
32
|
|
24
33
|
UWDC METS will contain:
|
@@ -90,9 +99,9 @@ MODS top-level elements are boiled in Ruby to something more dot-syntax friendly
|
|
90
99
|
</tbody>
|
91
100
|
</table>
|
92
101
|
|
102
|
+
Transform via to_* calls. Supports JSON, Ruby and XML
|
103
|
+
|
93
104
|
```ruby
|
94
|
-
# Transform via to_* calls
|
95
|
-
# - supports JSON, Ruby and XML
|
96
105
|
mods.to_json
|
97
106
|
mods.to_ruby
|
98
107
|
mods.to_xml
|
data/lib/uwdc.rb
CHANGED
data/lib/uwdc/display.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
module UWDC
|
2
|
-
# Return an object to drive the display of UWDC items
|
2
|
+
# Public: Return an object to drive the display of UWDC items
|
3
|
+
#
|
4
|
+
# Example
|
5
|
+
#
|
6
|
+
# @display = UWDC::Display.new('33QOBSVPJLWEM8S')
|
7
|
+
# # => object
|
3
8
|
class Display
|
4
9
|
|
5
10
|
attr_accessor :mets, :title, :visual_representation
|
@@ -8,7 +13,7 @@ module UWDC
|
|
8
13
|
@mets = UWDC::Mets.new(id,xml)
|
9
14
|
end
|
10
15
|
|
11
|
-
def use
|
16
|
+
def self.use
|
12
17
|
{
|
13
18
|
"title" => { :view => false, :partial => "text" },
|
14
19
|
"visualrepresentation" => { :view => false, :partial => "text" },
|
@@ -20,7 +25,7 @@ module UWDC
|
|
20
25
|
}
|
21
26
|
end
|
22
27
|
|
23
|
-
def cmodels
|
28
|
+
def self.cmodels
|
24
29
|
{
|
25
30
|
"info:fedora/1711.dl:CModelAudio" => { :view => true, :partial => "audio" },
|
26
31
|
"info:fedora/1711.dl:CModelAudioStream" => { :view => true, :partial => "audio" },
|
@@ -44,7 +49,7 @@ module UWDC
|
|
44
49
|
end
|
45
50
|
|
46
51
|
def image_files(model)
|
47
|
-
files.select{|file| file.id.include?(model) && use[file.use][:partial] == "image"}
|
52
|
+
files.select{|file| file.id.include?(model) && UWDC::Display.use[file.use][:partial] == "image"}
|
48
53
|
end
|
49
54
|
|
50
55
|
def images
|
@@ -64,6 +69,20 @@ module UWDC
|
|
64
69
|
@mets.mods
|
65
70
|
end
|
66
71
|
|
72
|
+
# @TODO:
|
73
|
+
# Public: Partials is the intersection of the struct_map and the object cmodels
|
74
|
+
# Need to preserve the struct map's "div" structure
|
75
|
+
# But also tease out which objects are displayable via which partials
|
76
|
+
#
|
77
|
+
# Return an array of Hashes (possibly nested) of ids keying to view partials
|
78
|
+
def partials
|
79
|
+
@mets.struct_map.structure
|
80
|
+
end
|
81
|
+
|
82
|
+
def models
|
83
|
+
@mets.rels_ext.models
|
84
|
+
end
|
85
|
+
|
67
86
|
alias :metadata :mods
|
68
87
|
|
69
88
|
private
|
@@ -73,7 +92,7 @@ module UWDC
|
|
73
92
|
end
|
74
93
|
|
75
94
|
def viewable_model?(model)
|
76
|
-
model.last.detect{|name| cmodels[name][:view] == true}
|
95
|
+
model.last.detect{|name| UWDC::Display.cmodels[name][:view] == true}
|
77
96
|
end
|
78
97
|
|
79
98
|
def viewable_models
|
data/lib/uwdc/mods.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
|
3
1
|
module UWDC
|
4
2
|
# Public: Obtain the MODS metadata for a UWDC METS object
|
5
3
|
#
|
@@ -140,7 +138,7 @@ module UWDC
|
|
140
138
|
# @mods.access_conditions.rights
|
141
139
|
# # => "Delehanty, Jim"
|
142
140
|
#
|
143
|
-
#
|
141
|
+
# Returns an OpenStruct
|
144
142
|
def access_conditions
|
145
143
|
OpenStruct.new(rights: rights, reuse: reuse)
|
146
144
|
end
|
data/lib/uwdc/version.rb
CHANGED
data/spec/models/display_spec.rb
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '../../spec_helper')
|
3
3
|
require 'uwdc'
|
4
4
|
|
5
|
+
def clean_id(id)
|
6
|
+
clean = id.split("-")
|
7
|
+
"#{clean[0]}-#{clean[1]}"
|
8
|
+
end
|
9
|
+
|
5
10
|
describe UWDC::Display do
|
6
11
|
|
7
12
|
context 'PBO' do
|
@@ -11,11 +16,11 @@ describe UWDC::Display do
|
|
11
16
|
end
|
12
17
|
|
13
18
|
it "should include use attributes" do
|
14
|
-
expect(
|
19
|
+
expect(UWDC::Display.use).to be_true
|
15
20
|
end
|
16
21
|
|
17
22
|
it "should include content models" do
|
18
|
-
expect(
|
23
|
+
expect(UWDC::Display.cmodels).to be_true
|
19
24
|
end
|
20
25
|
|
21
26
|
it "should include files" do
|
@@ -31,6 +36,18 @@ describe UWDC::Display do
|
|
31
36
|
expect(@display.metadata).to be_true
|
32
37
|
expect(@display.metadata).to be_an_instance_of(UWDC::Mods)
|
33
38
|
end
|
39
|
+
|
40
|
+
it "should have partials" do
|
41
|
+
#puts @display.partials.inspect
|
42
|
+
expect(@display.partials).to be_true
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should have models" do
|
46
|
+
@display.partials.each do |div|
|
47
|
+
puts @display.models.select{|model| model.include?(clean_id(div.id))}
|
48
|
+
end
|
49
|
+
expect(@display.models).to be_true
|
50
|
+
end
|
34
51
|
end
|
35
52
|
|
36
53
|
context 'UNTAC' do
|
data/uwdc.gemspec
CHANGED
@@ -12,10 +12,10 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.summary = %q{Use the UWDC collections}
|
13
13
|
gem.homepage = "https://github.com/ewlarson/uwdc"
|
14
14
|
|
15
|
-
gem.add_dependency
|
16
|
-
gem.add_dependency
|
17
|
-
gem.add_dependency
|
18
|
-
gem.add_dependency
|
15
|
+
gem.add_dependency('httpclient', '~>2.3.3')
|
16
|
+
gem.add_dependency('nokogiri', '~>1.5.2')
|
17
|
+
gem.add_dependency('json', '~>1.8.0')
|
18
|
+
gem.add_dependency('active_support', '~>3.0.0')
|
19
19
|
|
20
20
|
gem.add_development_dependency 'rake'
|
21
21
|
gem.add_development_dependency 'rspec'
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uwdc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Larson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.3.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.3.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.5.2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.5.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: json
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.8.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.8.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: active_support
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 3.0.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 3.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|