sequencescape-client-api 0.3.10 → 0.4.0.pre.rc1

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.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +44 -0
  3. data/.rubocop_todo.yml +338 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +1 -1
  6. data/README.markdown +13 -0
  7. data/lib/sequencescape-api.rb +1 -1
  8. data/lib/sequencescape-api/actions.rb +9 -8
  9. data/lib/sequencescape-api/associations.rb +8 -6
  10. data/lib/sequencescape-api/associations/base.rb +1 -1
  11. data/lib/sequencescape-api/associations/base/instance_methods.rb +10 -8
  12. data/lib/sequencescape-api/associations/belongs_to.rb +4 -4
  13. data/lib/sequencescape-api/associations/has_many.rb +14 -13
  14. data/lib/sequencescape-api/associations/has_many/json.rb +1 -1
  15. data/lib/sequencescape-api/associations/has_many/validation.rb +1 -1
  16. data/lib/sequencescape-api/composition.rb +11 -7
  17. data/lib/sequencescape-api/connection_factory.rb +6 -5
  18. data/lib/sequencescape-api/connection_factory/actions.rb +17 -12
  19. data/lib/sequencescape-api/core.rb +12 -7
  20. data/lib/sequencescape-api/core_ext/array.rb +1 -1
  21. data/lib/sequencescape-api/core_ext/hash.rb +3 -3
  22. data/lib/sequencescape-api/errors.rb +2 -2
  23. data/lib/sequencescape-api/finder_methods.rb +16 -11
  24. data/lib/sequencescape-api/rails.rb +8 -7
  25. data/lib/sequencescape-api/resource/active_model.rb +1 -1
  26. data/lib/sequencescape-api/resource/attribute_groups.rb +11 -7
  27. data/lib/sequencescape-api/resource/attributes.rb +8 -8
  28. data/lib/sequencescape-api/resource/instance_methods.rb +17 -9
  29. data/lib/sequencescape-api/resource/json.rb +18 -15
  30. data/lib/sequencescape-api/resource/modifications.rb +20 -11
  31. data/lib/sequencescape-api/resource_model_proxy.rb +7 -5
  32. data/lib/sequencescape-api/version.rb +1 -1
  33. data/lib/sequencescape.rb +1 -2
  34. data/lib/sequencescape/bait_library.rb +1 -1
  35. data/lib/sequencescape/bait_library_layout.rb +2 -2
  36. data/lib/sequencescape/barcoded_asset.rb +1 -1
  37. data/lib/sequencescape/batch.rb +6 -6
  38. data/lib/sequencescape/behaviour/qced.rb +3 -4
  39. data/lib/sequencescape/behaviour/receptacle.rb +3 -3
  40. data/lib/sequencescape/behaviour/state_driven.rb +4 -4
  41. data/lib/sequencescape/bulk_transfer.rb +1 -1
  42. data/lib/sequencescape/comment.rb +0 -2
  43. data/lib/sequencescape/extraction_attribute.rb +1 -1
  44. data/lib/sequencescape/library_event.rb +1 -1
  45. data/lib/sequencescape/library_tube.rb +1 -1
  46. data/lib/sequencescape/lot.rb +0 -1
  47. data/lib/sequencescape/lot_type.rb +1 -2
  48. data/lib/sequencescape/order_template.rb +1 -2
  49. data/lib/sequencescape/pipeline.rb +1 -1
  50. data/lib/sequencescape/plate.rb +19 -15
  51. data/lib/sequencescape/plate/pooling.rb +9 -3
  52. data/lib/sequencescape/plate/well_structure.rb +6 -6
  53. data/lib/sequencescape/plate_conversion.rb +3 -3
  54. data/lib/sequencescape/plate_creation.rb +3 -3
  55. data/lib/sequencescape/plate_purpose.rb +3 -3
  56. data/lib/sequencescape/plate_template.rb +0 -2
  57. data/lib/sequencescape/pooled_plate_creation.rb +3 -3
  58. data/lib/sequencescape/project.rb +2 -1
  59. data/lib/sequencescape/qc_decision.rb +0 -1
  60. data/lib/sequencescape/qc_file.rb +0 -3
  61. data/lib/sequencescape/qcable.rb +0 -3
  62. data/lib/sequencescape/qcable_creator.rb +0 -3
  63. data/lib/sequencescape/request.rb +3 -3
  64. data/lib/sequencescape/search.rb +10 -8
  65. data/lib/sequencescape/specific_tube_creation.rb +2 -2
  66. data/lib/sequencescape/stamp.rb +0 -1
  67. data/lib/sequencescape/state_change.rb +2 -2
  68. data/lib/sequencescape/study.rb +1 -1
  69. data/lib/sequencescape/submission.rb +1 -2
  70. data/lib/sequencescape/tag2_layout.rb +3 -3
  71. data/lib/sequencescape/tag2_layout_template.rb +2 -2
  72. data/lib/sequencescape/tag_group.rb +0 -1
  73. data/lib/sequencescape/tag_layout.rb +3 -3
  74. data/lib/sequencescape/tag_layout_template.rb +4 -4
  75. data/lib/sequencescape/transfer.rb +2 -2
  76. data/lib/sequencescape/transfer_request.rb +4 -5
  77. data/lib/sequencescape/transfer_template.rb +2 -2
  78. data/lib/sequencescape/tube.rb +3 -3
  79. data/lib/sequencescape/tube_creation.rb +3 -3
  80. data/lib/sequencescape/tube_from_tube_creation.rb +3 -3
  81. data/lib/sequencescape/tube_purpose.rb +3 -3
  82. data/lib/sequencescape/user.rb +2 -2
  83. data/lib/sequencescape/volume_update.rb +1 -1
  84. data/lib/sequencescape/well.rb +0 -2
  85. data/lib/sequencescape/work_completion.rb +1 -1
  86. data/sequencescape-api.gemspec +18 -17
  87. data/spec/sequencescape-api/associations_spec.rb +4 -2
  88. data/spec/sequencescape-api/finding_methods_spec.rb +3 -1
  89. data/spec/sequencescape-api/modifications_spec.rb +17 -16
  90. data/spec/sequencescape-api/root_spec.rb +11 -6
  91. data/spec/spec_helper.rb +3 -1
  92. data/spec/support/contract_helper.rb +18 -10
  93. data/spec/support/namespaces.rb +9 -9
  94. data/spec/support/shared_examples.rb +2 -0
  95. metadata +53 -35
  96. data/.rvmrc +0 -52
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe 'Various associations' do
@@ -51,7 +53,7 @@ describe 'Various associations' do
51
53
  stub_request_from('retrieve-model') { response('model-a-instance') }
52
54
  stub_request_from('create-via-has-many') { response('model-b-instance') }
53
55
 
54
- subject { api.model_a.find('UUID').model_bs.create!() }
56
+ subject { api.model_a.find('UUID').model_bs.create! }
55
57
 
56
58
  its(:class) { should == Unauthorised::ModelB }
57
59
  end
@@ -62,7 +64,7 @@ describe 'Various associations' do
62
64
 
63
65
  let(:resource) { api.model_b.find('UUID') }
64
66
 
65
- [ :model_a, :model_by_simple_name, :model_by_full_name ].each do |association_name|
67
+ %i[model_a model_by_simple_name model_by_full_name].each do |association_name|
66
68
  context "expressed as #{association_name.inspect}" do
67
69
  stub_request_and_response('belongs-to-association')
68
70
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe 'Finding a resource instance' do
@@ -9,7 +11,7 @@ describe 'Finding a resource instance' do
9
11
  stub_request_from('retrieve-model') { response('resource-not-found') }
10
12
 
11
13
  it 'raises an exception' do
12
- lambda { subject }.should raise_error(Sequencescape::Api::ResourceNotFound)
14
+ -> { subject }.should raise_error(Sequencescape::Api::ResourceNotFound)
13
15
  end
14
16
  end
15
17
 
@@ -1,18 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  shared_examples_for 'errors on both client and server' do |action, request_contract|
4
6
  context 'may be invalid on the client side' do
5
7
  it 'raises an error' do
6
8
  lambda do
7
- target.__send__(action, :attribute_validated_at_client => 'please error')
9
+ target.__send__(action, attribute_validated_at_client: 'please error')
8
10
  end.should raise_error(Sequencescape::Api::ResourceInvalid)
9
11
  end
10
12
 
11
13
  it 'includes the error on the field' do
12
14
  begin
13
- target.__send__(action, :attribute_validated_at_client => 'please error')
14
- rescue Sequencescape::Api::ResourceInvalid => exception
15
- exception.resource.errors[:attribute_validated_at_client].should == [ 'cannot be set' ]
15
+ target.__send__(action, attribute_validated_at_client: 'please error')
16
+ rescue Sequencescape::Api::ResourceInvalid => e
17
+ e.resource.errors[:attribute_validated_at_client].should == ['cannot be set']
16
18
  end
17
19
  end
18
20
  end
@@ -22,15 +24,15 @@ shared_examples_for 'errors on both client and server' do |action, request_contr
22
24
 
23
25
  it 'raises an error' do
24
26
  lambda do
25
- target.__send__(action, :attribute_validated_at_server => 'please error')
27
+ target.__send__(action, attribute_validated_at_server: 'please error')
26
28
  end.should raise_error(Sequencescape::Api::ResourceInvalid)
27
29
  end
28
30
 
29
31
  it 'includes the error on the field' do
30
32
  begin
31
- target.__send__(action, :attribute_validated_at_server => 'please error')
32
- rescue Sequencescape::Api::ResourceInvalid => exception
33
- exception.resource.errors[:attribute_validated_at_server].should == [ 'cannot be set' ]
33
+ target.__send__(action, attribute_validated_at_server: 'please error')
34
+ rescue Sequencescape::Api::ResourceInvalid => e
35
+ e.resource.errors[:attribute_validated_at_server].should == ['cannot be set']
34
36
  end
35
37
  end
36
38
  end
@@ -49,7 +51,7 @@ describe 'Creating a resource' do
49
51
  stub_request_from('create-model-c') { response('model-c-instance-created') }
50
52
 
51
53
  subject do
52
- target.create!(:changes_during_update => 'sent from client', :remains_same_during_update => 'from JSON')
54
+ target.create!(changes_during_update: 'sent from client', remains_same_during_update: 'from JSON')
53
55
  end
54
56
 
55
57
  its(:changes_during_update) { should == 'set during create' }
@@ -65,7 +67,7 @@ describe 'Creating a resource' do
65
67
 
66
68
  it 'takes an array of objects and converts them to UUID'
67
69
  it 'assumes an array of strings are UUIDs' do
68
- target.create!(:model_bs => ['model-b-uuids'])
70
+ target.create!(model_bs: ['model-b-uuids'])
69
71
  end
70
72
  it 'raises if not given an enumerable'
71
73
  end
@@ -75,7 +77,7 @@ describe 'Creating a resource' do
75
77
 
76
78
  it 'takes an array of objects and converts them to UUID'
77
79
  it 'assumes an array of strings are UUIDs' do
78
- target.create!(:model_bs => [{ "test_attribute" => "test_value" }])
80
+ target.create!(model_bs: [{ 'test_attribute' => 'test_value' }])
79
81
  end
80
82
  it 'raises if not given an enumerable'
81
83
  end
@@ -85,7 +87,7 @@ describe 'Creating a resource' do
85
87
 
86
88
  it 'takes an array of objects and converts them to UUID'
87
89
  it 'assumes an array of strings are UUIDs' do
88
- target.create!(:model_as => ['model-a-uuids'])
90
+ target.create!(model_as: ['model-a-uuids'])
89
91
  end
90
92
  it 'raises if not given an enumerable'
91
93
  end
@@ -120,9 +122,9 @@ describe 'Updating a resource' do
120
122
 
121
123
  before(:each) do
122
124
  subject.update_attributes!(
123
- :changes_during_update => 'sent from client',
124
- :remains_same_during_update => 'from JSON',
125
- :write_only => 'has been set'
125
+ changes_during_update: 'sent from client',
126
+ remains_same_during_update: 'from JSON',
127
+ write_only: 'has been set'
126
128
  )
127
129
  end
128
130
 
@@ -166,4 +168,3 @@ describe 'Updating a resource through an association' do
166
168
  it 'handles individual attribute changes'
167
169
  end
168
170
  end
169
-
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe 'Handling authentication issues' do
4
6
  stub_request_from('retrieve-root-with-an-unauthorised-client') { response('client-fails-authentication') }
5
7
 
6
- subject { Sequencescape::Api.new(:url => 'http://localhost:3000/', :cookie => 'single-sign-on-cookie') }
8
+ subject { Sequencescape::Api.new(url: 'http://localhost:3000/', cookie: 'single-sign-on-cookie') }
7
9
 
8
10
  it 'raises an exception' do
9
- lambda { subject }.should raise_error(Sequencescape::Api::UnauthenticatedError)
11
+ -> { subject }.should raise_error(Sequencescape::Api::UnauthenticatedError)
10
12
  end
11
13
  end
12
14
 
@@ -15,7 +17,7 @@ describe 'Retrieving the root URL' do
15
17
  is_working_as_an_unauthorised_client
16
18
 
17
19
  context 'with no namespace' do
18
- subject { Sequencescape::Api.new(:url => 'http://localhost:3000/', :cookie => 'single-sign-on-cookie') }
20
+ subject { Sequencescape::Api.new(url: 'http://localhost:3000/', cookie: 'single-sign-on-cookie') }
19
21
 
20
22
  Unauthorised::MODELS_THROUGH_API.each do |model|
21
23
  it "provides the #{model} through the API instance" do
@@ -24,12 +26,15 @@ describe 'Retrieving the root URL' do
24
26
 
25
27
  it "errors because Sequencescape::#{model.to_s.classify} is not defined" do
26
28
  # Note: Using a regex as > Ruby 2.3 'DidYouMean' changes the error message slightly.
27
- lambda { subject.send(model.to_sym) }.should raise_error(NameError, /uninitialized constant Sequencescape::#{model.to_s.classify}/)
29
+ lambda {
30
+ subject.send(model.to_sym)
31
+ }.should raise_error(NameError,
32
+ /uninitialized constant Sequencescape::#{model.to_s.classify}/)
28
33
  end
29
34
  end
30
35
  end
31
36
 
32
- context "with a specified namespace" do
37
+ context 'with a specified namespace' do
33
38
  Unauthorised::MODELS_THROUGH_API.each do |model|
34
39
  context do
35
40
  stub_request_and_response("unauthorised-#{model.to_s.dasherize}-list")
@@ -49,7 +54,7 @@ describe 'Retrieving the root URL' do
49
54
 
50
55
  subject { api }
51
56
 
52
- [ :model_c, :model_d ].each do |model|
57
+ %i[model_c model_d].each do |model|
53
58
  it "provides the #{model} through the API instance" do
54
59
  subject.should respond_to(model.to_sym)
55
60
  end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sequencescape-api'
2
4
  require 'sequencescape'
3
5
 
4
6
  # Make sure our support files can be loaded when required
5
- $:.push(File.expand_path(File.join(File.dirname(__FILE__), 'support')))
7
+ $LOAD_PATH.push(File.expand_path(File.join(File.dirname(__FILE__), 'support')))
6
8
  require 'contract_helper'
7
9
  require 'namespaces'
8
10
  require 'shared_examples'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Fake the web connections so we don't trash anything
2
4
  require 'webmock/rspec'
3
5
 
@@ -21,13 +23,16 @@ module ContractHelper
21
23
  \g<verb>\s+\g<path>\s+HTTP/1.1\g<eol>
22
24
  \g<headers>\g<eol>
23
25
  (\g<eol>\g<body>?)?
24
- }mx
26
+ }mx.freeze
25
27
 
26
28
  def request(contract_name)
27
29
  contract(contract_name) do |file|
28
- match = REQUEST_REGEXP.match(file.read) or raise StandardError, "Invalidly formatted request in #{contract_name.inspect}"
30
+ match = REQUEST_REGEXP.match(file.read)
31
+
32
+ raise StandardError, "Invalidly formatted request in #{contract_name.inspect}" if match.nil?
29
33
 
30
- @http_verb, @url = match[:verb].downcase.to_sym, "http://localhost:3000#{match[:path]}"
34
+ @http_verb = match[:verb].downcase.to_sym
35
+ @url = "http://localhost:3000#{match[:path]}"
31
36
  @conditions = {}
32
37
  @conditions[:headers] = Hash[*match[:headers].split(/\r?\n/).map { |l| l.split(':') }.flatten.map(&:strip)]
33
38
  @conditions[:body] = Yajl::Encoder.encode(Yajl::Parser.parse(match[:body])) unless match[:body].blank?
@@ -40,11 +45,12 @@ module ContractHelper
40
45
  end
41
46
  end
42
47
 
43
- def contract(contract_name, &block)
48
+ def contract(contract_name)
44
49
  path = @root.dup
45
50
  until path.empty?
46
51
  filename = File.join(path, 'contracts', "#{contract_name}.txt")
47
52
  return File.open(filename, 'r') { |file| yield(file) } if File.file?(filename)
53
+
48
54
  path.pop
49
55
  end
50
56
  raise StandardError, "Cannot find contract #{filename.inspect} anywhere within #{@root.inspect}"
@@ -74,7 +80,7 @@ module ContractHelper
74
80
 
75
81
  module ClassMethods
76
82
  def stub_request_from(request_filename, &block)
77
- stubbed_request = StubRequestBuilder.new(File.join(File.dirname(__FILE__), %w{.. sequencescape-api contracts}))
83
+ stubbed_request = StubRequestBuilder.new(File.join(File.dirname(__FILE__), %w[.. sequencescape-api contracts]))
78
84
  stubbed_request.request(request_filename)
79
85
  stubbed_request.instance_eval(&block)
80
86
  stubbed_request.inject_into(self)
@@ -85,11 +91,13 @@ module ContractHelper
85
91
  end
86
92
 
87
93
  def is_working_as_an_unauthorised_client
88
- stub_request_from('retrieve-root-with-an-unauthorised-client') { response('root-response-for-unauthorised-client') }
94
+ stub_request_from('retrieve-root-with-an-unauthorised-client') do
95
+ response('root-response-for-unauthorised-client')
96
+ end
89
97
  let(:api) do
90
98
  Sequencescape::Api.new(
91
- :url => 'http://localhost:3000/', :cookie => 'single-sign-on-cookie',
92
- :namespace => Unauthorised
99
+ url: 'http://localhost:3000/', cookie: 'single-sign-on-cookie',
100
+ namespace: Unauthorised
93
101
  )
94
102
  end
95
103
  end
@@ -99,8 +107,8 @@ module ContractHelper
99
107
 
100
108
  let(:api) do
101
109
  Sequencescape::Api.new(
102
- :url => 'http://localhost:3000/', :cookie => 'single-sign-on-cookie',
103
- :authorisation => 'authorised!', :namespace => Authenticated
110
+ url: 'http://localhost:3000/', cookie: 'single-sign-on-cookie',
111
+ authorisation: 'authorised!', namespace: Authenticated
104
112
  )
105
113
  end
106
114
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Unauthorised
2
- MODELS_THROUGH_API = [ :model_a, :model_b, :model_c ]
4
+ MODELS_THROUGH_API = %i[model_a model_b model_c].freeze
3
5
 
4
6
  class ModelA < Sequencescape::Api::Resource
5
7
  module LotCreator
6
- def create!(attributes=nil)
8
+ def create!(attributes = nil)
7
9
  attributes ||= {}
8
10
  new({}, false).tap do |lot|
9
11
  api.create(actions.create, { 'model_b' => attributes }, Sequencescape::Api::ModifyingHandler.new(lot))
@@ -24,14 +26,14 @@ module Unauthorised
24
26
 
25
27
  class ModelB < Sequencescape::Api::Resource
26
28
  belongs_to :model_a
27
- belongs_to :model_by_simple_name, :class_name => 'ModelA'
28
- belongs_to :model_by_full_name, :class_name => 'Nested::Model'
29
- belongs_to :model_with_early_data, :class_name => 'ModelA'
29
+ belongs_to :model_by_simple_name, class_name: 'ModelA'
30
+ belongs_to :model_by_full_name, class_name: 'Nested::Model'
31
+ belongs_to :model_with_early_data, class_name: 'ModelA'
30
32
  attribute_accessor :test_attribute
31
33
  end
32
34
 
33
35
  class ModelC < Sequencescape::Api::Resource
34
- has_many :model_bs, :disposition => :inline
36
+ has_many :model_bs, disposition: :inline
35
37
  has_many :model_as
36
38
 
37
39
  attribute_accessor :attribute_validated_at_client, :attribute_validated_at_server
@@ -56,12 +58,10 @@ module Unauthorised
56
58
  end
57
59
 
58
60
  module Authenticated
59
- MODELS_THROUGH_API = [ :model_c, :model_d ]
61
+ MODELS_THROUGH_API = %i[model_c model_d].freeze
60
62
 
61
63
  class ModelC < Sequencescape::Api::Resource
62
-
63
64
  end
64
65
  class ModelD < Sequencescape::Api::Resource
65
-
66
66
  end
67
67
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  shared_examples_for 'a paged result' do
2
4
  it 'physically contains 3 items' do
3
5
  subject.map(&:inspect).size.should == 3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequencescape-client-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.4.0.pre.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Denner
@@ -10,48 +10,36 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-04-09 00:00:00.000000000 Z
13
+ date: 2020-05-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: activesupport
16
+ name: activemodel
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 4.0.0
22
- - - "<"
23
- - !ruby/object:Gem::Version
24
- version: '5.2'
21
+ version: 5.0.0
25
22
  type: :runtime
26
23
  prerelease: false
27
24
  version_requirements: !ruby/object:Gem::Requirement
28
25
  requirements:
29
26
  - - ">="
30
27
  - !ruby/object:Gem::Version
31
- version: 4.0.0
32
- - - "<"
33
- - !ruby/object:Gem::Version
34
- version: '5.2'
28
+ version: 5.0.0
35
29
  - !ruby/object:Gem::Dependency
36
- name: activemodel
30
+ name: activesupport
37
31
  requirement: !ruby/object:Gem::Requirement
38
32
  requirements:
39
33
  - - ">="
40
34
  - !ruby/object:Gem::Version
41
- version: 4.0.0
42
- - - "<"
43
- - !ruby/object:Gem::Version
44
- version: '5.2'
35
+ version: 5.0.0
45
36
  type: :runtime
46
37
  prerelease: false
47
38
  version_requirements: !ruby/object:Gem::Requirement
48
39
  requirements:
49
40
  - - ">="
50
41
  - !ruby/object:Gem::Version
51
- version: 4.0.0
52
- - - "<"
53
- - !ruby/object:Gem::Version
54
- version: '5.2'
42
+ version: 5.0.0
55
43
  - !ruby/object:Gem::Dependency
56
44
  name: i18n
57
45
  requirement: !ruby/object:Gem::Requirement
@@ -72,30 +60,30 @@ dependencies:
72
60
  requirements:
73
61
  - - ">="
74
62
  - !ruby/object:Gem::Version
75
- version: 1.3.1
63
+ version: 1.4.1
76
64
  type: :runtime
77
65
  prerelease: false
78
66
  version_requirements: !ruby/object:Gem::Requirement
79
67
  requirements:
80
68
  - - ">="
81
69
  - !ruby/object:Gem::Version
82
- version: 1.3.1
70
+ version: 1.4.1
83
71
  - !ruby/object:Gem::Dependency
84
- name: rspec
72
+ name: pry
85
73
  requirement: !ruby/object:Gem::Requirement
86
74
  requirements:
87
- - - "~>"
75
+ - - ">="
88
76
  - !ruby/object:Gem::Version
89
- version: 2.11.0
77
+ version: '0'
90
78
  type: :development
91
79
  prerelease: false
92
80
  version_requirements: !ruby/object:Gem::Requirement
93
81
  requirements:
94
- - - "~>"
82
+ - - ">="
95
83
  - !ruby/object:Gem::Version
96
- version: 2.11.0
84
+ version: '0'
97
85
  - !ruby/object:Gem::Dependency
98
- name: pry
86
+ name: rake
99
87
  requirement: !ruby/object:Gem::Requirement
100
88
  requirements:
101
89
  - - ">="
@@ -109,7 +97,7 @@ dependencies:
109
97
  - !ruby/object:Gem::Version
110
98
  version: '0'
111
99
  - !ruby/object:Gem::Dependency
112
- name: webmock
100
+ name: redcarpet
113
101
  requirement: !ruby/object:Gem::Requirement
114
102
  requirements:
115
103
  - - ">="
@@ -123,7 +111,35 @@ dependencies:
123
111
  - !ruby/object:Gem::Version
124
112
  version: '0'
125
113
  - !ruby/object:Gem::Dependency
126
- name: yard
114
+ name: rspec
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: 2.11.0
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: 2.11.0
127
+ - !ruby/object:Gem::Dependency
128
+ name: rubocop
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: 0.84.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 0.84.0
141
+ - !ruby/object:Gem::Dependency
142
+ name: webmock
127
143
  requirement: !ruby/object:Gem::Requirement
128
144
  requirements:
129
145
  - - ">="
@@ -137,7 +153,7 @@ dependencies:
137
153
  - !ruby/object:Gem::Version
138
154
  version: '0'
139
155
  - !ruby/object:Gem::Dependency
140
- name: redcarpet
156
+ name: yard
141
157
  requirement: !ruby/object:Gem::Requirement
142
158
  requirements:
143
159
  - - ">="
@@ -162,7 +178,9 @@ extra_rdoc_files: []
162
178
  files:
163
179
  - ".gitignore"
164
180
  - ".rspec"
165
- - ".rvmrc"
181
+ - ".rubocop.yml"
182
+ - ".rubocop_todo.yml"
183
+ - ".ruby-version"
166
184
  - ".yardoc/checksums"
167
185
  - ".yardoc/complete"
168
186
  - ".yardoc/object_types"
@@ -486,11 +504,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
486
504
  version: '0'
487
505
  required_rubygems_version: !ruby/object:Gem::Requirement
488
506
  requirements:
489
- - - ">="
507
+ - - ">"
490
508
  - !ruby/object:Gem::Version
491
- version: '0'
509
+ version: 1.3.1
492
510
  requirements: []
493
- rubygems_version: 3.0.3
511
+ rubygems_version: 3.0.8
494
512
  signing_key:
495
513
  specification_version: 4
496
514
  summary: Gem for the client side of the Sequencescape API