dor-services-client 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d232d7cef9804e67fe55c361e33de98c052ee850aded786cf3cacd57868cbb5
4
- data.tar.gz: 153b8235501ab55780248c1f55dd3e96d3074b1ac61f337e33e073f6965530dc
3
+ metadata.gz: 2b750e59b5465e3b4c75b7122071f3398618ec9c861ac0494c77956ba97b3a1a
4
+ data.tar.gz: 1a86fa9cf387b199fc3560a101d889ab9287e1183c2b32f165d7f87503d9a6c6
5
5
  SHA512:
6
- metadata.gz: 00d3c92d8055e29dce098854e4fd0f68753adeddaa5499802dfc2867847d604f9602cc0072a03b12d1a0f9758cacc4cb21561faf1f0ae00bdb38b20f05c777e7
7
- data.tar.gz: 1e7a5d3cb8b9a561800b4296fbae8310c0999257a34bb8c305b7a08fa7167aa9d0045eed6eba4cffdaec189dd1e163cfe76f631ff44c4243d81d33ddfdac891d
6
+ metadata.gz: 11b7a35b2a9be2bbf1abff74c8a17ab5fdf3725fb45423b8f148d15bfe28a8eda16ece00a9d7e4d8e6d59f937ba34c1d88a224ff8ffb3a8f6f50d364561e3dbe
7
+ data.tar.gz: 4738fc58390fd1465299c7df58c2cf5af700231e63ee6f02486f3ad852f8cb251d895da4bee11072917925a7cc39e48a45fcf7990881f5a90dee23573e1d8ca6
data/.travis.yml CHANGED
@@ -1,6 +1,3 @@
1
-
2
- # single test suite, non-parallel build.
3
-
4
1
  env:
5
2
  global:
6
3
  - CC_TEST_REPORTER_ID=47b57fbbf65654b17f33b6ff4a108ce2abed31a86468033f20eb4d4e9e09935a
@@ -8,7 +5,6 @@ language: ruby
8
5
  cache: bundler
9
6
  rvm:
10
7
  - 2.5.3
11
- before_install: gem install bundler -v 1.17.1
12
8
  before_script:
13
9
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
14
10
  - chmod +x ./cc-test-reporter
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency 'faraday', '~> 0.15'
28
28
  spec.add_dependency 'nokogiri', '~> 1.8'
29
29
 
30
- spec.add_development_dependency 'bundler', '~> 1.17'
30
+ spec.add_development_dependency 'bundler'
31
31
  spec.add_development_dependency 'rake', '~> 10.0'
32
32
  spec.add_development_dependency 'rspec', '~> 3.0'
33
33
  spec.add_development_dependency 'rubocop', '~> 0.61.0'
@@ -28,10 +28,21 @@ module Dor
28
28
 
29
29
  include Singleton
30
30
 
31
+ # @param object_identifier [String] the pid for the object
32
+ # @raise [ArgumentError] when `object_identifier` is `nil`
33
+ # @return [Dor::Services::Client::Object] an instance of the `Client::Object` class
31
34
  def object(object_identifier)
32
- Object.new(connection: connection, version: DEFAULT_VERSION, object_id: object_identifier)
35
+ raise ArgumentError, '`object_identifier` argument cannot be `nil` in call to `#object(object_identifier)' if object_identifier.nil?
36
+
37
+ # Return memoized object instance if object identifier value is the same
38
+ # This allows us to test the client more easily in downstream codebases,
39
+ # opening up stubbing without requiring `any_instance_of`
40
+ return @object if @object&.object_id == object_identifier
41
+
42
+ @object = Object.new(connection: connection, version: DEFAULT_VERSION, object_id: object_identifier)
33
43
  end
34
44
 
45
+ # @return [Dor::Services::Client::Objects] an instance of the `Client::Objects` class
35
46
  def objects
36
47
  @objects ||= Objects.new(connection: connection, version: DEFAULT_VERSION)
37
48
  end
@@ -11,6 +11,8 @@ module Dor
11
11
  class Client
12
12
  # API calls that are about a repository object
13
13
  class Object < VersionedService
14
+ attr_reader :object_id
15
+
14
16
  # @param object_id [String] the pid for the object
15
17
  def initialize(connection:, version:, object_id:)
16
18
  raise ArgumentError, "The `object_id` parameter must be an identifier string: #{object_id.inspect}" unless object_id.is_a?(String)
@@ -109,8 +111,6 @@ module Dor
109
111
 
110
112
  private
111
113
 
112
- attr_reader :object_id
113
-
114
114
  def object_path
115
115
  "#{api_version}/objects/#{object_id}"
116
116
  end
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Services
5
5
  class Client
6
- VERSION = '1.0.0'
6
+ VERSION = '1.1.0'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dor-services-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-01-14 00:00:00.000000000 Z
12
+ date: 2019-01-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -77,16 +77,16 @@ dependencies:
77
77
  name: bundler
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '1.17'
82
+ version: '0'
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '1.17'
89
+ version: '0'
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: rake
92
92
  requirement: !ruby/object:Gem::Requirement