enju_ndl 0.0.27 → 0.0.29
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.
- data/db/migrate/20100129142347_create_import_requests.rb +15 -0
- data/lib/enju_ndl.rb +2 -0
- data/lib/enju_ndl/ndl_search.rb +8 -8
- data/lib/enju_ndl/version.rb +1 -1
- metadata +35 -2
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateImportRequests < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :import_requests do |t|
|
4
|
+
t.string :isbn
|
5
|
+
t.string :state
|
6
|
+
t.integer :manifestation_id
|
7
|
+
t.integer :user_id
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
add_index :import_requests, :isbn
|
12
|
+
add_index :import_requests, :manifestation_id
|
13
|
+
add_index :import_requests, :user_id
|
14
|
+
end
|
15
|
+
end
|
data/lib/enju_ndl.rb
CHANGED
data/lib/enju_ndl/ndl_search.rb
CHANGED
@@ -7,13 +7,13 @@ module EnjuNdl
|
|
7
7
|
|
8
8
|
module ClassMethods
|
9
9
|
def import_isbn(isbn)
|
10
|
-
|
11
|
-
raise EnjuNdl::InvalidIsbn unless
|
10
|
+
lisbn = Lisbn.new(isbn)
|
11
|
+
raise EnjuNdl::InvalidIsbn unless lisbn.valid?
|
12
12
|
|
13
|
-
manifestation = Manifestation.find_by_isbn(isbn)
|
13
|
+
manifestation = Manifestation.find_by_isbn(lisbn.isbn)
|
14
14
|
return manifestation if manifestation
|
15
15
|
|
16
|
-
doc = return_xml(isbn)
|
16
|
+
doc = return_xml(lisbn.isbn)
|
17
17
|
raise EnjuNdl::RecordNotFound unless doc
|
18
18
|
#raise EnjuNdl::RecordNotFound if doc.at('//openSearch:totalResults').content.to_i == 0
|
19
19
|
import_record(doc)
|
@@ -50,8 +50,8 @@ module EnjuNdl
|
|
50
50
|
language_id = 1
|
51
51
|
end
|
52
52
|
|
53
|
-
isbn =
|
54
|
-
issn_l =
|
53
|
+
isbn = Lisbn.new(doc.at('//dcterms:identifier[@rdf:datatype="http://ndl.go.jp/dcndl/terms/ISBN"]').try(:content).to_s).try(:isbn)
|
54
|
+
issn_l = StdNum::ISSN.normalize(doc.at('//dcterms:identifier[@rdf:datatype="http://ndl.go.jp/dcndl/terms/ISSNL"]').try(:content))
|
55
55
|
classification_urls = doc.xpath('//dcterms:subject[@rdf:resource]').map{|subject| subject.attributes['resource'].value}
|
56
56
|
if classification_urls
|
57
57
|
ndc9_url = classification_urls.map{|url| URI.parse(URI.escape(url))}.select{|u| u.path.split('/').reverse[1] == 'ndc9'}.first
|
@@ -172,9 +172,9 @@ module EnjuNdl
|
|
172
172
|
|
173
173
|
def normalize_isbn(isbn)
|
174
174
|
if isbn.length == 10
|
175
|
-
|
175
|
+
Lisbn.new(isbn).isbn13
|
176
176
|
else
|
177
|
-
|
177
|
+
Lisbn.new(isbn).isbn10
|
178
178
|
end
|
179
179
|
end
|
180
180
|
|
data/lib/enju_ndl/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enju_ndl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.29
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -155,6 +155,38 @@ dependencies:
|
|
155
155
|
- - ! '>='
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: lisbn
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :runtime
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: library_stdnums
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - ! '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
type: :runtime
|
183
|
+
prerelease: false
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
158
190
|
- !ruby/object:Gem::Dependency
|
159
191
|
name: sqlite3
|
160
192
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,6 +282,7 @@ files:
|
|
250
282
|
- config/locales/en.yml
|
251
283
|
- config/locales/ja.yml
|
252
284
|
- config/routes.rb
|
285
|
+
- db/migrate/20100129142347_create_import_requests.rb
|
253
286
|
- lib/enju_ndl/crd.rb
|
254
287
|
- lib/enju_ndl/engine.rb
|
255
288
|
- lib/enju_ndl/ndl_search.rb
|