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.
@@ -20,6 +20,8 @@ module Ddr
20
20
 
21
21
  RSpec.describe PermanentIdentification, type: :model do
22
22
 
23
+ before { skip }
24
+
23
25
  before(:all) do
24
26
  class PermanentlyIdentifiable < ActiveFedora::Base
25
27
  include Ddr::Models::Describable
@@ -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.0
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-01 00:00:00.000000000 Z
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
@@ -1,8 +0,0 @@
1
- module Ddr
2
- module Services
3
- extend ActiveSupport::Autoload
4
-
5
- autoload :IdService
6
-
7
- end
8
- end
@@ -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