orcid 0.0.4 → 0.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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +10 -0
  3. data/.hound.yml +793 -0
  4. data/.travis.yml +14 -0
  5. data/Gemfile +14 -0
  6. data/README.md +107 -6
  7. data/Rakefile +17 -9
  8. data/app/assets/images/orcid/.keep +0 -0
  9. data/app/controllers/orcid/application_controller.rb +13 -4
  10. data/app/controllers/orcid/profile_connections_controller.rb +34 -6
  11. data/app/controllers/orcid/profile_requests_controller.rb +18 -15
  12. data/app/models/orcid/profile.rb +15 -5
  13. data/app/models/orcid/profile_connection.rb +20 -20
  14. data/app/models/orcid/profile_request.rb +39 -20
  15. data/app/models/orcid/work.rb +45 -55
  16. data/app/models/orcid/work/xml_parser.rb +45 -0
  17. data/app/models/orcid/work/xml_renderer.rb +29 -0
  18. data/app/services/orcid/remote/profile_creation_service.rb +40 -32
  19. data/app/services/orcid/remote/profile_query_service.rb +82 -0
  20. data/app/services/orcid/remote/profile_query_service/query_parameter_builder.rb +43 -0
  21. data/app/services/orcid/remote/profile_query_service/search_response.rb +31 -0
  22. data/app/services/orcid/remote/service.rb +16 -13
  23. data/app/services/orcid/remote/work_service.rb +58 -43
  24. data/app/templates/orcid/work.template.v1.1.xml.erb +32 -1
  25. data/app/views/orcid/profile_connections/_orcid_connector.html.erb +14 -0
  26. data/app/views/orcid/profile_connections/new.html.erb +4 -4
  27. data/bin/rails +8 -0
  28. data/config/{application.yml → application.yml.example} +3 -13
  29. data/config/locales/orcid.en.yml +5 -1
  30. data/config/routes.rb +4 -2
  31. data/lib/generators/orcid/install/install_generator.rb +46 -7
  32. data/lib/orcid.rb +23 -11
  33. data/lib/orcid/configuration.rb +32 -13
  34. data/lib/orcid/configuration/provider.rb +27 -13
  35. data/lib/orcid/engine.rb +20 -4
  36. data/lib/orcid/exceptions.rb +33 -4
  37. data/lib/orcid/named_callbacks.rb +3 -1
  38. data/lib/orcid/spec_support.rb +19 -9
  39. data/lib/orcid/version.rb +1 -1
  40. data/lib/tasks/orcid_tasks.rake +3 -3
  41. data/orcid.gemspec +51 -0
  42. data/rubocop.txt +1164 -0
  43. data/script/fast_specs +22 -0
  44. data/spec/controllers/orcid/profile_connections_controller_spec.rb +101 -0
  45. data/spec/controllers/orcid/profile_requests_controller_spec.rb +116 -0
  46. data/spec/factories/orcid_profile_requests.rb +11 -0
  47. data/spec/factories/users.rb +9 -0
  48. data/spec/fast_helper.rb +12 -0
  49. data/spec/features/batch_profile_spec.rb +31 -0
  50. data/spec/features/non_ui_based_interactions_spec.rb +117 -0
  51. data/spec/features/profile_connection_feature_spec.rb +19 -0
  52. data/spec/features/public_api_query_spec.rb +36 -0
  53. data/spec/fixtures/orcid_works.xml +55 -0
  54. data/spec/lib/orcid/configuration/provider_spec.rb +40 -0
  55. data/spec/lib/orcid/configuration_spec.rb +38 -0
  56. data/spec/lib/orcid/named_callbacks_spec.rb +28 -0
  57. data/spec/lib/orcid_spec.rb +97 -0
  58. data/spec/models/orcid/profile_connection_spec.rb +81 -0
  59. data/spec/models/orcid/profile_request_spec.rb +131 -0
  60. data/spec/models/orcid/profile_spec.rb +76 -0
  61. data/spec/models/orcid/work/xml_parser_spec.rb +40 -0
  62. data/spec/models/orcid/work/xml_renderer_spec.rb +18 -0
  63. data/spec/models/orcid/work_spec.rb +53 -0
  64. data/spec/services/orcid/remote/profile_creation_service_spec.rb +40 -0
  65. data/spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb +44 -0
  66. data/spec/services/orcid/remote/profile_query_service/search_response_spec.rb +14 -0
  67. data/spec/services/orcid/remote/profile_query_service_spec.rb +118 -0
  68. data/spec/services/orcid/remote/service_spec.rb +26 -0
  69. data/spec/services/orcid/remote/work_service_spec.rb +44 -0
  70. data/spec/spec_helper.rb +99 -0
  71. data/spec/support/non_orcid_models.rb +11 -0
  72. data/spec/support/stub_callback.rb +25 -0
  73. data/spec/test_app_templates/Gemfile.extra +3 -0
  74. data/spec/test_app_templates/lib/generators/test_app_generator.rb +36 -0
  75. data/spec/views/orcid/profile_connections/new.html.erb_spec.rb +25 -0
  76. data/spec/views/orcid/profile_requests/new.html.erb_spec.rb +23 -0
  77. metadata +119 -29
  78. data/app/runners/orcid/profile_lookup_runner.rb +0 -33
  79. data/app/runners/orcid/runner.rb +0 -15
  80. data/app/services/orcid/remote/profile_lookup_service.rb +0 -56
  81. data/app/services/orcid/remote/profile_lookup_service/search_response.rb +0 -23
  82. data/lib/orcid/query_parameter_builder.rb +0 -38
data/rubocop.txt ADDED
@@ -0,0 +1,1164 @@
1
+ Inspecting 93 files
2
+ .....CC...C.C..C..C....C.CCWCWCCCC.WCWCCCCC....W...C.C...WC..CC..C.C..CCCCCCCCCCCCCCCCCCCWC..
3
+
4
+ Offenses:
5
+
6
+ app/models/orcid/profile_request.rb:76:5: C: Method has too many lines. [21/10]
7
+ def xml_payload(input = attributes)
8
+ ^^^
9
+ app/models/orcid/profile_request.rb:81:141: C: Line is too long. [149/140]
10
+ xmlns:xsi="http://www.orcid.org/ns/orcid https://raw.github.com/ORCID/ORCID-Source/master/orcid-model/src/main/resources/orcid-message-1.1.xsd"
11
+ ^^^^^^^^^
12
+ app/models/orcid/work/xml_parser.rb:27:7: C: Method has too many lines. [14/10]
13
+ def transform(node)
14
+ ^^^
15
+ app/services/orcid/remote/profile_query_service/query_parameter_builder.rb:7:1: C: Extra empty line detected at body beginning.
16
+ app/services/orcid/remote/profile_query_service/query_parameter_builder.rb:14:9: C: Cyclomatic complexity for call is too high. [7/6]
17
+ def call(input = {})
18
+ ^^^
19
+ app/services/orcid/remote/profile_query_service/query_parameter_builder.rb:14:9: C: Method has too many lines. [23/10]
20
+ def call(input = {})
21
+ ^^^
22
+ app/services/orcid/remote/profile_query_service.rb:56:7: C: Method has too many lines. [20/10]
23
+ def parse(document)
24
+ ^^^
25
+ app/services/orcid/remote/profile_query_service.rb:69:59: C: Space between { and | missing.
26
+ emails = (contact_details['email'] || []).map {|email| email.fetch('value') }
27
+ ^^
28
+ app/services/orcid/remote/profile_query_service.rb:79:1: C: Extra empty line detected at body end.
29
+ app/services/orcid/remote.rb:2:3: C: Missing top-level module documentation comment.
30
+ module Remote
31
+ ^^^^^^
32
+ app/services/orcid/remote.rb:4:4: C: Final newline missing.
33
+ end
34
+
35
+ db/migrate/20140205185338_create_orcid_profile_requests.rb:1:1: C: Missing top-level class documentation comment.
36
+ class CreateOrcidProfileRequests < ActiveRecord::Migration
37
+ ^^^^^
38
+ lib/orcid/exceptions.rb:2:1: C: Extra empty line detected at body beginning.
39
+ lib/orcid/exceptions.rb:3:3: C: Missing top-level class documentation comment.
40
+ class ConfigurationError < RuntimeError
41
+ ^^^^^
42
+ lib/orcid/exceptions.rb:14:15: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
43
+ text << "-- Client --"
44
+ ^^^^^^^^^^^^^^
45
+ lib/orcid/spec_support.rb:2:1: C: Missing top-level class documentation comment.
46
+ class RequestSandboxAuthorizationCode
47
+ ^^^^^
48
+ lib/orcid/spec_support.rb:3:1: C: Extra empty line detected at body beginning.
49
+ lib/orcid/spec_support.rb:52:35: C: Redundant curly braces around a hash parameter.
50
+ RestClient.get(authorize_url, { params: parameters, cookies: cookies })
51
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52
+ lib/orcid/spec_support.rb:57:53: C: Redundant curly braces around a hash parameter.
53
+ authorize_url, { user_oauth_approval: true }, { cookies: cookies }
54
+ ^^^^^^^^^^^^^^^^^^^^
55
+ lib/orcid/spec_support.rb:63:1: C: Extra empty line detected at body end.
56
+ lib/orcid/version.rb:1:1: C: Missing top-level module documentation comment.
57
+ module Orcid
58
+ ^^^^^^
59
+ lib/orcid.rb:13:1: C: Missing top-level module documentation comment.
60
+ module Orcid
61
+ ^^^^^^
62
+ lib/orcid.rb:14:1: C: Extra empty line detected at body beginning.
63
+ lib/orcid.rb:62:13: W: Assignment in condition - you probably meant to use ==.
64
+ if auth = authentication_model.where(provider: 'orcid', user: user).first
65
+ ^
66
+ lib/orcid.rb:85:1: C: Extra empty line detected at body end.
67
+ orcid.gemspec:1:1: C: Prefer $LOAD_PATH over $:.
68
+ $:.push File.expand_path("../lib", __FILE__)
69
+ ^^
70
+ orcid.gemspec:1:26: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
71
+ $:.push File.expand_path("../lib", __FILE__)
72
+ ^^^^^^^^
73
+ orcid.gemspec:21:34: C: Use %r only for regular expressions matching more than 1 '/' character.
74
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
75
+ ^^^^^^^^^
76
+ orcid.gemspec:22:34: C: Use %r only for regular expressions matching more than 1 '/' character.
77
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
78
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
79
+ orcid.gemspec:23:22: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
80
+ s.require_paths = ["lib"]
81
+ ^^^^^
82
+ Rakefile:9:1: C: Extra blank line detected.
83
+ Rakefile:11:35: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
84
+ APP_RAKEFILE = File.expand_path("../spec/internal/Rakefile", __FILE__)
85
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
86
+ Rakefile:21:39: W: Unused block argument - t. You can omit the argument if you don't care about it.
87
+ RSpec::Core::RakeTask.new(:all) do |t|
88
+ ^
89
+ Rakefile:26:20: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
90
+ t.rspec_opts = "--tag ~requires_net_connect"
91
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
92
+ Rakefile:31:20: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
93
+ t.rspec_opts = "--tag requires_net_connect"
94
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
95
+ Rakefile:37:24: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
96
+ ENV['SPEC_OPTS'] = "--profile 20"
97
+ ^^^^^^^^^^^^^^
98
+ Rakefile:45:1: C: Avoid using rescue in its modifier form.
99
+ Rake::Task["default"].clear rescue nil
100
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
101
+ Rakefile:45:12: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
102
+ Rake::Task["default"].clear rescue nil
103
+ ^^^^^^^^^
104
+ Rakefile:46:12: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
105
+ Rake::Task["spec"].clear
106
+ ^^^^^^
107
+ Rakefile:48:6: C: Use the new Ruby 1.9 hash syntax.
108
+ task :spec => 'spec:offline'
109
+ ^^^^^^^^
110
+ Rakefile:49:6: C: Use the new Ruby 1.9 hash syntax.
111
+ task :default => 'spec:travis'
112
+ ^^^^^^^^^^^
113
+ Rakefile:49:31: C: Final newline missing.
114
+ task :default => 'spec:travis'
115
+
116
+ script/fast_specs:5:1: C: Missing top-level module documentation comment.
117
+ module Fast
118
+ ^^^^^^
119
+ script/fast_specs:12:51: C: Avoid using {...} for multi-line blocks.
120
+ fast_specs = FileList['spec/**/*_spec.rb'].select { |fn|
121
+ ^
122
+ script/fast_specs:18:8: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
123
+ puts "Unable to find any fast specs"
124
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
125
+ spec/controllers/orcid/profile_connections_controller_spec.rb:3:1: C: Missing top-level module documentation comment.
126
+ module Orcid
127
+ ^^^^^^
128
+ spec/controllers/orcid/profile_connections_controller_spec.rb:14:5: C: Method has too many lines. [12/10]
129
+ def self.it_redirects_if_user_has_previously_connected_to_orcid_profile(method, action)
130
+ ^^^
131
+ spec/controllers/orcid/profile_connections_controller_spec.rb:18:34: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
132
+ orcid_profile = double("Orcid::Profile", orcid_profile_id: '1234-5678-0001-0002')
133
+ ^^^^^^^^^^^^^^^^
134
+ spec/controllers/orcid/profile_connections_controller_spec.rb:25:20: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
135
+ I18n.t("orcid.requests.messages.previously_connected_profile", orcid_profile_id: orcid_profile.orcid_profile_id)
136
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
137
+ spec/controllers/orcid/profile_connections_controller_spec.rb:42:45: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
138
+ expect(flash[:notice]).to eq(I18n.t("orcid.connections.messages.profile_connection_not_found"))
139
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
140
+ spec/controllers/orcid/profile_connections_controller_spec.rb:48:32: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
141
+ orcid_profile = double("Orcid::Profile", orcid_profile_id: '1234-5678-0001-0002', verified_authentication?: false)
142
+ ^^^^^^^^^^^^^^^^
143
+ spec/controllers/orcid/profile_connections_controller_spec.rb:52:69: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
144
+ expect(response).to redirect_to(user_omniauth_authorize_url("orcid"))
145
+ ^^^^^^^
146
+ spec/controllers/orcid/profile_connections_controller_spec.rb:57:32: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
147
+ orcid_profile = double("Orcid::Profile", orcid_profile_id: '1234-5678-0001-0002', verified_authentication?: true)
148
+ ^^^^^^^^^^^^^^^^
149
+ spec/controllers/orcid/profile_connections_controller_spec.rb:63:45: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
150
+ expect(flash[:notice]).to eq(I18n.t("orcid.connections.messages.verified_profile_connection_exists", orcid_profile_id: orcid_profile.orcid_profile_id))
151
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
152
+ spec/controllers/orcid/profile_connections_controller_spec.rb:63:141: C: Line is too long. [159/140]
153
+ expect(flash[:notice]).to eq(I18n.t("orcid.connections.messages.verified_profile_connection_exists", orcid_profile_id: orcid_profile.orcid_profile_id))
154
+ ^^^^^^^^^^^^^^^^^^^
155
+ spec/controllers/orcid/profile_connections_controller_spec.rb:88:33: C: Space missing inside {.
156
+ let(:orcid_profile_id) {'0000-0001-8025-637X'}
157
+ ^
158
+ spec/controllers/orcid/profile_connections_controller_spec.rb:88:54: C: Space missing inside }.
159
+ let(:orcid_profile_id) {'0000-0001-8025-637X'}
160
+ ^
161
+ spec/controllers/orcid/profile_requests_controller_spec.rb:3:1: C: Missing top-level module documentation comment.
162
+ module Orcid
163
+ ^^^^^^
164
+ spec/controllers/orcid/profile_requests_controller_spec.rb:7:12: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
165
+ it "should redirect for sign in" do
166
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
167
+ spec/controllers/orcid/profile_requests_controller_spec.rb:14:5: C: Method has too many lines. [12/10]
168
+ def self.it_redirects_if_user_has_previously_connected_to_orcid_profile(method, action)
169
+ ^^^
170
+ spec/controllers/orcid/profile_requests_controller_spec.rb:18:34: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
171
+ orcid_profile = double("Orcid::Profile", orcid_profile_id: '1234-5678-0001-0002')
172
+ ^^^^^^^^^^^^^^^^
173
+ spec/controllers/orcid/profile_requests_controller_spec.rb:25:20: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
174
+ I18n.t("orcid.requests.messages.previously_connected_profile", orcid_profile_id: orcid_profile.orcid_profile_id)
175
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
176
+ spec/controllers/orcid/profile_requests_controller_spec.rb:42:94: C: Space missing inside }.
177
+ let(:profile_request) { FactoryGirl.build_stubbed(:orcid_profile_request, user: user)}
178
+ ^
179
+ spec/controllers/orcid/profile_requests_controller_spec.rb:45:62: C: Place the . on the next line, together with the method name.
180
+ Orcid::ProfileRequest.should_receive(:find_by_user).
181
+ ^
182
+ spec/controllers/orcid/profile_requests_controller_spec.rb:56:62: C: Place the . on the next line, together with the method name.
183
+ Orcid::ProfileRequest.should_receive(:find_by_user).
184
+ ^
185
+ spec/controllers/orcid/profile_requests_controller_spec.rb:61:47: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
186
+ expect(flash[:notice]).to eq(I18n.t("orcid.requests.messages.existing_request_not_found"))
187
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
188
+ spec/controllers/orcid/profile_requests_controller_spec.rb:85:47: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
189
+ expect(flash[:notice]).to eq(I18n.t("orcid.requests.messages.existing_request"))
190
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
191
+ spec/controllers/orcid/profile_requests_controller_spec.rb:109:47: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
192
+ expect(flash[:notice]).to eq(I18n.t("orcid.requests.messages.existing_request"))
193
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
194
+ spec/factories/orcid_profile_requests.rb:4:35: C: Use the new Ruby 1.9 hash syntax.
195
+ factory :orcid_profile_request, :class => 'Orcid::ProfileRequest' do
196
+ ^^^^^^^^^
197
+ spec/fast_helper.rb:2:22: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
198
+ Dir[File.expand_path("../../app/*", __FILE__)].each do |dir|
199
+ ^^^^^^^^^^^^^
200
+ spec/fast_helper.rb:5:32: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
201
+ $LOAD_PATH << File.expand_path("../../lib", __FILE__)
202
+ ^^^^^^^^^^^
203
+ spec/fast_helper.rb:10:13: W: Ambiguous splat operator. Parenthesize the method arguments if it's surely a splat operator, or add a whitespace to the right of the * if it should be a multiplication.
204
+ require *files
205
+ ^
206
+ spec/features/batch_profile_spec.rb:10:18: C: Avoid using {...} for multi-line blocks.
207
+ Given(:runner) {
208
+ ^
209
+ spec/features/batch_profile_spec.rb:11:12: C: Avoid using {...} for multi-line blocks.
210
+ lambda { |person|
211
+ ^
212
+ spec/features/batch_profile_spec.rb:12:46: C: Avoid using {...} for multi-line blocks.
213
+ Orcid::Remote::ProfileQueryService.new {|on|
214
+ ^
215
+ spec/features/batch_profile_spec.rb:13:18: C: Space between { and | missing.
216
+ on.found {|results| person.found(results) }
217
+ ^^
218
+ spec/features/batch_profile_spec.rb:18:18: C: Avoid using {...} for multi-line blocks.
219
+ Given(:person) {
220
+ ^
221
+ spec/features/non_ui_based_interactions_spec.rb:5:21: C: Space between { and | missing.
222
+ Mappy.configure {|b|}
223
+ ^^
224
+ spec/features/non_ui_based_interactions_spec.rb:5:23: W: Unused block argument - b. You can omit the argument if you don't care about it.
225
+ Mappy.configure {|b|}
226
+ ^
227
+ spec/features/non_ui_based_interactions_spec.rb:5:25: C: Space missing inside }.
228
+ Mappy.configure {|b|}
229
+ ^
230
+ spec/features/non_ui_based_interactions_spec.rb:12:39: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
231
+ let(:work) { Orcid::Work.new(title: "Test Driven Orcid Integration", work_type: 'test') }
232
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
233
+ spec/features/non_ui_based_interactions_spec.rb:21:27: C: Avoid using {...} for multi-line blocks.
234
+ let(:profile_request) {
235
+ ^
236
+ spec/features/non_ui_based_interactions_spec.rb:51:67: C: Space missing inside }.
237
+ let(:orcid_profile_id) { ENV.fetch('ORCID_CLAIMED_PROFILE_ID')}
238
+ ^
239
+ spec/features/non_ui_based_interactions_spec.rb:52:79: C: Space missing inside }.
240
+ let(:orcid_profile_password) { ENV.fetch('ORCID_CLAIMED_PROFILE_PASSWORD')}
241
+ ^
242
+ spec/features/non_ui_based_interactions_spec.rb:61:49: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
243
+ replacement_work = Orcid::Work.new(title: "Test Driven Orcid Integration", work_type: 'test')
244
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
245
+ spec/features/non_ui_based_interactions_spec.rb:62:46: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
246
+ appended_work = Orcid::Work.new(title: "Another Test Drive", work_type: 'test')
247
+ ^^^^^^^^^^^^^^^^^^^^
248
+ spec/features/non_ui_based_interactions_spec.rb:66:14: C: Avoid using {...} for multi-line blocks.
249
+ expect {
250
+ ^
251
+ spec/features/non_ui_based_interactions_spec.rb:77:24: C: Space inside { missing.
252
+ normalized_token = {provider: 'orcid', uid: orcid_profile_id, credentials: {token: token.token, refresh_token: token.refresh_token }}
253
+ ^
254
+ spec/features/non_ui_based_interactions_spec.rb:77:80: C: Space inside { missing.
255
+ normalized_token = {provider: 'orcid', uid: orcid_profile_id, credentials: {token: token.token, refresh_token: token.refresh_token }}
256
+ ^
257
+ spec/features/non_ui_based_interactions_spec.rb:77:137: C: Space inside } missing.
258
+ normalized_token = {provider: 'orcid', uid: orcid_profile_id, credentials: {token: token.token, refresh_token: token.refresh_token }}
259
+ ^
260
+ spec/features/non_ui_based_interactions_spec.rb:82:3: C: Method has too many lines. [28/10]
261
+ def claim_the_orcid!(email_prefix)
262
+ ^^^
263
+ spec/features/non_ui_based_interactions_spec.rb:101:36: C: Prefer map over collect.
264
+ href = page.all('.mailview a').collect { |a| a[:href] }.find {|href| href = /\/claim\//}
265
+ ^^^^^^^
266
+ spec/features/non_ui_based_interactions_spec.rb:101:66: C: Space between { and | missing.
267
+ href = page.all('.mailview a').collect { |a| a[:href] }.find {|href| href = /\/claim\//}
268
+ ^^
269
+ spec/features/non_ui_based_interactions_spec.rb:101:68: W: Shadowing outer local variable - href.
270
+ href = page.all('.mailview a').collect { |a| a[:href] }.find {|href| href = /\/claim\//}
271
+ ^^^^
272
+ spec/features/non_ui_based_interactions_spec.rb:101:68: W: Unused block argument - href. You can omit the argument if you don't care about it.
273
+ href = page.all('.mailview a').collect { |a| a[:href] }.find {|href| href = /\/claim\//}
274
+ ^^^^
275
+ spec/features/non_ui_based_interactions_spec.rb:101:74: W: Useless assignment to variable - href.
276
+ href = page.all('.mailview a').collect { |a| a[:href] }.find {|href| href = /\/claim\//}
277
+ ^^^^
278
+ spec/features/non_ui_based_interactions_spec.rb:101:81: C: Use %r for regular expressions matching more than 1 '/' character.
279
+ href = page.all('.mailview a').collect { |a| a[:href] }.find {|href| href = /\/claim\//}
280
+ ^^^^^^^^^^^
281
+ spec/features/non_ui_based_interactions_spec.rb:101:92: C: Space missing inside }.
282
+ href = page.all('.mailview a').collect { |a| a[:href] }.find {|href| href = /\/claim\//}
283
+ ^
284
+ spec/features/non_ui_based_interactions_spec.rb:114:29: C: Space between { and | missing.
285
+ page.all('button').find {|i| i.text == 'Claim' }.click
286
+ ^^
287
+ spec/features/profile_connection_feature_spec.rb:3:1: C: Missing top-level module documentation comment.
288
+ module Orcid
289
+ ^^^^^^
290
+ spec/features/public_api_query_spec.rb:10:18: C: Avoid using {...} for multi-line blocks.
291
+ Given(:runner) {
292
+ ^
293
+ spec/features/public_api_query_spec.rb:32:35: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
294
+ Given(:parameters) { { email: "nobody@gmail.com", text: '"Jeremy+Friesen"' } }
295
+ ^^^^^^^^^^^^^^^^^^
296
+ spec/internal/app/controllers/application_controller.rb:1:1: C: Missing top-level class documentation comment.
297
+ class ApplicationController < ActionController::Base
298
+ ^^^^^
299
+ spec/internal/app/controllers/application_controller.rb:2:1: C: Use 2 (not 6) spaces for indentation.
300
+ def index
301
+ ^^^^^^
302
+ spec/internal/app/controllers/application_controller.rb:5:1: C: Trailing whitespace detected.
303
+ spec/internal/app/controllers/application_controller.rb:8:3: C: Inconsistent indentation detected.
304
+ protect_from_forgery with: :exception
305
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
306
+ spec/internal/app/helpers/application_helper.rb:1:1: C: Missing top-level module documentation comment.
307
+ module ApplicationHelper
308
+ ^^^^^^
309
+ spec/internal/app/models/user.rb:1:1: C: Missing top-level class documentation comment.
310
+ class User < ActiveRecord::Base
311
+ ^^^^^
312
+ spec/internal/app/models/user.rb:5:80: C: Use the new Ruby 1.9 hash syntax.
313
+ :recoverable, :rememberable, :trackable, :validatable, :omniauthable, :omniauth_providers => [:orcid]
314
+ ^^^^^^^^^^^^^^^^^^^^^^
315
+ spec/internal/config/boot.rb:4:33: W: File.exists? is deprecated in favor of File.exist?.
316
+ require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
317
+ ^^^^^^^
318
+ spec/internal/config/environments/test.rb:17:33: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
319
+ config.static_cache_control = "public, max-age=3600"
320
+ ^^^^^^^^^^^^^^^^^^^^^^
321
+ spec/internal/config/initializers/devise.rb:4:1: C: Use 2 (not 8) spaces for indentation.
322
+ config.omniauth(:orcid, Orcid.provider.id, Orcid.provider.secret,
323
+ ^^^^^^^^
324
+ spec/internal/config/initializers/devise.rb:12:1: C: Trailing whitespace detected.
325
+ spec/internal/config/initializers/devise.rb:16:141: C: Line is too long. [154/140]
326
+ # config.secret_key = '07af7d8750d7a05a59152b6d5b201a354a4dbfe4f45a261a7ed4e2cf5fdb414dc8358389db71e46075f5d021f46a267018d4940763b53953acb3587673431e52'
327
+ ^^^^^^^^^^^^^^
328
+ spec/internal/config/initializers/devise.rb:22:3: C: Inconsistent indentation detected.
329
+ config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
330
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
331
+ spec/internal/config/initializers/devise.rb:31:3: C: Inconsistent indentation detected.
332
+ require 'devise/orm/active_record'
333
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
334
+ spec/internal/config/initializers/devise.rb:53:3: C: Inconsistent indentation detected.
335
+ config.case_insensitive_keys = [ :email ]
336
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
337
+ spec/internal/config/initializers/devise.rb:53:35: C: Space inside square brackets detected.
338
+ config.case_insensitive_keys = [ :email ]
339
+ ^
340
+ spec/internal/config/initializers/devise.rb:53:42: C: Space inside square brackets detected.
341
+ config.case_insensitive_keys = [ :email ]
342
+ ^
343
+ spec/internal/config/initializers/devise.rb:58:3: C: Inconsistent indentation detected.
344
+ config.strip_whitespace_keys = [ :email ]
345
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
346
+ spec/internal/config/initializers/devise.rb:58:35: C: Space inside square brackets detected.
347
+ config.strip_whitespace_keys = [ :email ]
348
+ ^
349
+ spec/internal/config/initializers/devise.rb:58:42: C: Space inside square brackets detected.
350
+ config.strip_whitespace_keys = [ :email ]
351
+ ^
352
+ spec/internal/config/initializers/devise.rb:89:3: C: Inconsistent indentation detected.
353
+ config.skip_session_storage = [:http_auth]
354
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
355
+ spec/internal/config/initializers/devise.rb:106:3: C: Inconsistent indentation detected.
356
+ config.stretches = Rails.env.test? ? 1 : 10
357
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
358
+ spec/internal/config/initializers/devise.rb:109:141: C: Line is too long. [150/140]
359
+ # config.pepper = 'e56b0df2ccfc96613a3aa4857d0c63b28e04df50e2b5a6e14197301f86f84b01801341f654687ba1ffd855ac1b1f79d0e680a0cafbf985b8a86817a599fa6e77'
360
+ ^^^^^^^^^^
361
+ spec/internal/config/initializers/devise.rb:131:3: C: Inconsistent indentation detected.
362
+ config.reconfirmable = true
363
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
364
+ spec/internal/config/initializers/devise.rb:149:3: C: Inconsistent indentation detected.
365
+ config.password_length = 8..128
366
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
367
+ spec/internal/config/initializers/devise.rb:198:3: C: Inconsistent indentation detected.
368
+ config.reset_password_within = 6.hours
369
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
370
+ spec/internal/config/initializers/devise.rb:236:3: C: Inconsistent indentation detected.
371
+ config.sign_out_via = :delete
372
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
373
+ spec/internal/config/initializers/orcid_initializer.rb:1:21: W: Unused block argument - config. You can omit the argument if you don't care about it.
374
+ Orcid.configure do |config|
375
+ ^^^^^^
376
+ spec/internal/config/initializers/orcid_initializer.rb:8:1: C: Extra blank line detected.
377
+ spec/internal/config/initializers/secret_token.rb:12:141: C: Line is too long. [177/140]
378
+ Internal::Application.config.secret_key_base = 'b36c55ad14ec419975fe7e83398b431303efacdae50928fed47e4395d80876ef2f5498fd148f03ffe31b3e6e031050eeb7a290d020d0404e364cd0f811cc5e68'
379
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
380
+ spec/internal/config/routes.rb:2:8: C: Use the new Ruby 1.9 hash syntax.
381
+ root :to => "application#index"
382
+ ^^^^^^
383
+ spec/internal/config/routes.rb:2:15: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
384
+ root :to => "application#index"
385
+ ^^^^^^^^^^^^^^^^^^^
386
+ spec/internal/config/routes.rb:3:26: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
387
+ mount Orcid::Engine => "/orcid"
388
+ ^^^^^^^^
389
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:1:1: C: Missing top-level class documentation comment.
390
+ class DeviseCreateUsers < ActiveRecord::Migration
391
+ ^^^^^
392
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:2:3: C: Method has too many lines. [15/10]
393
+ def change
394
+ ^^^
395
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:5:59: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
396
+ t.string :email, null: false, default: ""
397
+ ^^
398
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:6:59: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
399
+ t.string :encrypted_password, null: false, default: ""
400
+ ^^
401
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:9:15: C: Put one space between the method name and the first argument.
402
+ t.string :reset_password_token
403
+ ^^^
404
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:16:16: C: Put one space between the method name and the first argument.
405
+ t.integer :sign_in_count, default: 0, null: false
406
+ ^^
407
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:19:15: C: Put one space between the method name and the first argument.
408
+ t.string :current_sign_in_ip
409
+ ^^^
410
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:20:15: C: Put one space between the method name and the first argument.
411
+ t.string :last_sign_in_ip
412
+ ^^^
413
+ spec/internal/db/migrate/20140430033740_devise_create_users.rb:33:1: C: Extra blank line detected.
414
+ spec/internal/db/schema.rb:14:38: C: Separate every 3 digits in the integer portion of a number with underscores(_).
415
+ ActiveRecord::Schema.define(version: 20140430033747) do
416
+ ^^^^^^^^^^^^^^
417
+ spec/internal/db/schema.rb:16:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
418
+ create_table "devise_multi_auth_authentications", force: true do |t|
419
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
420
+ spec/internal/db/schema.rb:17:14: C: Put one space between the method name and the first argument.
421
+ t.integer "user_id", null: false
422
+ ^^
423
+ spec/internal/db/schema.rb:17:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
424
+ t.integer "user_id", null: false
425
+ ^^^^^^^^^
426
+ spec/internal/db/schema.rb:18:13: C: Put one space between the method name and the first argument.
427
+ t.string "provider", null: false
428
+ ^^^
429
+ spec/internal/db/schema.rb:18:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
430
+ t.string "provider", null: false
431
+ ^^^^^^^^^^
432
+ spec/internal/db/schema.rb:19:13: C: Put one space between the method name and the first argument.
433
+ t.string "uid", null: false
434
+ ^^^
435
+ spec/internal/db/schema.rb:19:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
436
+ t.string "uid", null: false
437
+ ^^^^^
438
+ spec/internal/db/schema.rb:20:13: C: Put one space between the method name and the first argument.
439
+ t.string "access_token"
440
+ ^^^
441
+ spec/internal/db/schema.rb:20:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
442
+ t.string "access_token"
443
+ ^^^^^^^^^^^^^^
444
+ spec/internal/db/schema.rb:21:13: C: Put one space between the method name and the first argument.
445
+ t.string "refresh_token"
446
+ ^^^
447
+ spec/internal/db/schema.rb:21:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
448
+ t.string "refresh_token"
449
+ ^^^^^^^^^^^^^^^
450
+ spec/internal/db/schema.rb:22:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
451
+ t.datetime "expires_at"
452
+ ^^^^^^^^^^^^
453
+ spec/internal/db/schema.rb:23:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
454
+ t.datetime "created_at"
455
+ ^^^^^^^^^^^^
456
+ spec/internal/db/schema.rb:24:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
457
+ t.datetime "updated_at"
458
+ ^^^^^^^^^^^^
459
+ spec/internal/db/schema.rb:27:13: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
460
+ add_index "devise_multi_auth_authentications", ["provider", "uid"], name: "index_devise_multi_auth_authentications_on_provider_and_uid", unique: true
461
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
462
+ spec/internal/db/schema.rb:27:50: C: Use %w or %W for array of words.
463
+ add_index "devise_multi_auth_authentications", ["provider", "uid"], name: "index_devise_multi_auth_authentications_on_provider_and_uid", unique: true
464
+ ^^^^^^^^^^^^^^^^^^^
465
+ spec/internal/db/schema.rb:27:51: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
466
+ add_index "devise_multi_auth_authentications", ["provider", "uid"], name: "index_devise_multi_auth_authentications_on_provider_and_uid", unique: true
467
+ ^^^^^^^^^^
468
+ spec/internal/db/schema.rb:27:63: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
469
+ add_index "devise_multi_auth_authentications", ["provider", "uid"], name: "index_devise_multi_auth_authentications_on_provider_and_uid", unique: true
470
+ ^^^^^
471
+ spec/internal/db/schema.rb:27:77: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
472
+ add_index "devise_multi_auth_authentications", ["provider", "uid"], name: "index_devise_multi_auth_authentications_on_provider_and_uid", unique: true
473
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
474
+ spec/internal/db/schema.rb:27:141: C: Line is too long. [151/140]
475
+ add_index "devise_multi_auth_authentications", ["provider", "uid"], name: "index_devise_multi_auth_authentications_on_provider_and_uid", unique: true
476
+ ^^^^^^^^^^^
477
+ spec/internal/db/schema.rb:29:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
478
+ create_table "orcid_profile_requests", force: true do |t|
479
+ ^^^^^^^^^^^^^^^^^^^^^^^^
480
+ spec/internal/db/schema.rb:30:14: C: Put one space between the method name and the first argument.
481
+ t.integer "user_id", null: false
482
+ ^^
483
+ spec/internal/db/schema.rb:30:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
484
+ t.integer "user_id", null: false
485
+ ^^^^^^^^^
486
+ spec/internal/db/schema.rb:31:13: C: Put one space between the method name and the first argument.
487
+ t.string "given_names", null: false
488
+ ^^^
489
+ spec/internal/db/schema.rb:31:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
490
+ t.string "given_names", null: false
491
+ ^^^^^^^^^^^^^
492
+ spec/internal/db/schema.rb:32:13: C: Put one space between the method name and the first argument.
493
+ t.string "family_name", null: false
494
+ ^^^
495
+ spec/internal/db/schema.rb:32:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
496
+ t.string "family_name", null: false
497
+ ^^^^^^^^^^^^^
498
+ spec/internal/db/schema.rb:33:13: C: Put one space between the method name and the first argument.
499
+ t.string "primary_email", null: false
500
+ ^^^
501
+ spec/internal/db/schema.rb:33:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
502
+ t.string "primary_email", null: false
503
+ ^^^^^^^^^^^^^^^
504
+ spec/internal/db/schema.rb:34:13: C: Put one space between the method name and the first argument.
505
+ t.string "orcid_profile_id"
506
+ ^^^
507
+ spec/internal/db/schema.rb:34:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
508
+ t.string "orcid_profile_id"
509
+ ^^^^^^^^^^^^^^^^^^
510
+ spec/internal/db/schema.rb:35:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
511
+ t.datetime "created_at"
512
+ ^^^^^^^^^^^^
513
+ spec/internal/db/schema.rb:36:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
514
+ t.datetime "updated_at"
515
+ ^^^^^^^^^^^^
516
+ spec/internal/db/schema.rb:39:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
517
+ create_table "users", force: true do |t|
518
+ ^^^^^^^
519
+ spec/internal/db/schema.rb:40:13: C: Put one space between the method name and the first argument.
520
+ t.string "email", default: "", null: false
521
+ ^^^
522
+ spec/internal/db/schema.rb:40:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
523
+ t.string "email", default: "", null: false
524
+ ^^^^^^^
525
+ spec/internal/db/schema.rb:40:51: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
526
+ t.string "email", default: "", null: false
527
+ ^^
528
+ spec/internal/db/schema.rb:41:13: C: Put one space between the method name and the first argument.
529
+ t.string "encrypted_password", default: "", null: false
530
+ ^^^
531
+ spec/internal/db/schema.rb:41:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
532
+ t.string "encrypted_password", default: "", null: false
533
+ ^^^^^^^^^^^^^^^^^^^^
534
+ spec/internal/db/schema.rb:41:51: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
535
+ t.string "encrypted_password", default: "", null: false
536
+ ^^
537
+ spec/internal/db/schema.rb:42:13: C: Put one space between the method name and the first argument.
538
+ t.string "reset_password_token"
539
+ ^^^
540
+ spec/internal/db/schema.rb:42:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
541
+ t.string "reset_password_token"
542
+ ^^^^^^^^^^^^^^^^^^^^^^
543
+ spec/internal/db/schema.rb:43:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
544
+ t.datetime "reset_password_sent_at"
545
+ ^^^^^^^^^^^^^^^^^^^^^^^^
546
+ spec/internal/db/schema.rb:44:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
547
+ t.datetime "remember_created_at"
548
+ ^^^^^^^^^^^^^^^^^^^^^
549
+ spec/internal/db/schema.rb:45:14: C: Put one space between the method name and the first argument.
550
+ t.integer "sign_in_count", default: 0, null: false
551
+ ^^
552
+ spec/internal/db/schema.rb:45:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
553
+ t.integer "sign_in_count", default: 0, null: false
554
+ ^^^^^^^^^^^^^^^
555
+ spec/internal/db/schema.rb:46:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
556
+ t.datetime "current_sign_in_at"
557
+ ^^^^^^^^^^^^^^^^^^^^
558
+ spec/internal/db/schema.rb:47:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
559
+ t.datetime "last_sign_in_at"
560
+ ^^^^^^^^^^^^^^^^^
561
+ spec/internal/db/schema.rb:48:13: C: Put one space between the method name and the first argument.
562
+ t.string "current_sign_in_ip"
563
+ ^^^
564
+ spec/internal/db/schema.rb:48:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
565
+ t.string "current_sign_in_ip"
566
+ ^^^^^^^^^^^^^^^^^^^^
567
+ spec/internal/db/schema.rb:49:13: C: Put one space between the method name and the first argument.
568
+ t.string "last_sign_in_ip"
569
+ ^^^
570
+ spec/internal/db/schema.rb:49:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
571
+ t.string "last_sign_in_ip"
572
+ ^^^^^^^^^^^^^^^^^
573
+ spec/internal/db/schema.rb:50:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
574
+ t.datetime "created_at"
575
+ ^^^^^^^^^^^^
576
+ spec/internal/db/schema.rb:51:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
577
+ t.datetime "updated_at"
578
+ ^^^^^^^^^^^^
579
+ spec/internal/db/schema.rb:54:13: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
580
+ add_index "users", ["email"], name: "index_users_on_email", unique: true
581
+ ^^^^^^^
582
+ spec/internal/db/schema.rb:54:23: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
583
+ add_index "users", ["email"], name: "index_users_on_email", unique: true
584
+ ^^^^^^^
585
+ spec/internal/db/schema.rb:54:39: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
586
+ add_index "users", ["email"], name: "index_users_on_email", unique: true
587
+ ^^^^^^^^^^^^^^^^^^^^^^
588
+ spec/internal/db/schema.rb:55:13: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
589
+ add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
590
+ ^^^^^^^
591
+ spec/internal/db/schema.rb:55:23: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
592
+ add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
593
+ ^^^^^^^^^^^^^^^^^^^^^^
594
+ spec/internal/db/schema.rb:55:54: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
595
+ add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
596
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
597
+ spec/internal/lib/generators/test_app_generator.rb:3:1: C: Missing top-level class documentation comment.
598
+ class TestAppGenerator < Rails::Generators::Base
599
+ ^^^^^
600
+ spec/internal/lib/generators/test_app_generator.rb:4:15: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
601
+ source_root "spec/test_app_templates"
602
+ ^^^^^^^^^^^^^^^^^^^^^^^^^
603
+ spec/internal/lib/generators/test_app_generator.rb:7:45: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
604
+ application_yml_file = File.expand_path("../../../../../config/application.yml", __FILE__)
605
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
606
+ spec/internal/lib/generators/test_app_generator.rb:8:53: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
607
+ application_yml_example_file = File.expand_path("../../../../../config/application.yml.example", __FILE__)
608
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
609
+ spec/internal/lib/generators/test_app_generator.rb:10:75: C: Space missing after colon.
610
+ create_link 'config/application.yml', application_yml_file, symbolic:true
611
+ ^
612
+ spec/internal/lib/generators/test_app_generator.rb:12:83: C: Space missing after colon.
613
+ create_link 'config/application.yml', application_yml_example_file, symbolic:true
614
+ ^
615
+ spec/internal/lib/generators/test_app_generator.rb:24:1: C: Extra empty line detected at body end.
616
+ spec/internal/test/test_helper.rb:1:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
617
+ ENV["RAILS_ENV"] ||= "test"
618
+ ^^^^^^^^^^^
619
+ spec/internal/test/test_helper.rb:1:22: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
620
+ ENV["RAILS_ENV"] ||= "test"
621
+ ^^^^^^
622
+ spec/internal/test/test_helper.rb:5:1: C: Missing top-level class documentation comment.
623
+ class ActiveSupport::TestCase
624
+ ^^^^^
625
+ spec/internal/test/test_helper.rb:5:7: C: Use nested module/class definitions instead of compact style.
626
+ class ActiveSupport::TestCase
627
+ ^^^^^^^^^^^^^^^^^^^^^^^
628
+ spec/lib/orcid/configuration/provider_spec.rb:4:1: C: Missing top-level module documentation comment.
629
+ module Orcid
630
+ ^^^^^^
631
+ spec/lib/orcid/configuration/provider_spec.rb:7:19: C: Avoid using {...} for multi-line blocks.
632
+ let(:storage) {
633
+ ^
634
+ spec/lib/orcid/configuration/provider_spec.rb:15:44: C: Avoid comma after the last item of a hash.
635
+ 'ORCID_APP_SECRET' => '_APP_SECRET',
636
+ ^
637
+ spec/lib/orcid/configuration_spec.rb:3:1: C: Missing top-level module documentation comment.
638
+ module Orcid
639
+ ^^^^^^
640
+ spec/lib/orcid/configuration_spec.rb:16:20: C: Avoid using {...} for multi-line blocks.
641
+ let(:legend) {
642
+ ^
643
+ spec/lib/orcid/configuration_spec.rb:19:12: C: Use the new lambda literal syntax ->(params) {...}.
644
+ [lambda{|*| 'spaghetti'}, :work_type]
645
+ ^^^^^^
646
+ spec/lib/orcid/configuration_spec.rb:19:18: C: Space missing to the left of {.
647
+ [lambda{|*| 'spaghetti'}, :work_type]
648
+ ^
649
+ spec/lib/orcid/configuration_spec.rb:19:18: C: Space between { and | missing.
650
+ [lambda{|*| 'spaghetti'}, :work_type]
651
+ ^^
652
+ spec/lib/orcid/configuration_spec.rb:19:34: C: Space missing inside }.
653
+ [lambda{|*| 'spaghetti'}, :work_type]
654
+ ^
655
+ spec/lib/orcid/configuration_spec.rb:23:58: C: Space missing inside }.
656
+ let(:article) { NonOrcid::Article.new(title: title)}
657
+ ^
658
+ spec/lib/orcid/named_callbacks_spec.rb:4:1: C: Missing top-level module documentation comment.
659
+ module Orcid
660
+ ^^^^^^
661
+ spec/lib/orcid/named_callbacks_spec.rb:7:24: C: Space inside square brackets detected.
662
+ Given(:context) { [ ] }
663
+ ^
664
+ spec/lib/orcid/named_callbacks_spec.rb:10:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
665
+ describe "with a named callback" do
666
+ ^^^^^^^^^^^^^^^^^^^^^^^
667
+ spec/lib/orcid/named_callbacks_spec.rb:12:52: C: Space missing after comma.
668
+ When { named_callback.call(callback_name, 'a',:hello) }
669
+ ^
670
+ spec/lib/orcid/named_callbacks_spec.rb:16:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
671
+ describe "with a named callback called by a string" do
672
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
673
+ spec/lib/orcid/named_callbacks_spec.rb:18:52: C: Space missing after comma.
674
+ When { named_callback.call(callback_name, 'a',:hello) }
675
+ ^
676
+ spec/lib/orcid/named_callbacks_spec.rb:22:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
677
+ describe "with a undeclared callback" do
678
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
679
+ spec/lib/orcid_spec.rb:27:13: C: Space missing to the left of {.
680
+ expect{|b| Orcid.configure(&b) }.to yield_with_args(Orcid::Configuration)
681
+ ^
682
+ spec/lib/orcid_spec.rb:27:13: C: Space between { and | missing.
683
+ expect{|b| Orcid.configure(&b) }.to yield_with_args(Orcid::Configuration)
684
+ ^^
685
+ spec/lib/orcid_spec.rb:37:48: C: Space missing after comma.
686
+ Orcid.connect_user_and_orcid_profile(user,orcid_profile_id)
687
+ ^
688
+ spec/lib/orcid_spec.rb:56:14: C: Avoid using {...} for multi-line blocks.
689
+ expect {
690
+ ^
691
+ spec/lib/orcid_spec.rb:63:27: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
692
+ let(:client) { double("Client")}
693
+ ^^^^^^^^
694
+ spec/lib/orcid_spec.rb:63:36: C: Space missing inside }.
695
+ let(:client) { double("Client")}
696
+ ^
697
+ spec/lib/orcid_spec.rb:65:30: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
698
+ let(:tokenizer) { double("Tokenizer") }
699
+ ^^^^^^^^^^^
700
+ spec/lib/orcid_spec.rb:88:1: C: Do not use block comments.
701
+ =begin
702
+ ^^^^^^
703
+ spec/models/orcid/profile_connection_spec.rb:3:1: C: Missing top-level module documentation comment.
704
+ module Orcid
705
+ ^^^^^^
706
+ spec/models/orcid/profile_connection_spec.rb:5:35: C: Space missing inside }.
707
+ let(:email) { 'test@hello.com'}
708
+ ^
709
+ spec/models/orcid/profile_connection_spec.rb:7:42: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
710
+ let(:profile_query_service) { double("Profile Lookup Service") }
711
+ ^^^^^^^^^^^^^^^^^^^^^^^^
712
+ spec/models/orcid/profile_connection_spec.rb:9:13: C: Avoid using {...} for multi-line blocks.
713
+ subject {
714
+ ^
715
+ spec/models/orcid/profile_connection_spec.rb:10:66: C: Avoid using {...} for multi-line blocks.
716
+ Orcid::ProfileConnection.new(email: email, user: user).tap { |pc|
717
+ ^
718
+ spec/models/orcid/profile_connection_spec.rb:27:71: C: Space missing inside }.
719
+ subject { Orcid::ProfileConnection.new(email: email, user: user)}
720
+ ^
721
+ spec/models/orcid/profile_connection_spec.rb:37:73: C: Space missing inside }.
722
+ subject { Orcid::ProfileConnection.new(email: email, user: user)}
723
+ ^
724
+ spec/models/orcid/profile_connection_spec.rb:44:32: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
725
+ let(:persister) { double("Persister") }
726
+ ^^^^^^^^^^^
727
+ spec/models/orcid/profile_connection_spec.rb:55:16: C: Avoid using {...} for multi-line blocks.
728
+ expect {
729
+ ^
730
+ spec/models/orcid/profile_connection_spec.rb:67:18: C: Space between { and | missing.
731
+ expect {|b| subject.with_orcid_profile_candidates(&b) }.to yield_with_args(:query_response)
732
+ ^^
733
+ spec/models/orcid/profile_connection_spec.rb:75:18: C: Space between { and | missing.
734
+ expect {|b| subject.with_orcid_profile_candidates(&b) }.to_not yield_control
735
+ ^^
736
+ spec/models/orcid/profile_request_spec.rb:3:1: C: Missing top-level module documentation comment.
737
+ module Orcid
738
+ ^^^^^^
739
+ spec/models/orcid/profile_request_spec.rb:5:51: C: Space missing inside }.
740
+ let(:orcid_profile_id) { '0000-0001-8025-637X'}
741
+ ^
742
+ spec/models/orcid/profile_request_spec.rb:7:22: C: Avoid using {...} for multi-line blocks.
743
+ let(:attributes) {
744
+ ^
745
+ spec/models/orcid/profile_request_spec.rb:42:16: C: Avoid using {...} for multi-line blocks.
746
+ expect {
747
+ ^
748
+ spec/models/orcid/profile_request_spec.rb:66:18: C: Avoid using {...} for multi-line blocks.
749
+ expect {
750
+ ^
751
+ spec/models/orcid/profile_request_spec.rb:81:18: C: Avoid using {...} for multi-line blocks.
752
+ expect {
753
+ ^
754
+ spec/models/orcid/profile_request_spec.rb:97:56: C: Place the . on the next line, together with the method name.
755
+ validator.should_receive(:call).with(subject).
756
+ ^
757
+ spec/models/orcid/profile_request_spec.rb:99:77: C: Place the . on the next line, together with the method name.
758
+ payload_xml_builder.should_receive(:call).with(subject.attributes).
759
+ ^
760
+ spec/models/orcid/profile_request_spec.rb:101:75: C: Place the . on the next line, together with the method name.
761
+ profile_creation_service.should_receive(:call).with(xml_payload).
762
+ ^
763
+ spec/models/orcid/profile_request_spec.rb:116:56: C: Place the . on the next line, together with the method name.
764
+ validator.should_receive(:call).with(subject).
765
+ ^
766
+ spec/models/orcid/profile_spec.rb:3:1: C: Missing top-level module documentation comment.
767
+ module Orcid
768
+ ^^^^^^
769
+ spec/models/orcid/profile_spec.rb:7:27: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
770
+ let(:mapper) { double("Mapper") }
771
+ ^^^^^^^^
772
+ spec/models/orcid/profile_spec.rb:8:35: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
773
+ let(:non_orcid_work) { double("A non-ORCID Work") }
774
+ ^^^^^^^^^^^^^^^^^^
775
+ spec/models/orcid/profile_spec.rb:9:31: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
776
+ let(:orcid_work) { double("Orcid::Work") }
777
+ ^^^^^^^^^^^^^
778
+ spec/models/orcid/profile_spec.rb:10:33: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
779
+ let(:xml_renderer) { double("Renderer") }
780
+ ^^^^^^^^^^
781
+ spec/models/orcid/profile_spec.rb:11:31: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
782
+ let(:xml_parser) { double("Parser") }
783
+ ^^^^^^^^
784
+ spec/models/orcid/profile_spec.rb:12:24: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
785
+ let(:xml) { double("XML Payload")}
786
+ ^^^^^^^^^^^^^
787
+ spec/models/orcid/profile_spec.rb:12:38: C: Space missing inside }.
788
+ let(:xml) { double("XML Payload")}
789
+ ^
790
+ spec/models/orcid/profile_spec.rb:14:13: C: Avoid using {...} for multi-line blocks.
791
+ subject {
792
+ ^
793
+ spec/models/orcid/profile_spec.rb:29:36: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
794
+ let(:parsed_object) { double("Parsed Object")}
795
+ ^^^^^^^^^^^^^^^
796
+ spec/models/orcid/profile_spec.rb:29:52: C: Space missing inside }.
797
+ let(:parsed_object) { double("Parsed Object")}
798
+ ^
799
+ spec/models/orcid/profile_spec.rb:30:36: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
800
+ let(:response_body) { double("XML Response") }
801
+ ^^^^^^^^^^^^^^
802
+ spec/models/orcid/profile_spec.rb:39:1: C: Extra blank line detected.
803
+ spec/models/orcid/profile_spec.rb:70:60: C: Do not use parentheses for method calls with no arguments.
804
+ Orcid.stub(:access_token_for).and_return(Object.new())
805
+ ^
806
+ spec/models/orcid/work/xml_parser_spec.rb:3:1: C: Missing top-level module documentation comment.
807
+ module Orcid
808
+ ^^^^^^
809
+ spec/models/orcid/work/xml_parser_spec.rb:16:33: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
810
+ its(:title) { should eq "Another Test Drive" }
811
+ ^^^^^^^^^^^^^^^^^^^^
812
+ spec/models/orcid/work/xml_parser_spec.rb:17:36: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
813
+ its(:put_code) { should eq "303475" }
814
+ ^^^^^^^^
815
+ spec/models/orcid/work/xml_parser_spec.rb:18:37: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
816
+ its(:work_type) { should eq "test" }
817
+ ^^^^^^
818
+ spec/models/orcid/work/xml_parser_spec.rb:33:33: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
819
+ its(:title) { should eq "Test Driven Orcid Integration" }
820
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
821
+ spec/models/orcid/work/xml_parser_spec.rb:34:36: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
822
+ its(:put_code) { should eq "303474" }
823
+ ^^^^^^^^
824
+ spec/models/orcid/work/xml_parser_spec.rb:35:37: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
825
+ its(:work_type) { should eq "test" }
826
+ ^^^^^^
827
+ spec/models/orcid/work/xml_parser_spec.rb:39:1: C: Extra empty line detected at body end.
828
+ spec/models/orcid/work/xml_renderer_spec.rb:3:1: C: Missing top-level module documentation comment.
829
+ module Orcid
830
+ ^^^^^^
831
+ spec/models/orcid/work_spec.rb:3:1: C: Missing top-level module documentation comment.
832
+ module Orcid
833
+ ^^^^^^
834
+ spec/models/orcid/work_spec.rb:5:22: C: Avoid using {...} for multi-line blocks.
835
+ let(:attributes) {
836
+ ^
837
+ spec/models/orcid/work_spec.rb:10:32: C: Space inside square brackets detected.
838
+ external_identifiers: [ {type: 'doi', identifier: 'abc-123' }]
839
+ ^
840
+ spec/models/orcid/work_spec.rb:10:33: C: Space inside { missing.
841
+ external_identifiers: [ {type: 'doi', identifier: 'abc-123' }]
842
+ ^
843
+ spec/models/orcid/work_spec.rb:25:46: C: Space missing inside }.
844
+ its(:id) { should eq subject.put_code}
845
+ ^
846
+ spec/models/orcid/work_spec.rb:29:64: C: Space missing inside }.
847
+ its(:id) { should eq [subject.title, subject.work_type]}
848
+ ^
849
+ spec/models/orcid/work_spec.rb:52:1: C: Extra empty line detected at body end.
850
+ spec/services/orcid/remote/profile_creation_service_spec.rb:4:1: C: Missing top-level module documentation comment.
851
+ module Orcid::Remote
852
+ ^^^^^^
853
+ spec/services/orcid/remote/profile_creation_service_spec.rb:4:8: C: Use nested module/class definitions instead of compact style.
854
+ module Orcid::Remote
855
+ ^^^^^^^^^^^^^
856
+ spec/services/orcid/remote/profile_creation_service_spec.rb:7:22: C: Space inside { missing.
857
+ Given(:config) { {token: token, headers: request_headers, path: 'path/to/somewhere' } }
858
+ ^
859
+ spec/services/orcid/remote/profile_creation_service_spec.rb:8:28: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
860
+ Given(:token) { double("Token", post: response) }
861
+ ^^^^^^^
862
+ spec/services/orcid/remote/profile_creation_service_spec.rb:10:29: C: Avoid using {...} for multi-line blocks.
863
+ Given(:request_headers) {
864
+ ^
865
+ spec/services/orcid/remote/profile_creation_service_spec.rb:16:22: C: Avoid using {...} for multi-line blocks.
866
+ Given(:response) {
867
+ ^
868
+ spec/services/orcid/remote/profile_creation_service_spec.rb:17:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
869
+ double("Response", headers: { location: File.join("/", minted_orcid, "orcid-profile") })
870
+ ^^^^^^^^^^
871
+ spec/services/orcid/remote/profile_creation_service_spec.rb:17:57: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
872
+ double("Response", headers: { location: File.join("/", minted_orcid, "orcid-profile") })
873
+ ^^^
874
+ spec/services/orcid/remote/profile_creation_service_spec.rb:17:76: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
875
+ double("Response", headers: { location: File.join("/", minted_orcid, "orcid-profile") })
876
+ ^^^^^^^^^^^^^^^
877
+ spec/services/orcid/remote/profile_creation_service_spec.rb:23:24: C: Avoid using {...} for multi-line blocks.
878
+ Given(:response) {
879
+ ^
880
+ spec/services/orcid/remote/profile_creation_service_spec.rb:24:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
881
+ double("Response", headers: { location: File.join("/", minted_orcid, "orcid-profile") })
882
+ ^^^^^^^^^^
883
+ spec/services/orcid/remote/profile_creation_service_spec.rb:24:59: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
884
+ double("Response", headers: { location: File.join("/", minted_orcid, "orcid-profile") })
885
+ ^^^
886
+ spec/services/orcid/remote/profile_creation_service_spec.rb:24:78: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
887
+ double("Response", headers: { location: File.join("/", minted_orcid, "orcid-profile") })
888
+ ^^^^^^^^^^^^^^^
889
+ spec/services/orcid/remote/profile_creation_service_spec.rb:26:52: C: Space missing inside }.
890
+ Then { returned_value.should eq(minted_orcid)}
891
+ ^
892
+ spec/services/orcid/remote/profile_creation_service_spec.rb:28:113: C: Space missing inside }.
893
+ And { token.should have_received(:post).with(config.fetch(:path), body: payload, headers: request_headers)}
894
+ ^
895
+ spec/services/orcid/remote/profile_creation_service_spec.rb:32:24: C: Avoid using {...} for multi-line blocks.
896
+ Given(:response) {
897
+ ^
898
+ spec/services/orcid/remote/profile_creation_service_spec.rb:33:16: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
899
+ double("Response", headers: { location: "" })
900
+ ^^^^^^^^^^
901
+ spec/services/orcid/remote/profile_creation_service_spec.rb:33:49: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
902
+ double("Response", headers: { location: "" })
903
+ ^^
904
+ spec/services/orcid/remote/profile_creation_service_spec.rb:35:45: C: Space missing inside }.
905
+ Then { returned_value.should eq(false)}
906
+ ^
907
+ spec/services/orcid/remote/profile_creation_service_spec.rb:37:113: C: Space missing inside }.
908
+ And { token.should have_received(:post).with(config.fetch(:path), body: payload, headers: request_headers)}
909
+ ^
910
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:4:1: C: Missing top-level module documentation comment.
911
+ module Orcid::Remote
912
+ ^^^^^^
913
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:4:8: C: Use nested module/class definitions instead of compact style.
914
+ module Orcid::Remote
915
+ ^^^^^^^^^^^^^
916
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:5:1: C: Extra empty line detected at body beginning.
917
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:9:21: C: Avoid using {...} for multi-line blocks.
918
+ Given(:input) {
919
+ ^
920
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:10:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
921
+ { text: "Hello", email: 'jeremy.n.friesen@gmail.com' }
922
+ ^^^^^^^
923
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:16:21: C: Avoid using {...} for multi-line blocks.
924
+ Given(:input) {
925
+ ^
926
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:17:17: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
927
+ { text: "" , email: nil}
928
+ ^^
929
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:17:32: C: Space inside } missing.
930
+ { text: "" , email: nil}
931
+ ^
932
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:19:40: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
933
+ Then { expect(response).to eq(q: "") }
934
+ ^^
935
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:23:21: C: Avoid using {...} for multi-line blocks.
936
+ Given(:input) {
937
+ ^
938
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:30:21: C: Avoid using {...} for multi-line blocks.
939
+ Given(:input) {
940
+ ^
941
+ spec/services/orcid/remote/profile_query_service/query_parameter_builder_spec.rb:37:21: C: Avoid using {...} for multi-line blocks.
942
+ Given(:input) {
943
+ ^
944
+ spec/services/orcid/remote/profile_query_service/search_response_spec.rb:4:1: C: Missing top-level module documentation comment.
945
+ module Orcid::Remote
946
+ ^^^^^^
947
+ spec/services/orcid/remote/profile_query_service/search_response_spec.rb:4:8: C: Use nested module/class definitions instead of compact style.
948
+ module Orcid::Remote
949
+ ^^^^^^^^^^^^^
950
+ spec/services/orcid/remote/profile_query_service/search_response_spec.rb:6:26: C: Space inside { missing.
951
+ Given(:attributes) { {id: 'Hello', label: 'World', junk: 'JUNK!', biography: "Extended Biography"} }
952
+ ^
953
+ spec/services/orcid/remote/profile_query_service/search_response_spec.rb:6:82: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
954
+ Given(:attributes) { {id: 'Hello', label: 'World', junk: 'JUNK!', biography: "Extended Biography"} }
955
+ ^^^^^^^^^^^^^^^^^^^^
956
+ spec/services/orcid/remote/profile_query_service/search_response_spec.rb:6:102: C: Space inside } missing.
957
+ Given(:attributes) { {id: 'Hello', label: 'World', junk: 'JUNK!', biography: "Extended Biography"} }
958
+ ^
959
+ spec/services/orcid/remote/profile_query_service/search_response_spec.rb:12:17: C: Space missing to the left of {.
960
+ And { expect{search_response.junk }.to raise_error }
961
+ ^
962
+ spec/services/orcid/remote/profile_query_service/search_response_spec.rb:12:18: C: Space missing inside {.
963
+ And { expect{search_response.junk }.to raise_error }
964
+ ^
965
+ spec/services/orcid/remote/profile_query_service_spec.rb:5:1: C: Missing top-level module documentation comment.
966
+ module Orcid::Remote
967
+ ^^^^^^
968
+ spec/services/orcid/remote/profile_query_service_spec.rb:5:8: C: Use nested module/class definitions instead of compact style.
969
+ module Orcid::Remote
970
+ ^^^^^^^^^^^^^
971
+ spec/services/orcid/remote/profile_query_service_spec.rb:10:20: C: Avoid using {...} for multi-line blocks.
972
+ Given(:config) {
973
+ ^
974
+ spec/services/orcid/remote/profile_query_service_spec.rb:19:62: C: Space missing inside }.
975
+ Given(:query_parameter_builder) { double('Query Builder')}
976
+ ^
977
+ spec/services/orcid/remote/profile_query_service_spec.rb:20:31: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
978
+ Given(:response) { double("Response", body: response_body)} # See below
979
+ ^^^^^^^^^^
980
+ spec/services/orcid/remote/profile_query_service_spec.rb:20:63: C: Space missing inside }.
981
+ Given(:response) { double("Response", body: response_body)} # See below
982
+ ^
983
+ spec/services/orcid/remote/profile_query_service_spec.rb:21:28: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
984
+ Given(:token) { double("Token") }
985
+ ^^^^^^^
986
+ spec/services/orcid/remote/profile_query_service_spec.rb:22:27: C: Avoid using {...} for multi-line blocks.
987
+ Given(:json_response) {
988
+ ^
989
+ spec/services/orcid/remote/profile_query_service_spec.rb:24:24: C: Redundant curly braces around a hash parameter.
990
+ OpenStruct.new({ 'id' => orcid_profile_id, 'label' => "Corwin Amber (#{email}) [ORCID: #{orcid_profile_id}]", 'biography' => biography })
991
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
992
+ spec/services/orcid/remote/profile_query_service_spec.rb:24:141: C: Line is too long. [145/140]
993
+ OpenStruct.new({ 'id' => orcid_profile_id, 'label' => "Corwin Amber (#{email}) [ORCID: #{orcid_profile_id}]", 'biography' => biography })
994
+ ^^^^^
995
+ spec/services/orcid/remote/profile_query_service_spec.rb:27:33: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
996
+ Given(:parameters) { double("Parameters") }
997
+ ^^^^^^^^^^^^
998
+ spec/services/orcid/remote/profile_query_service_spec.rb:28:44: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
999
+ Given(:normalized_parameters) { double("Normalized Parameters") }
1000
+ ^^^^^^^^^^^^^^^^^^^^^^^
1001
+ spec/services/orcid/remote/profile_query_service_spec.rb:42:27: C: Avoid using {...} for multi-line blocks.
1002
+ Given(:response_body) {
1003
+ ^
1004
+ spec/services/orcid/remote/service_spec.rb:4:1: C: Missing top-level module documentation comment.
1005
+ module Orcid::Remote
1006
+ ^^^^^^
1007
+ spec/services/orcid/remote/service_spec.rb:4:8: C: Use nested module/class definitions instead of compact style.
1008
+ module Orcid::Remote
1009
+ ^^^^^^^^^^^^^
1010
+ spec/services/orcid/remote/service_spec.rb:7:20: C: Avoid using {...} for multi-line blocks.
1011
+ Given(:runner) {
1012
+ ^
1013
+ spec/services/orcid/remote/service_spec.rb:8:27: C: Avoid using {...} for multi-line blocks.
1014
+ described_class.new { |on|
1015
+ ^
1016
+ spec/services/orcid/remote/service_spec.rb:9:18: C: Space between { and | missing.
1017
+ on.found {|a,b| context.invoked("FOUND", a,b) }
1018
+ ^^
1019
+ spec/services/orcid/remote/service_spec.rb:9:21: C: Space missing after comma.
1020
+ on.found {|a,b| context.invoked("FOUND", a,b) }
1021
+ ^
1022
+ spec/services/orcid/remote/service_spec.rb:9:41: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1023
+ on.found {|a,b| context.invoked("FOUND", a,b) }
1024
+ ^^^^^^^
1025
+ spec/services/orcid/remote/service_spec.rb:9:51: C: Space missing after comma.
1026
+ on.found {|a,b| context.invoked("FOUND", a,b) }
1027
+ ^
1028
+ spec/services/orcid/remote/service_spec.rb:13:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1029
+ describe "calling defined callback" do
1030
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
1031
+ spec/services/orcid/remote/service_spec.rb:15:58: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1032
+ Then { context.should have_received(:invoked).with("FOUND", :first, :second) }
1033
+ ^^^^^^^
1034
+ spec/services/orcid/remote/service_spec.rb:19:14: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1035
+ describe "calling undefined callback" do
1036
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1037
+ spec/services/orcid/remote/work_service_spec.rb:5:1: C: Missing top-level module documentation comment.
1038
+ module Orcid::Remote
1039
+ ^^^^^^
1040
+ spec/services/orcid/remote/work_service_spec.rb:5:8: C: Use nested module/class definitions instead of compact style.
1041
+ module Orcid::Remote
1042
+ ^^^^^^^^^^^^^
1043
+ spec/services/orcid/remote/work_service_spec.rb:8:26: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1044
+ let(:token) { double("Token") }
1045
+ ^^^^^^^
1046
+ spec/services/orcid/remote/work_service_spec.rb:11:29: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1047
+ let(:response) { double("Response", body: 'Body') }
1048
+ ^^^^^^^^^^
1049
+ spec/services/orcid/remote/work_service_spec.rb:14:107: C: Space missing inside }.
1050
+ let(:token) { double('Token', client: client, token: 'access_token', refresh_token: 'refresh_token')}
1051
+ ^
1052
+ spec/services/orcid/remote/work_service_spec.rb:15:75: C: Space missing inside }.
1053
+ let(:client) { double('Client', id: '123', site: 'URL', options: {})}
1054
+ ^
1055
+ spec/services/orcid/remote/work_service_spec.rb:17:27: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1056
+ response = double("Response", status: '100', body: 'body')
1057
+ ^^^^^^^^^^
1058
+ spec/services/orcid/remote/work_service_spec.rb:22:16: C: Avoid using {...} for multi-line blocks.
1059
+ expect {
1060
+ ^
1061
+ spec/services/orcid/remote/work_service_spec.rb:27:39: C: Place the . on the next line, together with the method name.
1062
+ token.should_receive(:request).
1063
+ ^
1064
+ spec/services/orcid/remote/work_service_spec.rb:28:104: C: Place the . on the next line, together with the method name.
1065
+ with(:post, "v1.1/#{orcid_profile_id}/orcid-works/", body: payload, headers: request_headers).
1066
+ ^
1067
+ spec/spec_helper.rb:5:5: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1068
+ ENV["RAILS_ENV"] ||= 'test'
1069
+ ^^^^^^^^^^^
1070
+ spec/spec_helper.rb:9:26: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1071
+ SimpleCov.command_name "spec"
1072
+ ^^^^^^
1073
+ spec/spec_helper.rb:12:1: C: Extra blank line detected.
1074
+ spec/spec_helper.rb:16:26: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1075
+ require File.expand_path("../internal/config/environment.rb", __FILE__)
1076
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1077
+ spec/spec_helper.rb:33:22: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1078
+ Dir[File.expand_path("../support/**/*.rb",__FILE__)].each {|f| require f}
1079
+ ^^^^^^^^^^^^^^^^^^^^
1080
+ spec/spec_helper.rb:33:42: C: Space missing after comma.
1081
+ Dir[File.expand_path("../support/**/*.rb",__FILE__)].each {|f| require f}
1082
+ ^
1083
+ spec/spec_helper.rb:33:59: C: Space between { and | missing.
1084
+ Dir[File.expand_path("../support/**/*.rb",__FILE__)].each {|f| require f}
1085
+ ^^
1086
+ spec/spec_helper.rb:33:73: C: Space missing inside }.
1087
+ Dir[File.expand_path("../support/**/*.rb",__FILE__)].each {|f| require f}
1088
+ ^
1089
+ spec/spec_helper.rb:34:22: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1090
+ Dir[File.expand_path("../factories/**/*.rb",__FILE__)].each {|f| require f}
1091
+ ^^^^^^^^^^^^^^^^^^^^^^
1092
+ spec/spec_helper.rb:34:44: C: Space missing after comma.
1093
+ Dir[File.expand_path("../factories/**/*.rb",__FILE__)].each {|f| require f}
1094
+ ^
1095
+ spec/spec_helper.rb:34:61: C: Space between { and | missing.
1096
+ Dir[File.expand_path("../factories/**/*.rb",__FILE__)].each {|f| require f}
1097
+ ^^
1098
+ spec/spec_helper.rb:34:75: C: Space missing inside }.
1099
+ Dir[File.expand_path("../factories/**/*.rb",__FILE__)].each {|f| require f}
1100
+ ^
1101
+ spec/spec_helper.rb:40:49: C: Place the . on the next line, together with the method name.
1102
+ request.env['warden'].stub(:authenticate!).
1103
+ ^
1104
+ spec/spec_helper.rb:41:28: C: Redundant curly braces around a hash parameter.
1105
+ and_throw(:warden, {:scope => :user})
1106
+ ^^^^^^^^^^^^^^^^^
1107
+ spec/spec_helper.rb:41:28: C: Space inside { missing.
1108
+ and_throw(:warden, {:scope => :user})
1109
+ ^
1110
+ spec/spec_helper.rb:41:29: C: Use the new Ruby 1.9 hash syntax.
1111
+ and_throw(:warden, {:scope => :user})
1112
+ ^^^^^^^^^
1113
+ spec/spec_helper.rb:41:44: C: Space inside } missing.
1114
+ and_throw(:warden, {:scope => :user})
1115
+ ^
1116
+ spec/spec_helper.rb:42:23: C: Use the new Ruby 1.9 hash syntax.
1117
+ controller.stub :current_user => nil
1118
+ ^^^^^^^^^^^^^^^^
1119
+ spec/spec_helper.rb:45:23: C: Use the new Ruby 1.9 hash syntax.
1120
+ controller.stub :current_user => user
1121
+ ^^^^^^^^^^^^^^^^
1122
+ spec/spec_helper.rb:56:1: C: Extra empty line detected at body end.
1123
+ spec/spec_helper.rb:59:1: C: Missing top-level module documentation comment.
1124
+ module FixtureFiles
1125
+ ^^^^^^
1126
+ spec/spec_helper.rb:61:45: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1127
+ Pathname.new(File.expand_path(File.join("../fixtures", path), __FILE__))
1128
+ ^^^^^^^^^^^^^
1129
+ spec/spec_helper.rb:87:18: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1130
+ config.order = "random"
1131
+ ^^^^^^^^
1132
+ spec/support/non_orcid_models.rb:2:3: C: Missing top-level class documentation comment.
1133
+ class Article
1134
+ ^^^^^
1135
+ spec/support/non_orcid_models.rb:11:4: C: Final newline missing.
1136
+ end
1137
+
1138
+ spec/support/stub_callback.rb:1:1: C: Missing top-level class documentation comment.
1139
+ class StubCallback
1140
+ ^^^^^
1141
+ spec/support/stub_callback.rb:6:16: W: Unused method argument - args. If it's necessary, use _ or _args as an argument name to indicate that it won't be used. You can also write as invoked(*) if you want the method to accept any arguments but don't care about them.
1142
+ def invoked(*args)
1143
+ ^^^^
1144
+ spec/test_app_templates/lib/generators/test_app_generator.rb:3:1: C: Missing top-level class documentation comment.
1145
+ class TestAppGenerator < Rails::Generators::Base
1146
+ ^^^^^
1147
+ spec/test_app_templates/lib/generators/test_app_generator.rb:4:15: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1148
+ source_root "spec/test_app_templates"
1149
+ ^^^^^^^^^^^^^^^^^^^^^^^^^
1150
+ spec/test_app_templates/lib/generators/test_app_generator.rb:7:45: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1151
+ application_yml_file = File.expand_path("../../../../../config/application.yml", __FILE__)
1152
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1153
+ spec/test_app_templates/lib/generators/test_app_generator.rb:8:53: C: Prefer single-quoted strings when you don't need string interpolation or special symbols.
1154
+ application_yml_example_file = File.expand_path("../../../../../config/application.yml.example", __FILE__)
1155
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1156
+ spec/test_app_templates/lib/generators/test_app_generator.rb:10:75: C: Space missing after colon.
1157
+ create_link 'config/application.yml', application_yml_file, symbolic:true
1158
+ ^
1159
+ spec/test_app_templates/lib/generators/test_app_generator.rb:12:83: C: Space missing after colon.
1160
+ create_link 'config/application.yml', application_yml_example_file, symbolic:true
1161
+ ^
1162
+ spec/test_app_templates/lib/generators/test_app_generator.rb:24:1: C: Extra empty line detected at body end.
1163
+
1164
+ 93 files inspected, 399 offenses detected