openurl 0.4.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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=