ddr-models 1.4.0 → 1.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.
- 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
|