ndr_dev_support 3.0.0 → 3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: dbcfdf282fc498259213e7c7961b199abf2fab0b20ffd2b3e7ef38d8222722d6
4
- data.tar.gz: 3403335c3c26478a99ff0b2de557d0d4c7899d8325073073d12a84d78e36211d
2
+ SHA1:
3
+ metadata.gz: 1f9fa648db8ffa98eb6e5505ed89da5266ae1d19
4
+ data.tar.gz: b2a540c25a23505528540b6addd26cc6bfab2fb5
5
5
  SHA512:
6
- metadata.gz: '02974ba29c5f09941a52fb3fcc7af3aeb01a9edb9d80608ac500959dd19fb39290b35e5b33c55e55f833f552f0313a86c0ca370d333531b6e182f5db4ec8a2a3'
7
- data.tar.gz: ec95966fbb3dcf4826e54e1eb1c14b981541243d49daf1c83662e2b109f4b36a9973a5320f9b6615e6fe13de53c8d817966d596bc834914a66af10c270032aca
6
+ metadata.gz: 80c793fbaa8c72db13f34b53db7b200a6745c8854f0afc5f25097223d32df3225cfff20b781c16a197662c5905566183f07e5cae04e06921673f24542318e968
7
+ data.tar.gz: b3b6535d2e6e235ad9e4c3c80be4944fd1443f6998ffd79526f216ddad819311d4cb1f50f90484ff9285e6a1a86ad54cd03e6becc16308c12a740bd27a8bdea1
data/.rubocop.yml CHANGED
@@ -114,6 +114,10 @@ Rails/ActionFilter:
114
114
  # projects will want to override this configuration to use 'filter' instead.
115
115
  EnforcedStyle: action
116
116
 
117
+ Rails/DynamicFindBy:
118
+ Exclude:
119
+ - 'test/integration/**/*.rb'
120
+
117
121
  Rails/SkipsModelValidations:
118
122
  # Methods like 'update_column' exist for a reason, and it is the developer's
119
123
  # responsibilty to understand the behaviour of the code they write; blanket
data/bin/console CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'bundler/setup'
4
- require 'tnql'
4
+ require 'ndr_dev_support'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
data/code_safety.yml CHANGED
@@ -10,12 +10,12 @@ file safety:
10
10
  safe_revision: c03d4ff0dd037a2798563d464d0daeca1189debe
11
11
  ".rubocop.yml":
12
12
  comments:
13
- reviewed_by: timgentry
14
- safe_revision: 3a4fc58f43e28c32e4fea25fa56a1eaf4a887d84
13
+ reviewed_by: josh.pencheon
14
+ safe_revision: 949a0ff086946426531a34d48f646b32c761c272
15
15
  ".travis.yml":
16
16
  comments:
17
17
  reviewed_by: josh.pencheon
18
- safe_revision: 35fa869f068ca3250fee611147e49f40f0147d92
18
+ safe_revision: 8faa3e5e7ba5ef29daa1a857c8c15702f57c5a3f
19
19
  CODE_OF_CONDUCT.md:
20
20
  comments:
21
21
  reviewed_by: timgentry
@@ -38,8 +38,8 @@ file safety:
38
38
  safe_revision: a601dbd139132f50eb22b1c88d5eda14a465a7c2
39
39
  bin/console:
40
40
  comments:
41
- reviewed_by: timgentry
42
- safe_revision: c59a45986f8b6d087c8c21b1e889f31f7346da17
41
+ reviewed_by: josh.pencheon
42
+ safe_revision: 3377bef3131bbe58acaa82083fcb27c9c6d1e2b0
43
43
  bin/setup:
44
44
  comments:
45
45
  reviewed_by: timgentry
@@ -83,7 +83,7 @@ file safety:
83
83
  lib/ndr_dev_support/integration_testing/dsl.rb:
84
84
  comments:
85
85
  reviewed_by: josh.pencheon
86
- safe_revision: 12d9c51ec2bc946ee02eee63700e905b8c0c01c1
86
+ safe_revision: dfe1e6bf5e6c014d6a1a5f9c7e3268900910b00e
87
87
  lib/ndr_dev_support/rake_ci/brakeman_helper.rb:
88
88
  comments:
89
89
  reviewed_by: josh.pencheon
@@ -119,16 +119,16 @@ file safety:
119
119
  lib/ndr_dev_support/tasks.rb:
120
120
  comments:
121
121
  reviewed_by: josh.pencheon
122
- safe_revision: 6240a84dc859af0623328f8667b93299c8eae257
122
+ safe_revision: 4dc952cb99ec6f4e416a5b668ceca7e8d7604eef
123
123
  lib/ndr_dev_support/version.rb:
124
124
  comments:
125
125
  reviewed_by: josh.pencheon
126
- safe_revision: b725560e101395a6dd1a9ece106462edb6ebcc74
126
+ safe_revision: d96ee996d3b7fcd7ccf3450355ffe4c32253b3a5
127
127
  lib/tasks/audit_code.rake:
128
128
  comments: Identical to the version reviewed by josh.pencheon when contained within
129
129
  ndr_support
130
130
  reviewed_by: josh.pencheon
131
- safe_revision: 73030d56a06d05ae2d8716713b01647d76b7d904
131
+ safe_revision: 810858eb1acb297625708de6ddf8179c528c48f4
132
132
  lib/tasks/ci/brakeman.rake:
133
133
  comments:
134
134
  reviewed_by: josh.pencheon
@@ -141,6 +141,10 @@ file safety:
141
141
  comments:
142
142
  reviewed_by: timgentry
143
143
  safe_revision: cf22c7ab8b2eb67b501b5ebd1309c832db4fdf6c
144
+ lib/tasks/ci/dependencies.rake:
145
+ comments:
146
+ reviewed_by: josh.pencheon
147
+ safe_revision: 4dc952cb99ec6f4e416a5b668ceca7e8d7604eef
144
148
  lib/tasks/ci/housekeep.rake:
145
149
  comments:
146
150
  reviewed_by: timgentry
@@ -184,12 +188,16 @@ file safety:
184
188
  ndr_dev_support.gemspec:
185
189
  comments:
186
190
  reviewed_by: josh.pencheon
187
- safe_revision: e0b3871607c649565330d6e62740ffd860930338
191
+ safe_revision: 8faa3e5e7ba5ef29daa1a857c8c15702f57c5a3f
192
+ test/daemon/ci_server_test.rb:
193
+ comments:
194
+ reviewed_by: josh.pencheon
195
+ safe_revision: cdd176f2e90284e11899c5c6eea1032f9b785b74
188
196
  test/ndr_dev_support_test.rb:
189
197
  comments:
190
198
  reviewed_by: timgentry
191
199
  safe_revision: 26a8907a7a8a6b0d836aa12ca0335fa40be12240
192
200
  test/test_helper.rb:
193
201
  comments:
194
- reviewed_by: timgentry
195
- safe_revision: c59a45986f8b6d087c8c21b1e889f31f7346da17
202
+ reviewed_by: josh.pencheon
203
+ safe_revision: cdd176f2e90284e11899c5c6eea1032f9b785b74
@@ -29,6 +29,21 @@ module NdrDevSupport
29
29
  assert(remain ? has_selector?(selector) : has_no_selector?(selector), message)
30
30
  end
31
31
 
32
+ def find_new(*args, **options)
33
+ # There is no point waiting to see there are no existing matches:
34
+ pre_options = { wait: 0 }.merge(options)
35
+ prior_matches = find_all(*args, **pre_options)
36
+
37
+ yield
38
+
39
+ # We expect exactly one new match as a result of the interaction:
40
+ post_options = { count: prior_matches.length + 1 }
41
+ current_matches = find_all(*args, **post_options)
42
+
43
+ additional_matches = current_matches.to_a - prior_matches.to_a
44
+ additional_matches.first
45
+ end
46
+
32
47
  # Adds variant of Capybara's #within_window method, that doesn't return
33
48
  # to the preview window on an exception. This allows us to screenshot
34
49
  # a popup automatically if a test errors/fails whilst it has focus.
@@ -2,6 +2,7 @@ load 'tasks/audit_code.rake'
2
2
  load 'tasks/ci/brakeman.rake'
3
3
  load 'tasks/ci/bundle_audit.rake'
4
4
  load 'tasks/ci/bundle_install.rake'
5
+ load 'tasks/ci/dependencies.rake'
5
6
  load 'tasks/ci/housekeep.rake'
6
7
  load 'tasks/ci/linguist.rake'
7
8
  load 'tasks/ci/notes.rake'
@@ -2,5 +2,5 @@
2
2
  # This defines the NdrDevSupport version. If you change it, rebuild and commit the gem.
3
3
  # Use "rake build" to build the gem, see rake -T for all bundler rake tasks (and our own).
4
4
  module NdrDevSupport
5
- VERSION = '3.0.0'.freeze
5
+ VERSION = '3.1.0'.freeze
6
6
  end
@@ -365,7 +365,7 @@ def print_repo_file_diffs(repolatest, repo, fname, usr, safe_revision, interacti
365
365
  if usr.to_s.strip.empty?
366
366
  usr = ask('File reviewed by:') do |q|
367
367
  q.whitespace = :strip_and_collapse
368
- q.validate = /\A[\w \-]+\Z/
368
+ q.validate = /\A[\w \-.]+\Z/
369
369
  end
370
370
  end
371
371
  comment = ask('Please write your comments (optional):')
@@ -0,0 +1,61 @@
1
+ namespace :ci do
2
+ namespace :dependencies do
3
+ desc 'setup'
4
+ task :setup do
5
+ ENV['PROJECT_NAME'] = gem_name || ask('Project Name: ')
6
+ end
7
+
8
+ desc 'process'
9
+ task process: :setup do
10
+ # Usage: bundle exec rake ci:dependencies:process
11
+ arr = [
12
+ ENV['PROJECT_NAME'],
13
+ RUBY_VERSION,
14
+ gem_requirement('rails'),
15
+ gem_requirement('activemodel-caution'),
16
+ gem_requirement('ndr_dev_support'),
17
+ gem_requirement('ndr_error'),
18
+ gem_requirement('ndr_import'),
19
+ gem_requirement('ndr_support'),
20
+ gem_requirement('ndr_ui'),
21
+ gem_requirement('ndr_workflow'),
22
+ jquery_version,
23
+ bootstrap_version
24
+ ]
25
+ puts "| #{arr.join(' | ')} |"
26
+ end
27
+
28
+ def current_dependencies
29
+ @current_dependencies ||= Bundler.environment.current_dependencies
30
+ end
31
+
32
+ # There is probably a simpler way of getting this information
33
+ def gem_name
34
+ self_dependency = current_dependencies.detect do |dep|
35
+ dep.source && dep.source.path.to_s == '.'
36
+ end
37
+ self_dependency && self_dependency.name
38
+ end
39
+
40
+ def gem_requirement(name)
41
+ dependency = current_dependencies.detect { |dep| dep.name == name }
42
+
43
+ return '-' if dependency.nil? || (dependency.source && dependency.source.path.to_s == '.')
44
+ return "@#{dependency.source.ref}@" if dependency.source
45
+ dependency.requirement.to_s
46
+ end
47
+
48
+ def jquery_version
49
+ Jquery::Rails::JQUERY_VERSION
50
+ rescue NameError
51
+ '-'
52
+ end
53
+
54
+ def bootstrap_version
55
+ require 'bootstrap-sass'
56
+ Bootstrap::VERSION
57
+ rescue LoadError
58
+ '-'
59
+ end
60
+ end
61
+ end
@@ -13,6 +13,8 @@ Gem::Specification.new do |spec|
13
13
  spec.license = 'MIT'
14
14
 
15
15
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
+ # SECURE BNS 2018-08-06: Minimise sharing of (public-key encrypted) slack secrets in .travis.yml
17
+ spec.files -= %w[.travis.yml] # Not needed in the gem
16
18
  spec.bindir = 'exe'
17
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
20
  spec.require_paths = ['lib']
@@ -46,5 +48,6 @@ Gem::Specification.new do |spec|
46
48
 
47
49
  spec.add_development_dependency 'bundler', '~> 1.7'
48
50
  spec.add_development_dependency 'minitest', '~> 5.0'
51
+ spec.add_development_dependency 'mocha'
49
52
  spec.add_development_dependency 'rake', '~> 10.0'
50
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndr_dev_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - NCRS Development Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-15 00:00:00.000000000 Z
11
+ date: 2018-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -262,6 +262,20 @@ dependencies:
262
262
  - - "~>"
263
263
  - !ruby/object:Gem::Version
264
264
  version: '5.0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: mocha
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
265
279
  - !ruby/object:Gem::Dependency
266
280
  name: rake
267
281
  requirement: !ruby/object:Gem::Requirement
@@ -285,7 +299,6 @@ files:
285
299
  - ".gitignore"
286
300
  - ".hound.yml"
287
301
  - ".rubocop.yml"
288
- - ".travis.yml"
289
302
  - CODE_OF_CONDUCT.md
290
303
  - Gemfile
291
304
  - LICENSE.txt
@@ -318,6 +331,7 @@ files:
318
331
  - lib/tasks/ci/brakeman.rake
319
332
  - lib/tasks/ci/bundle_audit.rake
320
333
  - lib/tasks/ci/bundle_install.rake
334
+ - lib/tasks/ci/dependencies.rake
321
335
  - lib/tasks/ci/housekeep.rake
322
336
  - lib/tasks/ci/linguist.rake
323
337
  - lib/tasks/ci/notes.rake
@@ -349,7 +363,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
349
363
  version: '0'
350
364
  requirements: []
351
365
  rubyforge_project:
352
- rubygems_version: 2.7.6
366
+ rubygems_version: 2.5.2.3
353
367
  signing_key:
354
368
  specification_version: 4
355
369
  summary: NDR Developer Support library
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 2.2.5
5
- - 2.3.1
6
-
7
- sudo: false
8
-
9
- cache: bundler
10
-
11
- before_script: "bundle update"