sequencescape-client-api 0.3.7 → 0.4.0.pre.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +5 -5
  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 +4 -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 +6 -0
  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 +29 -11
  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 +1 -4
  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 +5 -7
  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 +54 -36
  96. data/.rvmrc +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 23758a8e8b3728c7a14732083854686d78b38696
4
- data.tar.gz: dc5c9f8ff1555f7d9c65631bc73adc64bc5cbdc9
2
+ SHA256:
3
+ metadata.gz: d4134d56fa51d913618b8fab89f93dff697401d290133ebcfde5c7c9fc1f49c0
4
+ data.tar.gz: 54607236fa8c9f57130090e07d34c36073174f583f15bfacc2a08f9727ee354c
5
5
  SHA512:
6
- metadata.gz: bdd710c872d73e6d4ce13b4cd6118068ac45c209f56d0eec2c80e738631daec1460047880540e60a48c31945683eee83f9fb5841d66fba1554549fdacbef4bfd
7
- data.tar.gz: 59378bf391396ff05f811e6f739e7a107e9f591a3c11ca7f69edbad82c561654f31b9b936520449fd5ca14fb20ad4da07da55b15f732f984b83fbc25917006d8
6
+ metadata.gz: f25d958b64a55f2c7d6eca3b45fceaf4555eafd1641a064fbd816951d8d2c51f34a4c9d271fb590fc8930b4e049d047532929335df2d8283a931a35cf7c7276f
7
+ data.tar.gz: 3711e7f51527bf4cd79cdf8a6e255a1005f1a62cf681c3aacc11bb9389fe8c667ddc4ce89df4e772ea75e442e01f48c684ae1f7daae965517469ad2c7f84a951
@@ -0,0 +1,44 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ # The behaviour of RuboCop can be controlled via the .rubocop.yml
4
+ # configuration file. It makes it possible to enable/disable
5
+ # certain cops (checks) and to alter their behaviour if they accept
6
+ # any parameters. The file can be placed either in your home
7
+ # directory or in some project directory.
8
+ #
9
+ # RuboCop will start looking for the configuration file in the directory
10
+ # where the inspected file is and continue its way up to the root directory.
11
+ #
12
+ # See https://github.com/rubocop-hq/rubocop/blob/master/manual/configuration.md
13
+ AllCops:
14
+ TargetRubyVersion: 2.4
15
+ Style/ClassAndModuleChildren:
16
+ Enabled: false
17
+ Layout/LineLength:
18
+ Max: 120
19
+ AutoCorrect: true
20
+ Naming/FileName:
21
+ Exclude:
22
+ - 'lib/sequencescape-api.rb'
23
+
24
+ # Pending Cops
25
+ Layout/EmptyLinesAroundAttributeAccessor:
26
+ Enabled: true
27
+ Layout/SpaceAroundMethodCallOperator:
28
+ Enabled: true
29
+ Lint/DeprecatedOpenSSLConstant:
30
+ Enabled: true
31
+ Lint/RaiseException:
32
+ Enabled: true
33
+ Lint/StructNewOverride:
34
+ Enabled: true
35
+ Style/ExponentialNotation:
36
+ Enabled: true
37
+ Style/HashEachMethods:
38
+ Enabled: true
39
+ Style/HashTransformKeys:
40
+ Enabled: true
41
+ Style/HashTransformValues:
42
+ Enabled: true
43
+ Style/SlicingWithRange:
44
+ Enabled: true
@@ -0,0 +1,338 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config --exclude-limit 15000`
3
+ # on 2020-05-28 09:58:56 +0100 using RuboCop version 0.84.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 2
10
+ Lint/ShadowingOuterLocalVariable:
11
+ Exclude:
12
+ - 'lib/sequencescape-api/associations/has_many.rb'
13
+ - 'lib/sequencescape-api/core_ext/hash.rb'
14
+
15
+ # Offense count: 7
16
+ Lint/UselessAssignment:
17
+ Exclude:
18
+ - 'lib/sequencescape-api/associations/belongs_to.rb'
19
+ - 'lib/sequencescape-api/connection_factory/actions.rb'
20
+ - 'lib/sequencescape-api/core.rb'
21
+ - 'lib/sequencescape-api/resource/attributes.rb'
22
+ - 'lib/sequencescape/behaviour/qced.rb'
23
+ - 'lib/sequencescape/plate/pooling.rb'
24
+
25
+ # Offense count: 1
26
+ # Configuration parameters: CheckForMethodsWithNoSideEffects.
27
+ Lint/Void:
28
+ Exclude:
29
+ - 'spec/sequencescape-api/associations_spec.rb'
30
+
31
+ # Offense count: 10
32
+ # Configuration parameters: IgnoredMethods.
33
+ Metrics/AbcSize:
34
+ Max: 25
35
+
36
+ # Offense count: 8
37
+ # Configuration parameters: CountComments, ExcludedMethods.
38
+ # ExcludedMethods: refine
39
+ Metrics/BlockLength:
40
+ Max: 65
41
+
42
+ # Offense count: 1
43
+ # Configuration parameters: CountComments.
44
+ Metrics/ModuleLength:
45
+ Max: 120
46
+
47
+ # Offense count: 1
48
+ # Configuration parameters: IgnoredMethods.
49
+ Metrics/PerceivedComplexity:
50
+ Max: 9
51
+
52
+ # Offense count: 1
53
+ Naming/BinaryOperatorParameterName:
54
+ Exclude:
55
+ - 'lib/sequencescape-api/resource/instance_methods.rb'
56
+
57
+ # Offense count: 9
58
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
59
+ # NamePrefix: is_, has_, have_
60
+ # ForbiddenPrefixes: is_, has_, have_
61
+ # AllowedMethods: is_a?
62
+ # MethodDefinitionMacros: define_method, define_singleton_method
63
+ Naming/PredicateName:
64
+ Exclude:
65
+ - 'spec/**/*'
66
+ - 'lib/sequencescape-api/actions.rb'
67
+ - 'lib/sequencescape-api/associations.rb'
68
+ - 'lib/sequencescape-api/associations/belongs_to.rb'
69
+ - 'lib/sequencescape-api/associations/has_many.rb'
70
+ - 'lib/sequencescape-api/resource.rb'
71
+ - 'lib/sequencescape-api/resource/attributes.rb'
72
+ - 'lib/sequencescape-api/resource_model_proxy.rb'
73
+
74
+ # Offense count: 1
75
+ # Configuration parameters: EnforcedStyle, AllowModifiersOnSymbols.
76
+ # SupportedStyles: inline, group
77
+ Style/AccessModifierDeclarations:
78
+ Exclude:
79
+ - 'lib/sequencescape-api/resource/attributes.rb'
80
+
81
+ # Offense count: 1
82
+ Style/BeginBlock:
83
+ Exclude:
84
+ - 'lib/sequencescape-api/connection_factory/actions.rb'
85
+
86
+ # Offense count: 138
87
+ Style/Documentation:
88
+ Exclude:
89
+ - 'spec/**/*'
90
+ - 'test/**/*'
91
+ - 'lib/sequencescape-api/actions.rb'
92
+ - 'lib/sequencescape-api/associations.rb'
93
+ - 'lib/sequencescape-api/associations/base.rb'
94
+ - 'lib/sequencescape-api/associations/base/instance_methods.rb'
95
+ - 'lib/sequencescape-api/associations/belongs_to.rb'
96
+ - 'lib/sequencescape-api/associations/has_many.rb'
97
+ - 'lib/sequencescape-api/associations/has_many/json.rb'
98
+ - 'lib/sequencescape-api/associations/has_many/validation.rb'
99
+ - 'lib/sequencescape-api/capabilities.rb'
100
+ - 'lib/sequencescape-api/composition.rb'
101
+ - 'lib/sequencescape-api/connection_factory.rb'
102
+ - 'lib/sequencescape-api/connection_factory/actions.rb'
103
+ - 'lib/sequencescape-api/connection_factory/helpers.rb'
104
+ - 'lib/sequencescape-api/core.rb'
105
+ - 'lib/sequencescape-api/core_ext/array.rb'
106
+ - 'lib/sequencescape-api/core_ext/hash.rb'
107
+ - 'lib/sequencescape-api/error_handling.rb'
108
+ - 'lib/sequencescape-api/errors.rb'
109
+ - 'lib/sequencescape-api/finder_methods.rb'
110
+ - 'lib/sequencescape-api/resource.rb'
111
+ - 'lib/sequencescape-api/resource/attribute_groups.rb'
112
+ - 'lib/sequencescape-api/resource/attributes.rb'
113
+ - 'lib/sequencescape-api/resource/instance_methods.rb'
114
+ - 'lib/sequencescape-api/resource/json.rb'
115
+ - 'lib/sequencescape-api/resource/modifications.rb'
116
+ - 'lib/sequencescape.rb'
117
+ - 'lib/sequencescape/asset.rb'
118
+ - 'lib/sequencescape/asset_audit.rb'
119
+ - 'lib/sequencescape/asset_group.rb'
120
+ - 'lib/sequencescape/bait_library.rb'
121
+ - 'lib/sequencescape/bait_library_layout.rb'
122
+ - 'lib/sequencescape/barcode_printer.rb'
123
+ - 'lib/sequencescape/barcoded_asset.rb'
124
+ - 'lib/sequencescape/batch.rb'
125
+ - 'lib/sequencescape/behaviour/barcoded.rb'
126
+ - 'lib/sequencescape/behaviour/labeled.rb'
127
+ - 'lib/sequencescape/behaviour/qced.rb'
128
+ - 'lib/sequencescape/behaviour/receptacle.rb'
129
+ - 'lib/sequencescape/behaviour/state_driven.rb'
130
+ - 'lib/sequencescape/bulk_transfer.rb'
131
+ - 'lib/sequencescape/comment.rb'
132
+ - 'lib/sequencescape/custom_metadatum_collection.rb'
133
+ - 'lib/sequencescape/extraction_attribute.rb'
134
+ - 'lib/sequencescape/lane.rb'
135
+ - 'lib/sequencescape/library_event.rb'
136
+ - 'lib/sequencescape/library_tube.rb'
137
+ - 'lib/sequencescape/lot.rb'
138
+ - 'lib/sequencescape/lot_type.rb'
139
+ - 'lib/sequencescape/multiplexed_library_tube.rb'
140
+ - 'lib/sequencescape/order.rb'
141
+ - 'lib/sequencescape/order_template.rb'
142
+ - 'lib/sequencescape/pipeline.rb'
143
+ - 'lib/sequencescape/plate.rb'
144
+ - 'lib/sequencescape/plate/pooling.rb'
145
+ - 'lib/sequencescape/plate/well_structure.rb'
146
+ - 'lib/sequencescape/plate_conversion.rb'
147
+ - 'lib/sequencescape/plate_creation.rb'
148
+ - 'lib/sequencescape/plate_purpose.rb'
149
+ - 'lib/sequencescape/plate_template.rb'
150
+ - 'lib/sequencescape/pooled_plate_creation.rb'
151
+ - 'lib/sequencescape/project.rb'
152
+ - 'lib/sequencescape/qc_decision.rb'
153
+ - 'lib/sequencescape/qc_file.rb'
154
+ - 'lib/sequencescape/qcable.rb'
155
+ - 'lib/sequencescape/qcable_creator.rb'
156
+ - 'lib/sequencescape/request.rb'
157
+ - 'lib/sequencescape/robot.rb'
158
+ - 'lib/sequencescape/sample.rb'
159
+ - 'lib/sequencescape/sample_tube.rb'
160
+ - 'lib/sequencescape/search.rb'
161
+ - 'lib/sequencescape/specific_tube_creation.rb'
162
+ - 'lib/sequencescape/stamp.rb'
163
+ - 'lib/sequencescape/state_change.rb'
164
+ - 'lib/sequencescape/study.rb'
165
+ - 'lib/sequencescape/submission.rb'
166
+ - 'lib/sequencescape/submission_pool.rb'
167
+ - 'lib/sequencescape/tag.rb'
168
+ - 'lib/sequencescape/tag2_layout.rb'
169
+ - 'lib/sequencescape/tag2_layout_template.rb'
170
+ - 'lib/sequencescape/tag_group.rb'
171
+ - 'lib/sequencescape/tag_layout.rb'
172
+ - 'lib/sequencescape/tag_layout_template.rb'
173
+ - 'lib/sequencescape/template.rb'
174
+ - 'lib/sequencescape/transfer.rb'
175
+ - 'lib/sequencescape/transfer_request.rb'
176
+ - 'lib/sequencescape/transfer_request_collection.rb'
177
+ - 'lib/sequencescape/transfer_template.rb'
178
+ - 'lib/sequencescape/tube.rb'
179
+ - 'lib/sequencescape/tube_creation.rb'
180
+ - 'lib/sequencescape/tube_from_tube_creation.rb'
181
+ - 'lib/sequencescape/tube_purpose.rb'
182
+ - 'lib/sequencescape/user.rb'
183
+ - 'lib/sequencescape/volume_update.rb'
184
+ - 'lib/sequencescape/well.rb'
185
+ - 'lib/sequencescape/work_completion.rb'
186
+
187
+ # Offense count: 6
188
+ # Cop supports --auto-correct.
189
+ Style/EmptyCaseCondition:
190
+ Exclude:
191
+ - 'lib/sequencescape-api/associations/base/instance_methods.rb'
192
+ - 'lib/sequencescape-api/associations/belongs_to.rb'
193
+ - 'lib/sequencescape-api/associations/has_many.rb'
194
+ - 'lib/sequencescape-api/connection_factory/actions.rb'
195
+ - 'lib/sequencescape-api/resource/modifications.rb'
196
+
197
+ # Offense count: 1
198
+ # Cop supports --auto-correct.
199
+ # Configuration parameters: EnforcedStyle.
200
+ # SupportedStyles: empty, nil, both
201
+ Style/EmptyElse:
202
+ Exclude:
203
+ - 'lib/sequencescape-api/resource/json.rb'
204
+
205
+ # Offense count: 11
206
+ Style/EvalWithLocation:
207
+ Exclude:
208
+ - 'lib/sequencescape-api/actions.rb'
209
+ - 'lib/sequencescape-api/associations.rb'
210
+ - 'lib/sequencescape-api/composition.rb'
211
+ - 'lib/sequencescape-api/finder_methods.rb'
212
+ - 'lib/sequencescape-api/resource/attributes.rb'
213
+ - 'lib/sequencescape/batch.rb'
214
+ - 'lib/sequencescape/behaviour/state_driven.rb'
215
+ - 'lib/sequencescape/search.rb'
216
+
217
+ # Offense count: 104
218
+ # Cop supports --auto-correct.
219
+ # Configuration parameters: EnforcedStyle.
220
+ # SupportedStyles: always, always_true, never
221
+ Style/FrozenStringLiteralComment:
222
+ Exclude:
223
+ - 'Gemfile'
224
+ - 'Rakefile'
225
+ - 'lib/sequencescape-api.rb'
226
+ - 'lib/sequencescape-api/actions.rb'
227
+ - 'lib/sequencescape-api/associations.rb'
228
+ - 'lib/sequencescape-api/associations/base.rb'
229
+ - 'lib/sequencescape-api/associations/base/instance_methods.rb'
230
+ - 'lib/sequencescape-api/associations/belongs_to.rb'
231
+ - 'lib/sequencescape-api/associations/has_many.rb'
232
+ - 'lib/sequencescape-api/associations/has_many/json.rb'
233
+ - 'lib/sequencescape-api/associations/has_many/validation.rb'
234
+ - 'lib/sequencescape-api/capabilities.rb'
235
+ - 'lib/sequencescape-api/composition.rb'
236
+ - 'lib/sequencescape-api/connection_factory.rb'
237
+ - 'lib/sequencescape-api/connection_factory/actions.rb'
238
+ - 'lib/sequencescape-api/connection_factory/helpers.rb'
239
+ - 'lib/sequencescape-api/core.rb'
240
+ - 'lib/sequencescape-api/core_ext.rb'
241
+ - 'lib/sequencescape-api/core_ext/array.rb'
242
+ - 'lib/sequencescape-api/core_ext/hash.rb'
243
+ - 'lib/sequencescape-api/error_handling.rb'
244
+ - 'lib/sequencescape-api/errors.rb'
245
+ - 'lib/sequencescape-api/finder_methods.rb'
246
+ - 'lib/sequencescape-api/rails.rb'
247
+ - 'lib/sequencescape-api/resource.rb'
248
+ - 'lib/sequencescape-api/resource/active_model.rb'
249
+ - 'lib/sequencescape-api/resource/attribute_groups.rb'
250
+ - 'lib/sequencescape-api/resource/attributes.rb'
251
+ - 'lib/sequencescape-api/resource/instance_methods.rb'
252
+ - 'lib/sequencescape-api/resource/json.rb'
253
+ - 'lib/sequencescape-api/resource/modifications.rb'
254
+ - 'lib/sequencescape-api/resource_model_proxy.rb'
255
+ - 'lib/sequencescape-api/version.rb'
256
+ - 'lib/sequencescape.rb'
257
+ - 'lib/sequencescape/asset.rb'
258
+ - 'lib/sequencescape/asset_audit.rb'
259
+ - 'lib/sequencescape/asset_group.rb'
260
+ - 'lib/sequencescape/bait_library.rb'
261
+ - 'lib/sequencescape/bait_library_layout.rb'
262
+ - 'lib/sequencescape/barcode_printer.rb'
263
+ - 'lib/sequencescape/barcoded_asset.rb'
264
+ - 'lib/sequencescape/batch.rb'
265
+ - 'lib/sequencescape/behaviour/barcoded.rb'
266
+ - 'lib/sequencescape/behaviour/labeled.rb'
267
+ - 'lib/sequencescape/behaviour/qced.rb'
268
+ - 'lib/sequencescape/behaviour/receptacle.rb'
269
+ - 'lib/sequencescape/behaviour/state_driven.rb'
270
+ - 'lib/sequencescape/bulk_transfer.rb'
271
+ - 'lib/sequencescape/comment.rb'
272
+ - 'lib/sequencescape/custom_metadatum_collection.rb'
273
+ - 'lib/sequencescape/extraction_attribute.rb'
274
+ - 'lib/sequencescape/lane.rb'
275
+ - 'lib/sequencescape/library_event.rb'
276
+ - 'lib/sequencescape/library_tube.rb'
277
+ - 'lib/sequencescape/lot.rb'
278
+ - 'lib/sequencescape/lot_type.rb'
279
+ - 'lib/sequencescape/multiplexed_library_tube.rb'
280
+ - 'lib/sequencescape/order.rb'
281
+ - 'lib/sequencescape/order_template.rb'
282
+ - 'lib/sequencescape/pipeline.rb'
283
+ - 'lib/sequencescape/plate.rb'
284
+ - 'lib/sequencescape/plate/pooling.rb'
285
+ - 'lib/sequencescape/plate/well_structure.rb'
286
+ - 'lib/sequencescape/plate_conversion.rb'
287
+ - 'lib/sequencescape/plate_creation.rb'
288
+ - 'lib/sequencescape/plate_purpose.rb'
289
+ - 'lib/sequencescape/plate_template.rb'
290
+ - 'lib/sequencescape/pooled_plate_creation.rb'
291
+ - 'lib/sequencescape/project.rb'
292
+ - 'lib/sequencescape/qc_decision.rb'
293
+ - 'lib/sequencescape/qc_file.rb'
294
+ - 'lib/sequencescape/qcable.rb'
295
+ - 'lib/sequencescape/qcable_creator.rb'
296
+ - 'lib/sequencescape/request.rb'
297
+ - 'lib/sequencescape/robot.rb'
298
+ - 'lib/sequencescape/sample.rb'
299
+ - 'lib/sequencescape/sample_tube.rb'
300
+ - 'lib/sequencescape/search.rb'
301
+ - 'lib/sequencescape/specific_tube_creation.rb'
302
+ - 'lib/sequencescape/stamp.rb'
303
+ - 'lib/sequencescape/state_change.rb'
304
+ - 'lib/sequencescape/study.rb'
305
+ - 'lib/sequencescape/submission.rb'
306
+ - 'lib/sequencescape/submission_pool.rb'
307
+ - 'lib/sequencescape/tag.rb'
308
+ - 'lib/sequencescape/tag2_layout.rb'
309
+ - 'lib/sequencescape/tag2_layout_template.rb'
310
+ - 'lib/sequencescape/tag_group.rb'
311
+ - 'lib/sequencescape/tag_layout.rb'
312
+ - 'lib/sequencescape/tag_layout_template.rb'
313
+ - 'lib/sequencescape/template.rb'
314
+ - 'lib/sequencescape/transfer.rb'
315
+ - 'lib/sequencescape/transfer_request.rb'
316
+ - 'lib/sequencescape/transfer_request_collection.rb'
317
+ - 'lib/sequencescape/transfer_template.rb'
318
+ - 'lib/sequencescape/tube.rb'
319
+ - 'lib/sequencescape/tube_creation.rb'
320
+ - 'lib/sequencescape/tube_from_tube_creation.rb'
321
+ - 'lib/sequencescape/tube_purpose.rb'
322
+ - 'lib/sequencescape/user.rb'
323
+ - 'lib/sequencescape/volume_update.rb'
324
+ - 'lib/sequencescape/well.rb'
325
+ - 'lib/sequencescape/work_completion.rb'
326
+ - 'sequencescape-api.gemspec'
327
+
328
+ # Offense count: 2
329
+ Style/MethodMissingSuper:
330
+ Exclude:
331
+ - 'lib/sequencescape-api/associations/belongs_to.rb'
332
+ - 'lib/sequencescape-api/resource_model_proxy.rb'
333
+
334
+ # Offense count: 2
335
+ Style/MissingRespondToMissing:
336
+ Exclude:
337
+ - 'lib/sequencescape-api/associations/belongs_to.rb'
338
+ - 'lib/sequencescape-api/core.rb'
@@ -0,0 +1 @@
1
+ ruby-2.5.8
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "http://rubygems.org"
1
+ source 'http://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in sequencescape-api.gemspec
4
4
  gemspec
@@ -1,4 +1,17 @@
1
1
  Sequencescape Client API
2
2
  ========================
3
+
3
4
  This is the Ruby client library for the Sequencescape API.
4
5
  Documentation can be found [on the wiki](https://github.com/sanger/sequencescape-client-api/wiki).
6
+
7
+ Version Guides
8
+ --------------
9
+
10
+ - 0.2.x Supports older versions of Rails.
11
+ - 0.3.x Supports Rails 3.2.x to 5.1.x
12
+ - 0.4.x Supports Rails 5.0 and up
13
+
14
+ - master currently corresponds to 0.4.x
15
+
16
+ Rails 6 appears to be supported judging by Specs, but haven't used it in anger
17
+ yet.
@@ -13,4 +13,4 @@ require 'sequencescape-api/resource'
13
13
  require 'sequencescape-api/rails'
14
14
 
15
15
  # Ensure that the I18n stuff has been properly configured
16
- I18n.config.load_path << File.expand_path(File.join(File.dirname(__FILE__), %w{sequencescape-api locale en.yml}))
16
+ I18n.config.load_path << File.expand_path(File.join(File.dirname(__FILE__), %w[sequencescape-api locale en.yml]))
@@ -9,9 +9,10 @@ module Sequencescape::Api::Actions
9
9
  module ClassActionHelpers
10
10
  # Defines a method that is available on the resource model itself, rather than on an instance of
11
11
  # the resource model.
12
- def has_class_create_action(*args)
13
- action_module, line = Module.new, __LINE__+1
14
- action_module.module_eval(%Q{
12
+ def has_class_create_action(*args) # rubocop:todo Metrics/MethodLength
13
+ action_module = Module.new
14
+ line = __LINE__ + 1
15
+ action_module.module_eval(%{
15
16
  def initialize_class_actions(proxy)
16
17
  super
17
18
 
@@ -31,7 +32,7 @@ module Sequencescape::Api::Actions
31
32
  end
32
33
 
33
34
  module InstanceActionHelpers
34
- def has_create_action(*args)
35
+ def has_create_action(*args) # rubocop:todo Metrics/MethodLength
35
36
  options = args.extract_options!
36
37
  name = args.first || :create!
37
38
 
@@ -40,7 +41,7 @@ module Sequencescape::Api::Actions
40
41
  result_class = "api.#{options[:resource]}" if options[:resource]
41
42
 
42
43
  line = __LINE__ + 1
43
- class_eval(%Q{
44
+ class_eval(%{
44
45
  def #{name}(attributes = nil)
45
46
  url = actions.try(#{action.to_sym.inspect}) or
46
47
  raise Sequencescape::Api::Error, "Cannot perform #{action} without an URL"
@@ -54,14 +55,14 @@ module Sequencescape::Api::Actions
54
55
 
55
56
  def has_update_action(name, options = {})
56
57
  api_method = options[:verb] == :create ? :create : :update
57
- skip_json = options[:skip_json]||false
58
+ skip_json = options[:skip_json] || false
58
59
  action = options[:action] || :update
59
60
 
60
61
  line = __LINE__ + 1
61
- class_eval(%Q{
62
+ class_eval(%{
62
63
  def #{name}(body = nil)
63
64
  update_from_json(body || {}, false)
64
- modify!(:action => #{action.to_sym.inspect}, :http_verb => #{api_method.to_sym.inspect}, :skip_json => #{skip_json})
65
+ modify!(action: #{action.to_sym.inspect}, http_verb: #{api_method.to_sym.inspect}, skip_json: #{skip_json})
65
66
  end
66
67
  }, __FILE__, line)
67
68
  end