ndr_dev_support 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
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"