enju_oai 0.1.0.pre17 → 0.1.0.pre18
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.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/Rakefile +1 -12
- data/app/views/manifestations/_record_junii2.oai.builder +113 -0
- data/app/views/manifestations/_record_oai_dc.oai.builder +20 -0
- data/app/views/manifestations/list_identifiers.oai.builder +6 -4
- data/app/views/manifestations/list_metadata_formats.oai.builder +6 -6
- data/app/views/manifestations/list_records.oai.builder +10 -23
- data/app/views/manifestations/show.oai.builder +5 -5
- data/lib/enju_oai/engine.rb +1 -0
- data/lib/enju_oai/oai_controller.rb +4 -3
- data/lib/enju_oai/version.rb +1 -1
- data/spec/controllers/manifestations_controller_spec.rb +12 -0
- data/spec/dummy/app/controllers/application_controller.rb +1 -0
- data/spec/dummy/config/application.rb +1 -0
- data/spec/dummy/db/migrate/20090913173236_create_nii_types.rb +13 -0
- data/spec/dummy/db/migrate/20090913185239_add_nii_type_id_to_manifestation.rb +10 -0
- data/spec/dummy/db/migrate/20150221063719_add_settings_to_library_group.rb +5 -0
- data/spec/dummy/db/schema.rb +15 -1
- data/spec/fixtures/library_groups.yml +5 -0
- data/spec/fixtures/nii_types.yml +78 -0
- data/spec/spec_helper.rb +0 -1
- data/spec/views/manifestations/list_identifiers.oai.builder_spec.rb +15 -0
- data/spec/views/manifestations/list_metadata_formats.oai.builder_spec.rb +18 -0
- data/spec/views/manifestations/list_records.oai.builder_spec.rb +48 -0
- data/spec/views/manifestations/show.oai.builder_spec.rb +32 -0
- metadata +303 -245
- data/spec/dummy/app/models/setting.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c43bc35ce6acfb814160534eb055d91f09f5b09c
|
4
|
+
data.tar.gz: f325d53d05dd7825b2a17a5aa2b6955c3ebee31c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cce3e6a8ef3c0fcb0b8d33c51660410447046f1a8663be57277e9a96c8828eace11135ea450feecebadb797d25d0ab8b39b4b15032b1a1118c41588a31561364
|
7
|
+
data.tar.gz: 2c9c053b5f2a8716da4dfa67723945f1210bf7a6e6875686ad72b3076c5c779ad169272f2417a2f0e2a80403aa9d912e42e626ca847b2533cd3f787cb9fd963f
|
data/MIT-LICENSE
CHANGED
data/Rakefile
CHANGED
@@ -23,24 +23,13 @@ end
|
|
23
23
|
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
24
24
|
load 'rails/tasks/engine.rake'
|
25
25
|
|
26
|
-
|
27
|
-
|
28
26
|
Bundler::GemHelper.install_tasks
|
29
27
|
|
30
|
-
require 'rake/testtask'
|
31
|
-
|
32
|
-
Rake::TestTask.new(:test) do |t|
|
33
|
-
t.libs << 'lib'
|
34
|
-
t.libs << 'test'
|
35
|
-
t.pattern = 'test/**/*_test.rb'
|
36
|
-
t.verbose = false
|
37
|
-
end
|
38
|
-
|
39
28
|
require 'rspec/core'
|
40
29
|
require 'rspec/core/rake_task'
|
41
30
|
|
42
31
|
RSpec::Core::RakeTask.new(:spec) do |spec|
|
43
|
-
|
32
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
44
33
|
end
|
45
34
|
|
46
35
|
task :default => :spec
|
@@ -0,0 +1,113 @@
|
|
1
|
+
xml_builder.junii2 :version => '3.1',
|
2
|
+
"xsi:schemaLocation" => "http://irdb.nii.ac.jp/oai http://irdb.nii.ac.jp/oai/junii2-3-1.xsd",
|
3
|
+
"xmlns" => "http://irdb.nii.ac.jp/oai",
|
4
|
+
"xmlns:dc" => "http://purl.org/dc/elements/1.1/" do
|
5
|
+
xml_builder.title manifestation.original_title
|
6
|
+
unless manifestation.title_alternative.blank?
|
7
|
+
xml_builder.alternative manifestation.title_alternative
|
8
|
+
end
|
9
|
+
manifestation.creators.readable_by(current_user).each do |patron|
|
10
|
+
xml_builder.creator patron.full_name
|
11
|
+
end
|
12
|
+
if manifestation.try(:subjects)
|
13
|
+
manifestation.subjects.each do |subject|
|
14
|
+
unless subject.subject_type.name =~ /BSH|NDLSH|MeSH|LCSH/io
|
15
|
+
xml_builder.subject subject.term
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
if manifestation.try(:classifications)
|
20
|
+
%w[ NDC NDLC ].each do |c|
|
21
|
+
manifestation.classifications.each do |classification|
|
22
|
+
if classification.classification_type.name =~ /#{ c }/i
|
23
|
+
xml_builder.tag! c, classification.category
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
if manifestation.try(:subjects)
|
29
|
+
%w[ BSH NDLSH MeSH ].each do |s|
|
30
|
+
manifestation.subjects.each do |subject|
|
31
|
+
if subject.subject_type.name =~ /#{ s }/i
|
32
|
+
xml_builder.tag! subject, subject.term
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
if manifestation.try(:classifications)
|
38
|
+
%w[ DDC LCC UDC ].each do |c|
|
39
|
+
manifestation.classifications.each do |classification|
|
40
|
+
if classification.classification_type.name =~ /#{ c }/i
|
41
|
+
xml_builder.tag! c, classification.category
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
if manifestation.try(:subjects)
|
47
|
+
manifestation.subjects.each do |s|
|
48
|
+
if s.subject_type.name =~ /LCSH/i
|
49
|
+
xml_builder.tag! subject, subject.term
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
if manifestation.description?
|
54
|
+
xml_builder.description manifestation.description
|
55
|
+
end
|
56
|
+
manifestation.publishers.readable_by(current_user).each do |patron|
|
57
|
+
xml_builder.publisher patron.full_name
|
58
|
+
end
|
59
|
+
manifestation.contributors.readable_by(current_user).each do |patron|
|
60
|
+
xml_builder.contributor patron.full_name
|
61
|
+
end
|
62
|
+
xml_builder.date manifestation.created_at.to_date.iso8601
|
63
|
+
xml_builder.type manifestation.manifestation_content_type.name
|
64
|
+
if manifestation.try(:nii_type)
|
65
|
+
xml_builder.NIItype manifestation.nii_type.name
|
66
|
+
else
|
67
|
+
xml_builder.NIItype 'Others'
|
68
|
+
end
|
69
|
+
unless manifestation.attachment.blank?
|
70
|
+
xml_builder.format manifestation.attachment_content_type
|
71
|
+
end
|
72
|
+
if manifestation.manifestation_identifier?
|
73
|
+
xml_builder.identifier manifestation.manifestation_identifier
|
74
|
+
end
|
75
|
+
manifestation.identifiers.each do |identifier|
|
76
|
+
unless identifier.identifier_type.name =~ /isbn|issn|ncid|doi|naid|pmid|ichushi/io
|
77
|
+
xml_builder.identifier identifier.body
|
78
|
+
end
|
79
|
+
end
|
80
|
+
xml_builder.URI manifestation_url( manifestation )
|
81
|
+
unless manifestation.attachment.blank?
|
82
|
+
xml_builder.fulltextURL manifestation_url(id: manifestation.id, format: :download)
|
83
|
+
end
|
84
|
+
%w[ ISBN ISSN NCID ].each do |identifier|
|
85
|
+
manifestation.identifier_contents(identifier.downcase).each do |val|
|
86
|
+
xml_builder.tag! identifier, val
|
87
|
+
end
|
88
|
+
end
|
89
|
+
if manifestation.root_series_statement
|
90
|
+
xml_builder.jtitle manifestation.root_series_statement.original_title
|
91
|
+
end
|
92
|
+
xml_builder.volume manifestation.volume_number_string
|
93
|
+
xml_builder.issue manifestation.issue_number_string
|
94
|
+
xml_builder.spage manifestation.start_page
|
95
|
+
xml_builder.epage manifestation.end_page
|
96
|
+
xml_builder.dateofissued manifestation.pub_date
|
97
|
+
#TODO: junii2: source
|
98
|
+
if manifestation.language.blank? or manifestation.language.name == 'unknown'
|
99
|
+
xml_builder.language "und"
|
100
|
+
else
|
101
|
+
xml_builder.language manifestation.language.iso_639_2
|
102
|
+
end
|
103
|
+
%w[ pmid doi NAID ichushi ].each do |identifier|
|
104
|
+
manifestation.identifier_contents(identifier.downcase).each do |val|
|
105
|
+
xml_builder.tag! identifier, val
|
106
|
+
end
|
107
|
+
end
|
108
|
+
#TODO: junii2: isVersionOf, hasVersion, isReplaceBy, replaces, isRequiredBy, requires, isPartOf, hasPart, isReferencedBy, references, isFormatOf, hasFormat
|
109
|
+
#TODO: junii2: coverage, spatial, NIIspatial, temporal, NIItemporal
|
110
|
+
#TODO: junii2: rights
|
111
|
+
#TODO: junii2: textversion
|
112
|
+
#TODO: junii2: grantid, dateofgranted, degreename, grantor
|
113
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
xml_builder.tag! "oai_dc:dc",
|
2
|
+
"xsi:schemaLocation" => "http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd",
|
3
|
+
"xmlns:oai_dc" => "http://www.openarchives.org/OAI/2.0/oai_dc/",
|
4
|
+
"xmlns:dc" => "http://purl.org/dc/elements/1.1/" do
|
5
|
+
xml_builder.tag! "dc:title", manifestation.original_title
|
6
|
+
manifestation.creators.readable_by(current_user).each do |patron|
|
7
|
+
xml_builder.tag! "dc:creator", patron.full_name
|
8
|
+
end
|
9
|
+
manifestation.contributors.readable_by(current_user).each do |patron|
|
10
|
+
xml_builder.tag! "dc:contributor", patron.full_name
|
11
|
+
end
|
12
|
+
manifestation.publishers.readable_by(current_user).each do |patron|
|
13
|
+
xml_builder.tag! "dc:publisher", patron.full_name
|
14
|
+
end
|
15
|
+
manifestation.try(:subjects).try(:each) do |subject|
|
16
|
+
xml_builder.tag! "dc:subject", subject.term
|
17
|
+
end
|
18
|
+
xml_builder.tag! "dc:description", manifestation.description
|
19
|
+
xml_builder.tag! "dc:date", manifestation.pub_date
|
20
|
+
end
|
@@ -9,17 +9,19 @@ xml.tag! "OAI-PMH", :xmlns => "http://www.openarchives.org/OAI/2.0/",
|
|
9
9
|
end
|
10
10
|
xml.ListIdentifiers do
|
11
11
|
@manifestations.each do |manifestation|
|
12
|
-
cache([manifestation, fragment: 'list_identifiers_oai', role: current_user_role_name, locale: @locale]) do
|
12
|
+
cache([manifestation, fragment: 'list_identifiers_oai', role: current_user_role_name, locale: @locale]) do
|
13
13
|
xml.header do
|
14
14
|
xml.identifier manifestation.oai_identifier
|
15
15
|
xml.datestamp manifestation.updated_at.utc.iso8601
|
16
|
-
|
16
|
+
manifestation.series_statements.each do |series_statement|
|
17
|
+
xml.setSpec series_statement.id
|
18
|
+
end
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
20
22
|
if @resumption.present?
|
21
|
-
if @resumption[:cursor].to_i + @manifestations.
|
22
|
-
xml.resumptionToken @resumption[:token], :
|
23
|
+
if @resumption[:cursor].to_i + @manifestations.limit_value < @manifestations.total_count
|
24
|
+
xml.resumptionToken @resumption[:token], completeListSize: @manifestations.total_count, cursor: @resumption[:cursor], expirationDate: @resumption[:expired_at]
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -8,12 +8,12 @@ xml.tag! "OAI-PMH", :xmlns => "http://www.openarchives.org/OAI/2.0/",
|
|
8
8
|
xml.metadataFormat do
|
9
9
|
xml.metadataPrefix "oai_dc"
|
10
10
|
xml.schema "http://www.openarchives.org/OAI/2.0/oai_dc.xsd"
|
11
|
-
xml.metadataNamespace "http://www.openarchives.org/OAI/2.0/oai_dc
|
11
|
+
xml.metadataNamespace "http://www.openarchives.org/OAI/2.0/oai_dc/"
|
12
|
+
end
|
13
|
+
xml.metadataFormat do
|
14
|
+
xml.metadataPrefix "junii2"
|
15
|
+
xml.schema "http://irdb.nii.ac.jp/oai/junii2-3-1.xsd"
|
16
|
+
xml.metadataNamespace "http://irdb.nii.ac.jp/oai"
|
12
17
|
end
|
13
|
-
#xml.metadataFormat do
|
14
|
-
# xml.metadataPrefix "junii2"
|
15
|
-
# xml.schema "http://ju.nii.ac.jp/oai/junii2.xsd"
|
16
|
-
# xml.metadataNamespace "http://ju.nii.ac.jp/junii2"
|
17
|
-
#end
|
18
18
|
end
|
19
19
|
end
|
@@ -12,45 +12,32 @@ xml.tag! "OAI-PMH", :xmlns => "http://www.openarchives.org/OAI/2.0/",
|
|
12
12
|
"xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
|
13
13
|
"xsi:schemaLocation" => "http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd" do
|
14
14
|
xml.responseDate Time.zone.now.utc.iso8601
|
15
|
-
xml.request manifestations_url(format: :oai), request_attr(
|
15
|
+
xml.request manifestations_url(format: :oai), request_attr(@oai[:metadataPrefix])
|
16
16
|
@oai[:errors].each do |error|
|
17
|
-
xml.error :
|
17
|
+
xml.error code: error
|
18
18
|
end
|
19
19
|
xml.ListRecords do
|
20
20
|
@manifestations.each do |manifestation|
|
21
|
-
cache([manifestation, fragment: 'list_records_oai', role: current_user_role_name, locale: @locale]) do
|
21
|
+
cache([manifestation, fragment: 'list_records_oai', role: current_user_role_name, locale: @locale]) do
|
22
22
|
xml.record do
|
23
23
|
xml.header do
|
24
24
|
xml.identifier manifestation.oai_identifier
|
25
25
|
xml.datestamp manifestation.updated_at.utc.iso8601
|
26
26
|
end
|
27
27
|
xml.metadata do
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
manifestation.creators.readable_by(current_user).each do |patron|
|
34
|
-
xml.tag! "dc:creator", patron.full_name
|
35
|
-
end
|
36
|
-
manifestation.contributors.readable_by(current_user).each do |patron|
|
37
|
-
xml.tag! "dc:contributor", patron.full_name
|
38
|
-
end
|
39
|
-
manifestation.publishers.readable_by(current_user).each do |patron|
|
40
|
-
xml.tag! "dc:publisher", patron.full_name
|
41
|
-
end
|
42
|
-
manifestation.subjects.each do |subject|
|
43
|
-
xml.tag! "dc:subject", subject.term
|
44
|
-
end
|
45
|
-
xml.tag! "dc:description", manifestation.description
|
28
|
+
case @oai[:metadataPrefix]
|
29
|
+
when 'oai_dc', nil
|
30
|
+
render 'record_oai_dc', manifestation: manifestation, xml_builder: xml
|
31
|
+
when 'junii2'
|
32
|
+
render 'record_junii2', manifestation: manifestation, xml_builder: xml
|
46
33
|
end
|
47
34
|
end
|
48
35
|
end
|
49
36
|
end
|
50
37
|
end
|
51
38
|
if @resumption.present?
|
52
|
-
if @resumption[:cursor].to_i + @manifestations.
|
53
|
-
xml.resumptionToken @resumption[:token], :
|
39
|
+
if @resumption[:cursor].to_i + @manifestations.limit_value < @manifestations.total_count
|
40
|
+
xml.resumptionToken @resumption[:token], completeListSize: @manifestations.total_count, cursor: @resumption[:cursor], expirationDate: @resumption[:expired_at]
|
54
41
|
end
|
55
42
|
end
|
56
43
|
end
|
@@ -14,11 +14,11 @@ xml.tag! "OAI-PMH", :xmlns => "http://www.openarchives.org/OAI/2.0/",
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
xml.metadata do
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
case @oai[:metadataPrefix]
|
18
|
+
when 'oai_dc', nil
|
19
|
+
render 'record_oai_dc', manifestation: @manifestation, xml_builder: xml
|
20
|
+
when 'junii2'
|
21
|
+
render 'record_junii2', manifestation: @manifestation, xml_builder: xml
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
data/lib/enju_oai/engine.rb
CHANGED
@@ -55,6 +55,7 @@ module EnjuOai
|
|
55
55
|
oai[:errors] << "cannotDisseminateFormat"
|
56
56
|
end
|
57
57
|
when 'ListRecords'
|
58
|
+
oai[:metadataPrefix] = params[:metadataPrefix]
|
58
59
|
unless valid_metadata_format?(params[:metadataPrefix])
|
59
60
|
oai[:errors] << "cannotDisseminateFormat"
|
60
61
|
end
|
@@ -63,6 +64,7 @@ module EnjuOai
|
|
63
64
|
oai[:need_not_to_search] = true
|
64
65
|
oai[:errors] << "badArgument"
|
65
66
|
end
|
67
|
+
oai[:metadataPrefix] = params[:metadataPrefix]
|
66
68
|
unless valid_metadata_format?(params[:metadataPrefix])
|
67
69
|
oai[:errors] << "cannotDisseminateFormat"
|
68
70
|
end
|
@@ -75,7 +77,7 @@ module EnjuOai
|
|
75
77
|
|
76
78
|
def valid_metadata_format?(format)
|
77
79
|
if format.present?
|
78
|
-
if ['oai_dc'].include?(format)
|
80
|
+
if ['oai_dc', 'junii2'].include?(format)
|
79
81
|
true
|
80
82
|
else
|
81
83
|
false
|
@@ -103,12 +105,11 @@ module EnjuOai
|
|
103
105
|
end
|
104
106
|
end
|
105
107
|
cursor ||= 0
|
106
|
-
ttl = EnjuLeaf::Application.config.cache_store.last[:expires_in].to_i
|
107
108
|
resumption = {
|
108
109
|
:token => "f(#{from_time.utc.iso8601.to_s}).u(#{until_time.utc.iso8601.to_s}):#{cursor}",
|
109
110
|
:cursor => cursor,
|
110
111
|
# memcachedの使用が前提
|
111
|
-
:expired_at =>
|
112
|
+
:expired_at => ENV['ENJU_OAI_TTL'].to_i.seconds.from_now.utc.iso8601
|
112
113
|
}
|
113
114
|
Rails.cache.fetch(resumption[:token]){resumption}
|
114
115
|
end
|
data/lib/enju_oai/version.rb
CHANGED
@@ -25,6 +25,12 @@ describe ManifestationsController do
|
|
25
25
|
response.should render_template("manifestations/list_records")
|
26
26
|
end
|
27
27
|
|
28
|
+
it "assigns all manifestations as @manifestations in oai format with ListRecords for junii2 metadata" do
|
29
|
+
get :index, :format => 'oai', :verb => 'ListRecords', :metadataPrefix => 'junii2'
|
30
|
+
assigns(:manifestations).should_not be_nil
|
31
|
+
response.should render_template("manifestations/list_records")
|
32
|
+
end
|
33
|
+
|
28
34
|
it "assigns all manifestations as @manifestations in oai format with ListIdentifiers" do
|
29
35
|
get :index, :format => 'oai', :verb => 'ListIdentifiers'
|
30
36
|
assigns(:manifestations).should_not be_nil
|
@@ -44,6 +50,12 @@ describe ManifestationsController do
|
|
44
50
|
assigns(:manifestation).should_not be_nil
|
45
51
|
response.should render_template('manifestations/show')
|
46
52
|
end
|
53
|
+
it "assigns all manifestations as @manifestations in oai format with GetRecord with identifier for junii2 metadata" do
|
54
|
+
get :index, :format => 'oai', :verb => 'GetRecord', :identifier => 'oai:localhost:manifestations-1', :metadataPrefix => 'junii2'
|
55
|
+
assigns(:manifestations).should be_nil
|
56
|
+
assigns(:manifestation).should_not be_nil
|
57
|
+
response.should render_template('manifestations/show')
|
58
|
+
end
|
47
59
|
end
|
48
60
|
end
|
49
61
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateNiiTypes < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :nii_types do |t|
|
4
|
+
t.string :name, :null => false
|
5
|
+
t.text :display_name
|
6
|
+
t.text :note
|
7
|
+
t.integer :position
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
add_index :nii_types, :name, :unique => true
|
12
|
+
end
|
13
|
+
end
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20150221063719) do
|
15
15
|
|
16
16
|
create_table "accepts", force: :cascade do |t|
|
17
17
|
t.integer "basket_id"
|
@@ -687,6 +687,7 @@ ActiveRecord::Schema.define(version: 20141014065831) do
|
|
687
687
|
t.datetime "updated_at"
|
688
688
|
t.text "admin_networks"
|
689
689
|
t.string "url", default: "http://localhost:3000/"
|
690
|
+
t.text "settings"
|
690
691
|
end
|
691
692
|
|
692
693
|
add_index "library_groups", ["short_name"], name: "index_library_groups_on_short_name"
|
@@ -807,6 +808,7 @@ ActiveRecord::Schema.define(version: 20141014065831) do
|
|
807
808
|
t.string "attachment_content_type"
|
808
809
|
t.integer "attachment_file_size"
|
809
810
|
t.datetime "attachment_updated_at"
|
811
|
+
t.integer "nii_type_id"
|
810
812
|
t.text "title_alternative_transcription"
|
811
813
|
t.text "description"
|
812
814
|
t.text "abstract"
|
@@ -835,6 +837,7 @@ ActiveRecord::Schema.define(version: 20141014065831) do
|
|
835
837
|
add_index "manifestations", ["access_address"], name: "index_manifestations_on_access_address"
|
836
838
|
add_index "manifestations", ["date_of_publication"], name: "index_manifestations_on_date_of_publication"
|
837
839
|
add_index "manifestations", ["manifestation_identifier"], name: "index_manifestations_on_manifestation_identifier"
|
840
|
+
add_index "manifestations", ["nii_type_id"], name: "index_manifestations_on_nii_type_id"
|
838
841
|
add_index "manifestations", ["updated_at"], name: "index_manifestations_on_updated_at"
|
839
842
|
|
840
843
|
create_table "medium_of_performances", force: :cascade do |t|
|
@@ -846,6 +849,17 @@ ActiveRecord::Schema.define(version: 20141014065831) do
|
|
846
849
|
t.datetime "updated_at"
|
847
850
|
end
|
848
851
|
|
852
|
+
create_table "nii_types", force: :cascade do |t|
|
853
|
+
t.string "name", null: false
|
854
|
+
t.text "display_name"
|
855
|
+
t.text "note"
|
856
|
+
t.integer "position"
|
857
|
+
t.datetime "created_at"
|
858
|
+
t.datetime "updated_at"
|
859
|
+
end
|
860
|
+
|
861
|
+
add_index "nii_types", ["name"], name: "index_nii_types_on_name", unique: true
|
862
|
+
|
849
863
|
create_table "owns", force: :cascade do |t|
|
850
864
|
t.integer "agent_id", null: false
|
851
865
|
t.integer "item_id", null: false
|
@@ -7,6 +7,11 @@ one:
|
|
7
7
|
note:
|
8
8
|
my_networks: 0.0.0.0/0
|
9
9
|
url: "http://localhost:3000/"
|
10
|
+
settings: <% if Rails::VERSION::MAJOR > 3 %>
|
11
|
+
"{\"max_number_of_results\":200,\"family_name_first\":true}"
|
12
|
+
<% else %>
|
13
|
+
"---\n:max_number_of_results: 200\n:family_name_first: true\n"
|
14
|
+
<% end %>
|
10
15
|
|
11
16
|
|
12
17
|
# == Schema Information
|
@@ -0,0 +1,78 @@
|
|
1
|
+
nii_type_00001:
|
2
|
+
id: 1
|
3
|
+
name: Journal Article
|
4
|
+
display_name: Journal Article
|
5
|
+
note:
|
6
|
+
position: 1
|
7
|
+
nii_type_00002:
|
8
|
+
id: 2
|
9
|
+
name: Thesis or Dissertation
|
10
|
+
display_name: Thesis or Dissertation
|
11
|
+
note:
|
12
|
+
position: 2
|
13
|
+
nii_type_00003:
|
14
|
+
id: 3
|
15
|
+
name: Departmental Bulletin Paper
|
16
|
+
display_name: Departmental Bulletin Paper
|
17
|
+
note:
|
18
|
+
position: 3
|
19
|
+
nii_type_00004:
|
20
|
+
id: 4
|
21
|
+
name: Conference Paper
|
22
|
+
display_name: Conference Paper
|
23
|
+
note:
|
24
|
+
position: 4
|
25
|
+
nii_type_00005:
|
26
|
+
id: 5
|
27
|
+
name: Presentation
|
28
|
+
display_name: Presentation
|
29
|
+
note:
|
30
|
+
position: 5
|
31
|
+
nii_type_00006:
|
32
|
+
id: 6
|
33
|
+
name: Book
|
34
|
+
display_name: Book
|
35
|
+
note:
|
36
|
+
position: 6
|
37
|
+
nii_type_00007:
|
38
|
+
id: 7
|
39
|
+
name: Technical Report
|
40
|
+
display_name: Technical Report
|
41
|
+
note:
|
42
|
+
position: 7
|
43
|
+
nii_type_00008:
|
44
|
+
id: 8
|
45
|
+
name: Research Paper
|
46
|
+
display_name: Research Paper
|
47
|
+
note:
|
48
|
+
position: 8
|
49
|
+
nii_type_00009:
|
50
|
+
id: 9
|
51
|
+
name: Article
|
52
|
+
display_name: Article
|
53
|
+
note:
|
54
|
+
position: 9
|
55
|
+
nii_type_00010:
|
56
|
+
id: 10
|
57
|
+
name: Preprint
|
58
|
+
display_name: Preprint
|
59
|
+
note:
|
60
|
+
position: 10
|
61
|
+
nii_type_00011:
|
62
|
+
id: 11
|
63
|
+
name: Learning Material
|
64
|
+
display_name: Learning Material
|
65
|
+
note:
|
66
|
+
position: 11
|
67
|
+
nii_type_00012:
|
68
|
+
id: 12
|
69
|
+
name: Data or Dataset
|
70
|
+
display_name: Data or Dataset
|
71
|
+
note:
|
72
|
+
position: 12
|
73
|
+
nii_type_00013:
|
74
|
+
id: 13
|
75
|
+
name: Others
|
76
|
+
display_name: Others
|
77
|
+
note:
|
78
|
+
position: 13
|
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "manifestations/list_identifiers.oai.builder" do
|
5
|
+
fixtures :all
|
6
|
+
before(:each) do
|
7
|
+
view.stub(:current_user_role_name).and_return('Guest')
|
8
|
+
assign(:oai, { :errors => [] })
|
9
|
+
assign(:manifestations, [ FactoryGirl.create(:manifestation) ])
|
10
|
+
end
|
11
|
+
it "renders the XML template" do
|
12
|
+
render
|
13
|
+
expect(rendered).to match /<ListIdentifiers>/
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "manifestations/list_metadata_formats.oai.builder" do
|
5
|
+
fixtures :all
|
6
|
+
it "renders the XML template" do
|
7
|
+
render
|
8
|
+
expect(rendered).to match /<ListMetadataFormats>/
|
9
|
+
end
|
10
|
+
it "supports oai_dc metadata format" do
|
11
|
+
render
|
12
|
+
expect(rendered).to match /oai_dc/
|
13
|
+
end
|
14
|
+
it "supports junii2 metadata format" do
|
15
|
+
render
|
16
|
+
expect(rendered).to match /junii2/
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "manifestations/list_records.oai.builder" do
|
5
|
+
fixtures :all
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
view.stub(:current_user_role_name).and_return('Guest')
|
9
|
+
assign(:oai, { :errors => [] })
|
10
|
+
assign(:manifestations, [FactoryGirl.create(:manifestation)])
|
11
|
+
end
|
12
|
+
|
13
|
+
it "renders the XML template" do
|
14
|
+
render
|
15
|
+
expect(rendered).to match /<metadata>/
|
16
|
+
end
|
17
|
+
|
18
|
+
it "renders dc:date" do
|
19
|
+
assign(:manifestations, [FactoryGirl.create(:manifestation, pub_date: '2015-08-15')])
|
20
|
+
render
|
21
|
+
expect(rendered).to match /2015-08-15/
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "when metadataPrefix is oai_dc" do
|
25
|
+
before(:each) do
|
26
|
+
assign(:oai, { :errors => [], :metadataPrefix => 'oai_dc' } )
|
27
|
+
end
|
28
|
+
it "renders the XML template" do
|
29
|
+
render
|
30
|
+
expect(rendered).to match /<oai_dc/
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "when metadataPrefix is junii2" do
|
35
|
+
before(:each) do
|
36
|
+
assign(:oai, { :errors => [], :metadataPrefix => 'junii2' } )
|
37
|
+
end
|
38
|
+
it "renders the XML template" do
|
39
|
+
render
|
40
|
+
expect(rendered).to match /<junii2/
|
41
|
+
end
|
42
|
+
it "renders NIItype" do
|
43
|
+
assign(:manifestations, [FactoryGirl.create(:manifestation, nii_type_id: 1)])
|
44
|
+
render
|
45
|
+
expect(rendered).to match /<NIItype>Journal Article<\/NIItype>/
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|