dor-services-client 1.0.0 → 1.1.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
  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