openurl 0.4.3 → 0.5.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.
@@ -441,11 +441,15 @@ module OpenURL
441
441
  # if we don't have a referent format (most likely because we have a 0.1
442
442
  # OpenURL), try to determine something from the genre. If that doesn't
443
443
  # exist, just call it a journal since most 0.1 OpenURLs would be one,
444
- # anyway.
445
- unless @referent.format
444
+ # anyway. Case insensitive match, because some providers play fast and
445
+ # loose. (BorrowDirect sends 'Book', which can confuse us otherwise)
446
+ unless @referent.format
446
447
  fmt = case @referent.metadata['genre']
447
- when /article|journal|issue|proceeding|conference|preprint/ then 'journal'
448
- when /book|bookitem|report|document/ then 'book'
448
+ when /article|journal|issue|proceeding|conference|preprint/i then 'journal'
449
+ when /book|bookitem|report|document/i then 'book'
450
+ # 'dissertation' is not a real 'genre', but some use it anyway, and should
451
+ # map to format 'dissertation' which is real.
452
+ when /dissertation/i then 'dissertation'
449
453
  else 'journal'
450
454
  end
451
455
  @referent.set_format(fmt)
@@ -0,0 +1,37 @@
1
+ # encoding: UTF-8
2
+
3
+ # This test is not complete, most of OpenURL was written without tests,
4
+ # just adding tests as we fix bugs or change things.
5
+
6
+ Encoding.default_external = "UTF-8" if defined? Encoding
7
+
8
+ class FromFormVarsTest < Test::Unit::TestCase
9
+
10
+ def test_basic_0_1_book
11
+ co = OpenURL::ContextObject.new_from_form_vars("genre" => "book", "title" => "some book", "au" => "some author")
12
+
13
+ assert_equal "book", co.referent.format
14
+ assert_equal "book", co.referent.metadata['genre']
15
+ assert_equal "some author", co.referent.metadata['au']
16
+ assert_equal "some book", co.referent.metadata['title']
17
+ end
18
+
19
+ def test_wrong_case_0_1_book
20
+ co = OpenURL::ContextObject.new_from_form_vars("genre" => "Book", "title" => "some book", "au" => "some author")
21
+
22
+ assert_equal "book", co.referent.format
23
+ assert_equal "Book", co.referent.metadata['genre']
24
+ assert_equal "some author", co.referent.metadata['au']
25
+ assert_equal "some book", co.referent.metadata['title']
26
+ end
27
+
28
+ def test_0_1_dissertation
29
+ co = OpenURL::ContextObject.new_from_form_vars("genre" => "dissertation", "title" => "some book", "au" => "some author")
30
+
31
+ assert_equal "dissertation", co.referent.format
32
+ assert_equal "dissertation", co.referent.metadata['genre']
33
+ assert_equal "some author", co.referent.metadata['au']
34
+ assert_equal "some book", co.referent.metadata['title']
35
+ end
36
+
37
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openurl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jonathan Rochkind
@@ -9,11 +10,12 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-04-17 00:00:00.000000000 Z
13
+ date: 2014-05-27 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: marc
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
20
  - - ! '>='
19
21
  - !ruby/object:Gem::Version
@@ -21,6 +23,7 @@ dependencies:
21
23
  type: :runtime
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ! '>='
26
29
  - !ruby/object:Gem::Version
@@ -28,6 +31,7 @@ dependencies:
28
31
  - !ruby/object:Gem::Dependency
29
32
  name: ensure_valid_encoding
30
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
31
35
  requirements:
32
36
  - - ! '>='
33
37
  - !ruby/object:Gem::Version
@@ -35,6 +39,7 @@ dependencies:
35
39
  type: :runtime
36
40
  prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
44
  - - ! '>='
40
45
  - !ruby/object:Gem::Version
@@ -48,61 +53,64 @@ extensions: []
48
53
  extra_rdoc_files:
49
54
  - README.md
50
55
  files:
51
- - lib/openurl.rb
56
+ - lib/openurl/context_object.rb
52
57
  - lib/openurl/context_object_entity.rb
53
58
  - lib/openurl/metadata_formats/book.rb
54
- - lib/openurl/metadata_formats/journal.rb
55
- - lib/openurl/metadata_formats/scholarly_service_type.rb
59
+ - lib/openurl/metadata_formats/dissertation.rb
56
60
  - lib/openurl/metadata_formats/dublin_core.rb
57
- - lib/openurl/metadata_formats/scholarly_common.rb
61
+ - lib/openurl/metadata_formats/journal.rb
58
62
  - lib/openurl/metadata_formats/marc.rb
59
63
  - lib/openurl/metadata_formats/patent.rb
60
- - lib/openurl/metadata_formats/dissertation.rb
64
+ - lib/openurl/metadata_formats/scholarly_common.rb
65
+ - lib/openurl/metadata_formats/scholarly_service_type.rb
61
66
  - lib/openurl/transport.rb
62
- - lib/openurl/context_object.rb
63
- - test/data/metalib_sap2_post_params.yml
64
- - test/data/dc_ctx.xml
65
- - test/data/yu.xml
66
- - test/data/scholarly_au_ctx.xml
67
- - test/data/marc_ctx.xml
67
+ - lib/openurl.rb
68
68
  - test/context_object_entity_test.rb
69
- - test/test.yml
70
69
  - test/context_object_test.rb
70
+ - test/data/dc_ctx.xml
71
+ - test/data/marc_ctx.xml
72
+ - test/data/metalib_sap2_post_params.yml
73
+ - test/data/scholarly_au_ctx.xml
74
+ - test/data/yu.xml
71
75
  - test/encoding_test.rb
76
+ - test/from_form_vars_test.rb
72
77
  - test/scholarly_common_test.rb
78
+ - test/test.yml
73
79
  - README.md
74
80
  homepage: https://github.com/openurl/openurl
75
81
  licenses: []
76
- metadata: {}
77
82
  post_install_message:
78
83
  rdoc_options: []
79
84
  require_paths:
80
85
  - lib
81
86
  required_ruby_version: !ruby/object:Gem::Requirement
87
+ none: false
82
88
  requirements:
83
89
  - - ! '>='
84
90
  - !ruby/object:Gem::Version
85
91
  version: '0'
86
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
87
94
  requirements:
88
95
  - - ! '>='
89
96
  - !ruby/object:Gem::Version
90
97
  version: '0'
91
98
  requirements: []
92
99
  rubyforge_project:
93
- rubygems_version: 2.0.3
100
+ rubygems_version: 1.8.23
94
101
  signing_key:
95
- specification_version: 4
102
+ specification_version: 3
96
103
  summary: a Ruby library to create, parse and use NISO Z39.88 OpenURLs
97
104
  test_files:
98
- - test/data/metalib_sap2_post_params.yml
99
- - test/data/dc_ctx.xml
100
- - test/data/yu.xml
101
- - test/data/scholarly_au_ctx.xml
102
- - test/data/marc_ctx.xml
103
105
  - test/context_object_entity_test.rb
104
- - test/test.yml
105
106
  - test/context_object_test.rb
107
+ - test/data/dc_ctx.xml
108
+ - test/data/marc_ctx.xml
109
+ - test/data/metalib_sap2_post_params.yml
110
+ - test/data/scholarly_au_ctx.xml
111
+ - test/data/yu.xml
106
112
  - test/encoding_test.rb
113
+ - test/from_form_vars_test.rb
107
114
  - test/scholarly_common_test.rb
115
+ - test/test.yml
108
116
  has_rdoc:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NWViZjIwOWQ1ODhmMzYzYzc1NTg5ZDI1MDQwODc2Y2FmNGNjMDk4Ng==
5
- data.tar.gz: !binary |-
6
- YmU1ODM5YTA4NzM1ZDk3MmUxMmJlYjBkZTg2YmQzM2ZhNTJhZTRjYQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YzVhZDBiNzAwNGYyYThiZGM2NTk0NmU0NWExNjJiYjNhYTRhNmRmNWYxYzFm
10
- ZGRjNjdlNjRlOTgwMWY0ODA1ZjFjMjY3MmJlMjRkY2M0NzFkNTZkNDE5ZmEx
11
- YjlmYzgwMGMzY2Q0MDFlODI3M2JkOTc2OGQyNTFmMDVmOWM2ZDc=
12
- data.tar.gz: !binary |-
13
- YjRjNDE2MjJmYzI1MDMyNDkyOGM2YzE3MDc5ZjczYTk2ZWMwNTY4YzNiYjc5
14
- YWVkMGRmMWUwMTYyNDAwYWM0MWFmMzk2MTU4NTU2YTM2OTJkZTYxYTA4ZWEw
15
- YzI2OWRlNzEwNmZkM2UxOTNiZjk2NzQ4MTBkZWEwOTFkYTBkYzI=