ddr-models 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ddr/auth/ability.rb +3 -10
- data/lib/ddr/datastreams/descriptive_metadata_datastream.rb +1 -1
- data/lib/ddr/models.rb +0 -4
- data/lib/ddr/models/engine.rb +0 -4
- data/lib/ddr/models/permanent_identification.rb +1 -26
- data/lib/ddr/models/version.rb +1 -1
- data/spec/dummy/log/development.log +1629 -0
- data/spec/dummy/log/test.log +16041 -0
- data/spec/models/permanent_identification_spec.rb +2 -0
- data/spec/spec_helper.rb +0 -4
- metadata +2 -6
- data/lib/ddr/services.rb +0 -8
- data/lib/ddr/services/id_service.rb +0 -50
- data/spec/services/id_service_spec.rb +0 -33
data/spec/spec_helper.rb
CHANGED
@@ -103,7 +103,6 @@ RSpec.configure do |config|
|
|
103
103
|
Ddr::Models.configure do |config|
|
104
104
|
config.external_file_store = Dir.mktmpdir
|
105
105
|
config.external_file_subpath_pattern = "--"
|
106
|
-
config.minter_statefile = Tempfile.new("minter_statefile").path
|
107
106
|
end
|
108
107
|
end
|
109
108
|
|
@@ -111,9 +110,6 @@ RSpec.configure do |config|
|
|
111
110
|
if Ddr::Models.external_file_store && Dir.exist?(Ddr::Models.external_file_store)
|
112
111
|
FileUtils.remove_entry_secure(Ddr::Models.external_file_store)
|
113
112
|
end
|
114
|
-
if Ddr::Models.minter_statefile && File.exist?(Ddr::Models.minter_statefile)
|
115
|
-
FileUtils.remove_entry_secure(Ddr::Models.minter_statefile)
|
116
|
-
end
|
117
113
|
end
|
118
114
|
|
119
115
|
config.after(:each) do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddr-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Coble
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-12-
|
12
|
+
date: 2014-12-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -320,8 +320,6 @@ files:
|
|
320
320
|
- lib/ddr/models/solr_document.rb
|
321
321
|
- lib/ddr/models/version.rb
|
322
322
|
- lib/ddr/notifications.rb
|
323
|
-
- lib/ddr/services.rb
|
324
|
-
- lib/ddr/services/id_service.rb
|
325
323
|
- lib/ddr/utils.rb
|
326
324
|
- lib/ddr/workflow.rb
|
327
325
|
- lib/ddr/workflow/workflow_state.rb
|
@@ -399,7 +397,6 @@ files:
|
|
399
397
|
- spec/models/target_spec.rb
|
400
398
|
- spec/models/user_spec.rb
|
401
399
|
- spec/services/group_service_spec.rb
|
402
|
-
- spec/services/id_service_spec.rb
|
403
400
|
- spec/spec_helper.rb
|
404
401
|
- spec/support/shared_examples_for_access_controllables.rb
|
405
402
|
- spec/support/shared_examples_for_associations.rb
|
@@ -512,7 +509,6 @@ test_files:
|
|
512
509
|
- spec/models/target_spec.rb
|
513
510
|
- spec/models/user_spec.rb
|
514
511
|
- spec/services/group_service_spec.rb
|
515
|
-
- spec/services/id_service_spec.rb
|
516
512
|
- spec/spec_helper.rb
|
517
513
|
- spec/support/shared_examples_for_access_controllables.rb
|
518
514
|
- spec/support/shared_examples_for_associations.rb
|
data/lib/ddr/services.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'noid'
|
2
|
-
|
3
|
-
module Ddr
|
4
|
-
module Services
|
5
|
-
module IdService
|
6
|
-
|
7
|
-
NOID_TEMPLATE = "2.reeddeeddk"
|
8
|
-
|
9
|
-
def self.noid_template
|
10
|
-
NOID_TEMPLATE
|
11
|
-
end
|
12
|
-
|
13
|
-
@minter = ::Noid::Minter.new(template: noid_template)
|
14
|
-
@semaphore = Mutex.new
|
15
|
-
|
16
|
-
def self.valid? noid
|
17
|
-
@minter.valid? noid
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.mint
|
21
|
-
@semaphore.synchronize do
|
22
|
-
while true
|
23
|
-
minted = Ddr::Models::MintedId.new(minted_id: self.next_id)
|
24
|
-
return minted.minted_id if minted.save
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
protected
|
30
|
-
|
31
|
-
def self.next_id
|
32
|
-
noid = ''
|
33
|
-
File.open(Ddr::Models.minter_statefile, File::RDWR|File::CREAT, 0644) do |f|
|
34
|
-
f.flock(File::LOCK_EX)
|
35
|
-
yaml = YAML::load(f.read)
|
36
|
-
yaml = {template: noid_template} unless yaml
|
37
|
-
minter = ::Noid::Minter.new(yaml)
|
38
|
-
noid = minter.mint
|
39
|
-
f.rewind
|
40
|
-
yaml = YAML::dump(minter.dump)
|
41
|
-
f.write yaml
|
42
|
-
f.flush
|
43
|
-
f.truncate(f.pos)
|
44
|
-
end
|
45
|
-
noid
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
RSpec.describe Ddr::Services::IdService do
|
4
|
-
|
5
|
-
before { FileUtils.rm(Ddr::Models.minter_statefile) if File.exists?(Ddr::Models.minter_statefile)}
|
6
|
-
after { FileUtils.rm(Ddr::Models.minter_statefile) }
|
7
|
-
|
8
|
-
context "identifier format" do
|
9
|
-
before { allow(Ddr::Services::IdService).to receive(:noid_template).and_return("x.rddeeddeek") }
|
10
|
-
it "should mint identifiers of the appropriate format" do
|
11
|
-
expect(Ddr::Services::IdService.mint).to match(/x\d\d\w\w\d\d\w\w\w/)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
context "duplicate identifiers" do
|
16
|
-
before do
|
17
|
-
allow(Ddr::Services::IdService).to receive(:noid_template).and_return(".rd")
|
18
|
-
Ddr::Models::MintedId.create(minted_id: '0')
|
19
|
-
Ddr::Models::MintedId.create(minted_id: '1')
|
20
|
-
Ddr::Models::MintedId.create(minted_id: '2')
|
21
|
-
Ddr::Models::MintedId.create(minted_id: '3')
|
22
|
-
Ddr::Models::MintedId.create(minted_id: '4')
|
23
|
-
Ddr::Models::MintedId.create(minted_id: '6')
|
24
|
-
Ddr::Models::MintedId.create(minted_id: '7')
|
25
|
-
Ddr::Models::MintedId.create(minted_id: '8')
|
26
|
-
Ddr::Models::MintedId.create(minted_id: '9')
|
27
|
-
end
|
28
|
-
it "should not mint an already existing identifier" do
|
29
|
-
expect(Ddr::Services::IdService.mint).to eq('5')
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|