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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c062e8e2cf8d46ebb0087e9c85c16a211b36a8b9a8014db7a5826e1ac25f341
4
- data.tar.gz: b739820427c420b476338b31d369a964fc3ff6797c890152a39d2b8cbcd80c44
3
+ metadata.gz: 648af911561c256762dc5f7c32baf400e3808bff97bc47ae0e8a307fe405b2d4
4
+ data.tar.gz: b1ee71add210dafcee368802dfa40a9e49aab63a45451529fd7fb7fc76a6148e
5
5
  SHA512:
6
- metadata.gz: 58d4ac49153efb4a8a7e426672e39ba670da503b849e5c3f9c968958300e45168a2f8325a1b2cdf3c539602c5ccda17d8a53aaccac05c9a5d0cdf159014b39c5
7
- data.tar.gz: 59308361c7935ff38979979c5907b17dce49ec4c898b7aa93611d9a6940a5df460596b01b0bf91c7eb8c456b029ffd1bf3b593c4f505a46127f648d197890be5
6
+ metadata.gz: c55c3a95aa82cc231244bd10e6153a020dbcb7ddd6fc749729e5184dc794ef0e056523f9dc5675edc8bc9e68bcf1292cd47c7017c2808eb579e70acd774fd3d3
7
+ data.tar.gz: 5d7ac6fee834eb3018ea23371a8f40fc18797651af2f70e5033e9fb19a0b7aab86904bb8732fc29f02d8108b2a4e4a696910af565913ac2f2f9c6e97c867a62d
@@ -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