samvera-nesting_indexer 1.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cda0810a46d78a31bbf3dfe29b0bc43f184657c0
4
- data.tar.gz: c0d79f4628040a28de9735b358223d6a648759cf
3
+ metadata.gz: 476ac6dd12de858bd342468c294cf3eb182681fb
4
+ data.tar.gz: 248c720f7ab465acfe3c9b131e96dc34ab780938
5
5
  SHA512:
6
- metadata.gz: 3aceaba25afffb5c2f7776e7d0df1f6fc6bcd7de1b23b6acad1cbd2413f0f0decb7192b8cc15fc0e0e1c264bf8c9e3b2429544ce5f60aaaa162608f1d6df992c
7
- data.tar.gz: 66ae2cdd1470fef272535138656a672c625de02419a992bee823fb7342a5ecdd97c421f7a585167023c5881afb569c9f4a574917a296f5ba009cdf5e73e04d0b
6
+ metadata.gz: 015ff0f42fb0b4e52d504f6382bcc8acac1db129db25f1f2f452cf5df7acec3edaca82fcfe8132714286ecaf316a46958c3d15dc07c7183881e429fad32f8d25
7
+ data.tar.gz: 683b23f760950613e746ac4fd3b2be59c2fb392acb2399245f5e8e6f9264d51704ae6599e5e613408d1d355a2321d8c429e6d40f1a4d8b318c7b7fefbfd596cf
data/README.md CHANGED
@@ -109,10 +109,12 @@ end
109
109
 
110
110
  The following sequence diagram documents the interactions in [Samvera::NestingIndexer::RelationshipReindexer](lib/samvera/nesting_indexer/relationship_reindexer.rb).
111
111
 
112
- ![Reindex Relationship Diagram](documentation/reindex_relationship.mermaid.jpg)
112
+ ![Reindex Relationship Diagram](documentation/reindex_relationship.mermaid.png)
113
113
 
114
114
  See [the text-based version of Reindex Relationship diagram](documentation/reindex_relationship.mermaid), leveraging the [Mermaid syntax](https://mermaidjs.github.io).
115
115
 
116
+ See [documentation/README.md](documentation/README.md) for details on updating the diagram.
117
+
116
118
  ## Considerations
117
119
 
118
120
  Given a single object A, when we reindex A, we:
@@ -0,0 +1,13 @@
1
+ For generating a JPG from a mermaid file, you may use the [mermaid.cli tool](https://github.com/mermaidjs/mermaid.cli) or use the [atom-mermaid](https://atom.io/packages/atom-mermaid) plugin for the [Atom editor](https://atom.io).
2
+
3
+ ## Using atom-mermaid
4
+
5
+ * From Atom, install the 'atom-mermaid' package and restart Atom.
6
+ * Then go to the corresponding `.mermaid` file
7
+ * Select the Atom menu item Packages > Mermaid Preview > Toggle Preview
8
+ * Right-Click on the opened preview and select "Save as PNG"
9
+ * Copy the saved PNG to the appropriate location (e.g. `./documentation/`)
10
+
11
+ ## Using mermaid.cli
12
+
13
+ You'll need to give it a try.
@@ -15,8 +15,9 @@ sequenceDiagram
15
15
  Indexer-->>Adapter: adapter.find_preservation_document_by(id:)
16
16
  Adapter-->>Preservation: get preservation document
17
17
  Preservation-->>Indexer: receive preservation document
18
+ Indexer-->>Indexer: build_nesting_document_for(preservation document)
18
19
  Indexer-->>Indexer: guard_against_possiblity_of_self_ancestry
19
- Indexer-->>Adapter: adapter.write_document_attributes_to_index_layer
20
+ Indexer-->>Adapter: adapter.write_nesting_document_to_index_layer
20
21
  Adapter-->>Index: write updated application index document
21
22
  Indexer-->>Indexer: enqueue children
22
23
  end
@@ -8,7 +8,7 @@ module Samvera
8
8
  # Responsible for exposing the install generator (e.g. rails generator install amvera:nesting_indexer:install)
9
9
  class InstallGenerator < Rails::Generators::Base
10
10
  DEFAULT_MAXIMUM_NESTING_DEPTH = 5
11
- source_root File.expand_path("../templates", __FILE__)
11
+ source_root File.expand_path('templates', __dir__)
12
12
  desc "Creates a Samvera::NestingIndexer initializer."
13
13
  class_option(
14
14
  :adapter,
@@ -21,4 +21,5 @@ Samvera::NestingIndexer.configure do |config|
21
21
  # config.solr_field_name_for_storing_parent_ids = Solrizer.solr_name('nesting_collection__parent_ids', :symbol)
22
22
  # config.solr_field_name_for_storing_ancestors = Solrizer.solr_name('nesting_collection__ancestors', :symbol)
23
23
  # config.solr_field_name_for_storing_pathnames = Solrizer.solr_name('nesting_collection__pathnames', :symbol)
24
+ # config.solr_field_name_for_deepest_nested_depth = Solrizer.solr_name('nesting_collection__deepest_nested_depth', :integer)
24
25
  end
@@ -18,12 +18,13 @@ module Samvera
18
18
  # @param id [String] - The permanent identifier of the object that will be reindexed along with its children.
19
19
  # @param maximum_nesting_depth [Integer] - used to short-circuit overly deep nesting as well as prevent accidental cyclic graphs
20
20
  # from creating an infinite loop.
21
+ # @param extent [String] - may be leveraged in adapter to limit the extent of the reindexing of children
21
22
  # @return [Boolean] - It was successful
22
23
  # @raise Samvera::Exceptions::CycleDetectionError - A possible cycle was detected
23
24
  # @raise Samvera::Exceptions::ExceededMaximumNestingDepthError - We exceeded our maximum depth
24
25
  # @raise Samvera::Exceptions::DocumentIsItsOwnAncestorError - A document we were about to index appeared to be its own ancestor
25
- def self.reindex_relationships(id:, maximum_nesting_depth: configuration.maximum_nesting_depth)
26
- RelationshipReindexer.call(id: id, maximum_nesting_depth: maximum_nesting_depth, configuration: configuration)
26
+ def self.reindex_relationships(id:, maximum_nesting_depth: configuration.maximum_nesting_depth, extent:)
27
+ RelationshipReindexer.call(id: id, maximum_nesting_depth: maximum_nesting_depth, configuration: configuration, extent: extent)
27
28
  true
28
29
  end
29
30
 
@@ -36,13 +37,14 @@ module Samvera
36
37
  # @api public
37
38
  # Responsible for reindexing the entire preservation layer.
38
39
  # @param maximum_nesting_depth [Integer] - there to guard against cyclic graphs
40
+ # @param extent [String] - for reindex_all, should result in full reindexing... leveraged in adapter to limit the extent of the reindexing of children
39
41
  # @return [Boolean] - It was successful
40
42
  # @raise Samvera::Exceptions::ReindexingError - There was a problem reindexing the graph.
41
- def self.reindex_all!(maximum_nesting_depth: configuration.maximum_nesting_depth)
43
+ def self.reindex_all!(maximum_nesting_depth: configuration.maximum_nesting_depth, extent:)
42
44
  # While the RepositoryReindexer is responsible for reindexing everything, I
43
45
  # want to inject the lambda that will reindex a single item.
44
46
  id_reindexer = method(:reindex_relationships)
45
- RepositoryReindexer.call(maximum_nesting_depth: maximum_nesting_depth, id_reindexer: id_reindexer, configuration: configuration)
47
+ RepositoryReindexer.call(maximum_nesting_depth: maximum_nesting_depth, id_reindexer: id_reindexer, configuration: configuration, extent: extent)
46
48
  true
47
49
  end
48
50
 
@@ -89,9 +91,5 @@ module Samvera
89
91
  @configuration_block.call(configuration)
90
92
  @configuration_block = nil
91
93
  end
92
-
93
- def self.semantic_version_messages
94
- SemverAssistant.messages
95
- end
96
94
  end
97
95
  end
@@ -37,21 +37,9 @@ module Samvera
37
37
 
38
38
  # @api public
39
39
  # @param document [Samvera::NestingIndexer::Documents::IndexDocument]
40
+ # @param extent [String] passed into adapter from reindex_relationships call
40
41
  # @yield [Samvera::NestingIndexer::Documents::IndexDocument]
41
- def self.each_child_document_of(document:, &block)
42
- raise NotImplementedError
43
- end
44
-
45
- # @api public
46
- # @deprecated Use .write_nesting_document_to_index_layer instead
47
- # @see README.md
48
- # @param id [String]
49
- # @param parent_ids [Array<String>]
50
- # @param ancestors [Array<String>]
51
- # @param pathnames [Array<String>]
52
- # @param deepest_nested_depth [Integer]
53
- # @return Hash - the attributes written to the indexing layer
54
- def self.write_document_attributes_to_index_layer(id:, parent_ids:, ancestors:, pathnames:, deepest_nested_depth:)
42
+ def self.each_child_document_of(document:, extent:, &block)
55
43
  raise NotImplementedError
56
44
  end
57
45
 
@@ -4,34 +4,30 @@ require 'samvera/nesting_indexer/documents'
4
4
  module Samvera
5
5
  module NestingIndexer
6
6
  module Adapters
7
- # @api public
7
+ # @api private
8
8
  #
9
9
  # Defines the interface for interacting with the InMemory layer. It is a reference
10
10
  # implementation that is used throughout tests.
11
11
  module InMemoryAdapter
12
- SemverAssistant.removing_from_public_api(context: self, as_of: '2.0.0')
13
12
  extend AbstractAdapter
14
- # @api public
13
+ # @api private
15
14
  # @param id [String]
16
15
  # @return Samvera::NestingIndexer::Document::PreservationDocument
17
16
  def self.find_preservation_document_by(id:)
18
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
19
17
  Preservation.find(id)
20
18
  end
21
19
 
22
- # @api public
20
+ # @api private
23
21
  # @param id [String]
24
22
  # @return [Samvera::NestingIndexer::Documents::IndexDocument]
25
23
  def self.find_index_document_by(id:)
26
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
27
24
  Index.find(id)
28
25
  end
29
26
 
30
- # @api public
27
+ # @api private
31
28
  # @yieldparam id [String] The `id` of the preservation document
32
29
  # @yieldparam parent_ids [String] The ids of the parent objects of this presevation document
33
30
  def self.each_perservation_document_id_and_parent_ids(&block)
34
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
35
31
  Preservation.find_each do |document|
36
32
  block.call(document.id, document.parent_ids)
37
33
  end
@@ -41,42 +37,29 @@ module Samvera
41
37
  Preservation.find(id).parent_ids
42
38
  end
43
39
 
44
- # @api public
40
+ # @api private
45
41
  # @param document [Samvera::NestingIndexer::Documents::IndexDocument]
42
+ # @param extent [String] passed into adapter from reindex_relationships call
46
43
  # @yield [Samvera::NestingIndexer::Documents::IndexDocument]
47
- def self.each_child_document_of(document:, &block)
48
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
49
- Index.each_child_document_of(document: document, &block)
44
+ # rubocop:disable Lint/UnusedMethodArgument
45
+ def self.each_child_document_of(document:, extent:, &block)
46
+ Index.each_child_document_of(document: document, extent: "full", &block)
50
47
  end
48
+ # rubocop:enable Lint/UnusedMethodArgument
51
49
 
52
- # @api public
50
+ # @api private
53
51
  # This is not something that I envision using in the production environment;
54
52
  # It is hear to keep the Preservation system isolated and accessible only through interfaces.
55
53
  # @param attributes [Hash]
56
54
  # @return [Samvera::NestingIndexer::Documents::PreservationDocument]
57
55
  def self.write_document_attributes_to_preservation_layer(attributes)
58
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
59
56
  Preservation.write_document(attributes)
60
57
  end
61
58
 
62
- # @api public
63
- # @see README.md
64
- # @param id [String]
65
- # @param parent_ids [Array<String>]
66
- # @param ancestors [Array<String>]
67
- # @param pathnames [Array<String>]
68
- # @param deepest_nested_depth [Integer]
69
- # @return [Hash] - the attributes written to the indexing layer
70
- def self.write_document_attributes_to_index_layer(id:, parent_ids:, ancestors:, pathnames:, deepest_nested_depth:)
71
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
72
- Index.write_document(id: id, parent_ids: parent_ids, ancestors: ancestors, pathnames: pathnames, deepest_nested_depth: deepest_nested_depth)
73
- end
74
-
75
- # @api public
59
+ # @api private
76
60
  # @see README.md
77
61
  # @param nesting_document [Samvera::NestingIndexer::Documents::IndexDocument]
78
62
  def self.write_nesting_document_to_index_layer(nesting_document:)
79
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
80
63
  Index.write_to_storage(nesting_document)
81
64
  end
82
65
 
@@ -172,18 +155,16 @@ module Samvera
172
155
  Storage.find_each(&block)
173
156
  end
174
157
 
175
- def self.each_child_document_of(document:, &block)
158
+ # rubocop:disable Lint/UnusedMethodArgument
159
+ def self.each_child_document_of(document:, extent: nil, &block)
176
160
  Storage.find_children_of_id(document.id).each(&block)
177
161
  end
162
+ # rubocop:enable Lint/UnusedMethodArgument
178
163
 
179
164
  def self.write_to_storage(doc)
180
165
  Storage.write(doc)
181
166
  end
182
167
 
183
- def self.write_document(attributes = {})
184
- Documents::IndexDocument.new(attributes).tap { |doc| write_to_storage(doc) }
185
- end
186
-
187
168
  # :nodoc:
188
169
  module Storage
189
170
  extend StorageModule
@@ -68,10 +68,10 @@ if defined?(RSpec)
68
68
  subject { described_class.method(:each_child_document_of) }
69
69
 
70
70
  it 'requires the :document keyword (and does not require any others)' do
71
- expect(required_keyword_parameters.call(subject)).to eq([:document])
71
+ expect(required_keyword_parameters.call(subject)).to eq(%i(document extent))
72
72
  end
73
73
 
74
- it 'does not require any other parameters (besides :document)' do
74
+ it 'does not require any other parameters (besides :document, :extent)' do
75
75
  expect(required_parameters.call(subject)).to eq(required_keyword_parameters.call(subject))
76
76
  end
77
77
 
@@ -79,21 +79,6 @@ if defined?(RSpec)
79
79
  expect(block_parameter_extracter.call(subject)).to eq([:block])
80
80
  end
81
81
  end
82
- describe '.write_document_attributes_to_index_layer' do
83
- subject { described_class.method(:write_document_attributes_to_index_layer) }
84
-
85
- it 'requires the :ancestors, :deepest_nested_depth, :id, :parent_ids, and :pathnames keyword (and does not require any others)' do
86
- expect(required_keyword_parameters.call(subject)).to eq(%i(ancestors deepest_nested_depth id parent_ids pathnames))
87
- end
88
-
89
- it 'does not require any other parameters (besides :attributes)' do
90
- expect(required_parameters.call(subject)).to eq(required_keyword_parameters.call(subject))
91
- end
92
-
93
- it 'does not expect a block' do
94
- expect(block_parameter_extracter.call(subject)).to be_empty
95
- end
96
- end
97
82
 
98
83
  describe '.write_nesting_document_to_index_layer' do
99
84
  subject { described_class.method(:write_nesting_document_to_index_layer) }
@@ -46,6 +46,14 @@ module Samvera
46
46
  @solr_field_name_for_storing_pathnames || raise(Exceptions::SolrKeyConfigurationError.new(name: __method__, config: self))
47
47
  end
48
48
 
49
+ def solr_field_name_for_deepest_nested_depth=(input)
50
+ @solr_field_name_for_deepest_nested_depth = input.to_s
51
+ end
52
+
53
+ def solr_field_name_for_deepest_nested_depth
54
+ @solr_field_name_for_deepest_nested_depth || raise(Exceptions::SolrKeyConfigurationError.new(name: __method__, config: self))
55
+ end
56
+
49
57
  # @api public
50
58
  # @return Samvera::NestingIndexer::Adapters::AbstractAdapter
51
59
  def adapter
@@ -1,5 +1,4 @@
1
1
  require 'dry-equalizer'
2
- require 'samvera/nesting_indexer/semver_assistant'
3
2
 
4
3
  module Samvera
5
4
  module NestingIndexer
@@ -7,7 +6,7 @@ module Samvera
7
6
  module Documents
8
7
  ANCESTOR_AND_PATHNAME_DELIMITER = '/'.freeze
9
8
 
10
- # @api public
9
+ # @api private
11
10
  #
12
11
  # A simplified document that reflects the necessary attributes for re-indexing
13
12
  # the children of Fedora objects.
@@ -16,21 +15,18 @@ module Samvera
16
15
  @id = keywords.fetch(:id).to_s
17
16
  @parent_ids = Array(keywords.fetch(:parent_ids))
18
17
  end
19
- SemverAssistant.removing_from_public_api(context: self, as_of: '2.0.0')
20
18
 
21
- # @api public
19
+ # @api private
22
20
  # @return String The Fedora object's PID
23
21
  attr_reader :id
24
- SemverAssistant.removing_from_public_api(context: "#{self}#id", as_of: '2.0.0')
25
22
 
26
- # @api public
23
+ # @api private
27
24
  #
28
25
  # All of the direct parents of the Fedora document associated with the given PID.
29
26
  #
30
27
  # This does not include grandparents, great-grandparents, etc.
31
28
  # @return Array<String>
32
29
  attr_reader :parent_ids
33
- SemverAssistant.removing_from_public_api(context: "#{self}#parent_id", as_of: '2.0.0')
34
30
  end
35
31
 
36
32
  # @api public
@@ -106,18 +102,18 @@ module Samvera
106
102
  end.max
107
103
  end
108
104
 
105
+ # @api private
109
106
  def sorted_parent_ids
110
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
111
107
  parent_ids.sort
112
108
  end
113
109
 
110
+ # @api private
114
111
  def sorted_pathnames
115
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
116
112
  pathnames.sort
117
113
  end
118
114
 
115
+ # @api private
119
116
  def sorted_ancestors
120
- SemverAssistant.removing_from_public_api(context: "#{self.class}##{__method__}", as_of: '2.0.0')
121
117
  ancestors.sort
122
118
  end
123
119
  end
@@ -22,11 +22,13 @@ module Samvera
22
22
  # @param maximum_nesting_depth [Integer] What is the maximum allowed depth of nesting
23
23
  # @param configuration [#adapter, #logger] The :adapter conforms to the Samvera::NestingIndexer::Adapters::AbstractAdapter interface
24
24
  # and the :logger conforms to Logger
25
+ # @param extent [String] - may be leveraged in adapter to limit the extent of the reindexing of children
25
26
  # @param queue [#shift, #push] queue
26
- def initialize(id:, maximum_nesting_depth:, configuration:, queue: [])
27
+ def initialize(id:, maximum_nesting_depth:, configuration:, extent:, queue: [])
27
28
  @id = id.to_s
28
29
  @maximum_nesting_depth = maximum_nesting_depth.to_i
29
30
  @configuration = configuration
31
+ @extent = extent
30
32
  @queue = queue
31
33
  end
32
34
  attr_reader :id, :maximum_nesting_depth
@@ -43,13 +45,13 @@ module Samvera
43
45
 
44
46
  private
45
47
 
46
- attr_reader :queue, :configuration
48
+ attr_reader :queue, :configuration, :extent
47
49
 
48
50
  def process_each_document
49
51
  processing_document = dequeue
50
52
  while processing_document
51
53
  process_a_document(processing_document)
52
- adapter.each_child_document_of(document: processing_document) do |child|
54
+ adapter.each_child_document_of(document: processing_document, extent: extent) do |child|
53
55
  enqueue(child, processing_document.maximum_nesting_depth - 1)
54
56
  end
55
57
  processing_document = dequeue
@@ -57,7 +59,7 @@ module Samvera
57
59
  end
58
60
 
59
61
  def initial_index_document
60
- adapter.find_index_document_by(id: id)
62
+ @initial_index_document ||= adapter.find_index_document_by(id: id)
61
63
  end
62
64
 
63
65
  extend Forwardable
@@ -127,7 +129,7 @@ module Samvera
127
129
 
128
130
  private
129
131
 
130
- attr_reader :adapter
132
+ attr_reader :adapter, :extent
131
133
 
132
134
  def compile!
133
135
  @preservation_document.parent_ids.each do |parent_id|
@@ -22,10 +22,11 @@ module Samvera
22
22
  # @param maximum_nesting_depth [Integer] detect cycles in the graph
23
23
  # @param configuration [#adapter, #logger] The :adapter conforms to the Samvera::NestingIndexer::Adapters::AbstractAdapter interface
24
24
  # and the :logger conforms to Logger
25
- def initialize(maximum_nesting_depth:, id_reindexer:, configuration:)
25
+ def initialize(maximum_nesting_depth:, id_reindexer:, configuration:, extent:)
26
26
  @maximum_nesting_depth = maximum_nesting_depth.to_i
27
27
  @id_reindexer = id_reindexer
28
28
  @configuration = configuration
29
+ @extent = extent
29
30
  @processed_ids = []
30
31
  end
31
32
 
@@ -38,7 +39,7 @@ module Samvera
38
39
 
39
40
  private
40
41
 
41
- attr_reader :maximum_nesting_depth, :processed_ids, :id_reindexer, :configuration
42
+ attr_reader :maximum_nesting_depth, :processed_ids, :id_reindexer, :configuration, :extent
42
43
 
43
44
  extend Forwardable
44
45
  def_delegator :configuration, :adapter
@@ -62,7 +63,7 @@ module Samvera
62
63
  end
63
64
 
64
65
  def reindex_an_id(id)
65
- id_reindexer.call(id: id)
66
+ id_reindexer.call(id: id, extent: extent)
66
67
  processed_ids << id
67
68
  rescue StandardError => e
68
69
  logger.error(e)
@@ -1,5 +1,5 @@
1
1
  module Samvera
2
2
  module NestingIndexer
3
- VERSION = "1.0.1".freeze
3
+ VERSION = "2.0.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: samvera-nesting_indexer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Friesen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-16 00:00:00.000000000 Z
11
+ date: 2018-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -259,8 +259,9 @@ files:
259
259
  - Rakefile
260
260
  - bin/console
261
261
  - bin/setup
262
+ - documentation/README.md
262
263
  - documentation/reindex_relationship.mermaid
263
- - documentation/reindex_relationship.mermaid.jpg
264
+ - documentation/reindex_relationship.mermaid.png
264
265
  - lib/generators/samvera/nesting_indexer/install_generator.rb
265
266
  - lib/generators/samvera/nesting_indexer/templates/README
266
267
  - lib/generators/samvera/nesting_indexer/templates/samvera-nesting_indexer_initializer.rb
@@ -275,7 +276,6 @@ files:
275
276
  - lib/samvera/nesting_indexer/railtie.rb
276
277
  - lib/samvera/nesting_indexer/relationship_reindexer.rb
277
278
  - lib/samvera/nesting_indexer/repository_reindexer.rb
278
- - lib/samvera/nesting_indexer/semver_assistant.rb
279
279
  - lib/samvera/nesting_indexer/version.rb
280
280
  - samvera-nesting_indexer.gemspec
281
281
  homepage: https://github.com/samvera-labs/samvera-nesting_indexer
@@ -1,19 +0,0 @@
1
- require 'set'
2
- module Samvera
3
- module NestingIndexer
4
- # @api private
5
- # A service object responsible for coordinating declarations of interface changes
6
- module SemverAssistant
7
- def self.messages
8
- @messages ||= Set.new
9
- end
10
-
11
- def self.removing_from_public_api(context:, as_of:)
12
- message = "As of version #{as_of}, #{context} will be removed from the public API"
13
- messages << message
14
- ActiveSupport::Deprecation.warn(message, caller[1..-1]) if defined?(ActiveSupport::Deprecation) && !ENV.key?('SKIP_ACTIVE_SUPPORT_DEPRECATION')
15
- end
16
- end
17
- end
18
- end
19
- Samvera::NestingIndexer.private_constant :SemverAssistant