phi_attrs 0.2.4 → 0.3.1
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 +4 -4
- data/README.md +4 -5
- data/lib/phi_attrs/configure.rb +1 -1
- data/lib/phi_attrs/phi_record.rb +21 -19
- data/lib/phi_attrs/railtie.rb +2 -2
- data/lib/phi_attrs/rspec.rb +3 -1
- data/lib/phi_attrs/version.rb +1 -1
- metadata +15 -79
- data/.github/workflows/build.yml +0 -24
- data/.github/workflows/publish.yml +0 -25
- data/.gitignore +0 -22
- data/.rspec +0 -3
- data/.rubocop.yml +0 -91
- data/Appraisals +0 -16
- data/Dockerfile +0 -16
- data/Gemfile +0 -8
- data/Rakefile +0 -19
- data/bin/console +0 -20
- data/bin/helpers/docker +0 -12
- data/bin/rubo_fix +0 -6
- data/bin/run_tests +0 -19
- data/bin/setup +0 -9
- data/bin/ssh_to_container +0 -3
- data/config.ru +0 -9
- data/docker/start.sh +0 -7
- data/docker-compose.yml +0 -20
- data/gemfiles/.bundle/config +0 -2
- data/gemfiles/rails_5.1.gemfile +0 -8
- data/gemfiles/rails_5.2.gemfile +0 -8
- data/gemfiles/rails_6.0.gemfile +0 -8
- data/phi_attrs.gemspec +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a9f9b3520ac31b3070fe055edc824ff9e5fb57ac7ae3a2aa1e21fbca0cbe938
|
4
|
+
data.tar.gz: c6e59941ca3647104021f42f15c983200f2abec40161873adeeef9188d8f28eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11fc15e014f7a99b47d7bac128ac55497a1be75add80751168a60abe14234e86503c4cca8c88116e6cee66d10675394c2cd1e413e023826b0944778c2647bb68
|
7
|
+
data.tar.gz: 7bc73305c3a0713bcde53250b9334df225d885a31a15e3837b984b7783bd51974a37a97b92d706e74a93413eaf19b0972c1e998f12b6f1643c6159d46d396035
|
data/README.md
CHANGED
@@ -321,7 +321,7 @@ module Admin
|
|
321
321
|
|
322
322
|
def leviosa
|
323
323
|
patient_info.allow_phi(current_user) do
|
324
|
-
# reason tries to use `phi.admin.patient_dashbaord.
|
324
|
+
# reason tries to use `phi.admin.patient_dashbaord.leviosa.patient_info`
|
325
325
|
end
|
326
326
|
end
|
327
327
|
end
|
@@ -438,9 +438,8 @@ Tests are written using [RSpec](http://rspec.info/) and are setup to use [Apprai
|
|
438
438
|
$ bundle exec appraisal rspec spec/path/to/spec.rb
|
439
439
|
|
440
440
|
To run just a particular rails version:
|
441
|
-
$ bundle exec appraisal
|
442
|
-
$ bundle exec appraisal rails-
|
443
|
-
$ bundle exec appraisal rails-6.0 rspec
|
441
|
+
$ bundle exec appraisal rails_6.1 rspec
|
442
|
+
$ bundle exec appraisal rails-7.0 rspec
|
444
443
|
|
445
444
|
### Console
|
446
445
|
|
@@ -484,4 +483,4 @@ Apsis Labs, LLP is not a HIPAA covered entity, and usage of this software does n
|
|
484
483
|
|
485
484
|
[](https://www.apsis.io)
|
486
485
|
|
487
|
-
`phi_attrs` was built by Apsis Labs. We love sharing what we build! Check out our [other libraries on Github](https://github.com/apsislabs), and if you like our work you can [hire us](https://www.apsis.io
|
486
|
+
`phi_attrs` was built by Apsis Labs. We love sharing what we build! Check out our [other libraries on Github](https://github.com/apsislabs), and if you like our work you can [hire us](https://www.apsis.io) to build your vision.
|
data/lib/phi_attrs/configure.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module PhiAttrs
|
4
4
|
@@log_path = nil
|
5
5
|
@@log_shift_age = 0 # Default to disabled
|
6
|
-
@@log_shift_size =
|
6
|
+
@@log_shift_size = 1_048_576 # 1MB - Default from logger class
|
7
7
|
@@current_user_method = nil
|
8
8
|
@@translation_prefix = 'phi'
|
9
9
|
|
data/lib/phi_attrs/phi_record.rb
CHANGED
@@ -112,7 +112,6 @@ module PhiAttrs
|
|
112
112
|
return
|
113
113
|
end
|
114
114
|
|
115
|
-
|
116
115
|
# Enable PHI access for any instance of this class in the block given only
|
117
116
|
# returning whatever the block returns.
|
118
117
|
#
|
@@ -141,7 +140,7 @@ module PhiAttrs
|
|
141
140
|
end
|
142
141
|
|
143
142
|
# Save this so we don't revoke access previously extended outside the block
|
144
|
-
frozen_instances =
|
143
|
+
frozen_instances = __instances_with_extended_phi.index_with { |obj| obj.instance_variable_get(:@__phi_relations_extended).clone }
|
145
144
|
|
146
145
|
if allow_only.nil?
|
147
146
|
allow_phi!(user_id, reason)
|
@@ -366,11 +365,10 @@ module PhiAttrs
|
|
366
365
|
return
|
367
366
|
end
|
368
367
|
|
369
|
-
|
370
368
|
# Enable PHI access for a single instance of this class inside the block.
|
371
369
|
# Returns whatever is returned from the block.
|
372
370
|
# Nested calls to get_phi will log once per nested call
|
373
|
-
#s
|
371
|
+
# s
|
374
372
|
# @param [String] user_id A unique identifier for the person accessing the PHI
|
375
373
|
# @param [String] reason The reason for accessing PHI
|
376
374
|
# @yield The block in which phi access is allowed
|
@@ -462,7 +460,6 @@ module PhiAttrs
|
|
462
460
|
end
|
463
461
|
end
|
464
462
|
|
465
|
-
|
466
463
|
# The unique identifier for whom access has been allowed on this instance.
|
467
464
|
# This is what was passed in when PhiRecord#allow_phi! was called.
|
468
465
|
#
|
@@ -627,21 +624,27 @@ module PhiAttrs
|
|
627
624
|
# # through access logging.
|
628
625
|
#
|
629
626
|
def phi_wrap_method(method_name)
|
627
|
+
unless respond_to?(method_name)
|
628
|
+
PhiAttrs::Logger.warn("#{self.class.name} tried to wrap non-existant method (#{method_name})")
|
629
|
+
return
|
630
|
+
end
|
630
631
|
return if self.class.__phi_methods_wrapped.include? method_name
|
631
632
|
|
632
633
|
wrapped_method = :"__#{method_name}_phi_wrapped"
|
633
634
|
unwrapped_method = :"__#{method_name}_phi_unwrapped"
|
634
635
|
|
635
|
-
self.class.send(:define_method, wrapped_method) do |*args, &block|
|
636
|
+
self.class.send(:define_method, wrapped_method) do |*args, **kwargs, &block|
|
636
637
|
PhiAttrs::Logger.tagged(*phi_log_keys) do
|
637
|
-
|
638
|
+
unless phi_allowed?
|
639
|
+
raise PhiAttrs::Exceptions::PhiAccessException, "Attempted PHI access for #{self.class.name} #{@__phi_user_id}"
|
640
|
+
end
|
638
641
|
|
639
642
|
unless all_phi_context_logged?
|
640
643
|
PhiAttrs::Logger.info("#{self.class.name} access by [#{all_phi_allowed_by}]. Triggered by method: #{method_name}")
|
641
644
|
set_all_phi_context_logged
|
642
645
|
end
|
643
646
|
|
644
|
-
send(unwrapped_method, *args, &block)
|
647
|
+
send(unwrapped_method, *args, **kwargs, &block)
|
645
648
|
end
|
646
649
|
end
|
647
650
|
|
@@ -660,23 +663,22 @@ module PhiAttrs
|
|
660
663
|
# @private
|
661
664
|
#
|
662
665
|
def phi_wrap_extension(method_name)
|
666
|
+
raise NameError, "Undefined relationship in `extend_phi_access`: #{method_name}" unless respond_to?(method_name)
|
663
667
|
return if self.class.__phi_methods_to_extend.include? method_name
|
664
668
|
|
665
669
|
wrapped_method = wrapped_extended_name(method_name)
|
666
670
|
unwrapped_method = unwrapped_extended_name(method_name)
|
667
671
|
|
668
|
-
self.class.send(:define_method, wrapped_method) do |*args, &block|
|
669
|
-
relation = send(unwrapped_method, *args, &block)
|
670
|
-
|
671
|
-
if phi_allowed?
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
r.allow_phi!(phi_allowed_by, phi_access_reason) unless @__phi_relations_extended.include?(r)
|
676
|
-
end
|
677
|
-
@__phi_relations_extended.merge(relations)
|
678
|
-
self.class.__instances_with_extended_phi.add(self)
|
672
|
+
self.class.send(:define_method, wrapped_method) do |*args, **kwargs, &block|
|
673
|
+
relation = send(unwrapped_method, *args, **kwargs, &block)
|
674
|
+
|
675
|
+
if phi_allowed? && (relation.present? && relation_klass(relation).included_modules.include?(PhiRecord))
|
676
|
+
relations = relation.is_a?(Enumerable) ? relation : [relation]
|
677
|
+
relations.each do |r|
|
678
|
+
r.allow_phi!(phi_allowed_by, phi_access_reason) unless @__phi_relations_extended.include?(r)
|
679
679
|
end
|
680
|
+
@__phi_relations_extended.merge(relations)
|
681
|
+
self.class.__instances_with_extended_phi.add(self)
|
680
682
|
end
|
681
683
|
|
682
684
|
relation
|
data/lib/phi_attrs/railtie.rb
CHANGED
@@ -7,8 +7,8 @@ module PhiAttrs
|
|
7
7
|
class Railtie < Rails::Railtie
|
8
8
|
initializer 'phi_attrs.initialize' do |_app|
|
9
9
|
ActiveSupport.on_load(:active_record) do
|
10
|
-
|
11
|
-
|
10
|
+
ActiveSupport.on_load(:active_record) { extend PhiAttrs::Model }
|
11
|
+
ActiveSupport.on_load(:action_controller) { include PhiAttrs::Controller }
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
data/lib/phi_attrs/rspec.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rspec/expectations'
|
2
4
|
|
3
|
-
DO_NOT_SPECIFY =
|
5
|
+
DO_NOT_SPECIFY = 'do not specify `allowed_by` or `with_access_reason` for negated `allow_phi_access`'
|
4
6
|
|
5
7
|
RSpec::Matchers.define :allow_phi_access do
|
6
8
|
match do |result|
|
data/lib/phi_attrs/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phi_attrs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wyatt Kirby
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 6.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 6.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: request_store
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,34 +54,20 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '2.0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '2.0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: byebug
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - ">="
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
61
|
+
version: 2.2.33
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - ">="
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
68
|
+
version: 2.2.33
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: byebug
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - ">="
|
@@ -95,7 +81,7 @@ dependencies:
|
|
95
81
|
- !ruby/object:Gem::Version
|
96
82
|
version: '0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
84
|
+
name: factory_bot_rails
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
87
|
- - ">="
|
@@ -109,7 +95,7 @@ dependencies:
|
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: '0'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
98
|
+
name: faker
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
101
|
- - ">="
|
@@ -123,7 +109,7 @@ dependencies:
|
|
123
109
|
- !ruby/object:Gem::Version
|
124
110
|
version: '0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
112
|
+
name: rake
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
115
|
- - ">="
|
@@ -137,7 +123,7 @@ dependencies:
|
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: '0'
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
126
|
+
name: rubocop
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
129
|
- - ">="
|
@@ -151,35 +137,7 @@ dependencies:
|
|
151
137
|
- !ruby/object:Gem::Version
|
152
138
|
version: '0'
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - "~>"
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '3.7'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - "~>"
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '3.7'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: rspec-rails
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - "~>"
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '3.7'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - "~>"
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '3.7'
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: rubocop
|
140
|
+
name: rubocop-rails
|
183
141
|
requirement: !ruby/object:Gem::Requirement
|
184
142
|
requirements:
|
185
143
|
- - ">="
|
@@ -227,32 +185,10 @@ executables: []
|
|
227
185
|
extensions: []
|
228
186
|
extra_rdoc_files: []
|
229
187
|
files:
|
230
|
-
- ".github/workflows/build.yml"
|
231
|
-
- ".github/workflows/publish.yml"
|
232
|
-
- ".gitignore"
|
233
|
-
- ".rspec"
|
234
|
-
- ".rubocop.yml"
|
235
|
-
- Appraisals
|
236
188
|
- CHANGELOG.md
|
237
189
|
- DISCLAIMER.txt
|
238
|
-
- Dockerfile
|
239
|
-
- Gemfile
|
240
190
|
- LICENSE.txt
|
241
191
|
- README.md
|
242
|
-
- Rakefile
|
243
|
-
- bin/console
|
244
|
-
- bin/helpers/docker
|
245
|
-
- bin/rubo_fix
|
246
|
-
- bin/run_tests
|
247
|
-
- bin/setup
|
248
|
-
- bin/ssh_to_container
|
249
|
-
- config.ru
|
250
|
-
- docker-compose.yml
|
251
|
-
- docker/start.sh
|
252
|
-
- gemfiles/.bundle/config
|
253
|
-
- gemfiles/rails_5.1.gemfile
|
254
|
-
- gemfiles/rails_5.2.gemfile
|
255
|
-
- gemfiles/rails_6.0.gemfile
|
256
192
|
- lib/phi_attrs.rb
|
257
193
|
- lib/phi_attrs/configure.rb
|
258
194
|
- lib/phi_attrs/exceptions.rb
|
@@ -262,11 +198,11 @@ files:
|
|
262
198
|
- lib/phi_attrs/railtie.rb
|
263
199
|
- lib/phi_attrs/rspec.rb
|
264
200
|
- lib/phi_attrs/version.rb
|
265
|
-
- phi_attrs.gemspec
|
266
201
|
homepage: http://www.apsis.io
|
267
202
|
licenses:
|
268
203
|
- MIT
|
269
|
-
metadata:
|
204
|
+
metadata:
|
205
|
+
rubygems_mfa_required: 'false'
|
270
206
|
post_install_message: "\n Thank you for installing phi_attrs! By installing this
|
271
207
|
gem,\n you acknowledge and agree to the disclaimer as provided in the\n DISCLAIMER.txt
|
272
208
|
file.\n\n For full details, see: https://github.com/apsislabs/phi_attrs/blob/master/DISCLAIMER.txt\n
|
@@ -278,7 +214,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
278
214
|
requirements:
|
279
215
|
- - ">="
|
280
216
|
- !ruby/object:Gem::Version
|
281
|
-
version:
|
217
|
+
version: 2.7.0
|
282
218
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
283
219
|
requirements:
|
284
220
|
- - ">="
|
data/.github/workflows/build.yml
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
name: Spec CI
|
2
|
-
|
3
|
-
on: [push, pull_request]
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
build:
|
7
|
-
runs-on: ubuntu-latest
|
8
|
-
name: Ruby ${{ matrix.ruby }}
|
9
|
-
strategy:
|
10
|
-
matrix:
|
11
|
-
ruby: [2.5, 2.6, 2.7]
|
12
|
-
|
13
|
-
steps:
|
14
|
-
- uses: actions/checkout@v3
|
15
|
-
- name: Set up Ruby ${{ matrix.ruby }}
|
16
|
-
uses: ruby/setup-ruby@v1
|
17
|
-
with:
|
18
|
-
ruby-version: ${{ matrix.ruby }}
|
19
|
-
bundler-cache: true
|
20
|
-
- name: Install dependencies
|
21
|
-
run: |
|
22
|
-
bundle exec appraisal install
|
23
|
-
- name: Run rspec
|
24
|
-
run: bundler exec appraisal rspec
|
@@ -1,25 +0,0 @@
|
|
1
|
-
name: Publish Gem
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches:
|
6
|
-
- "main"
|
7
|
-
tags:
|
8
|
-
- v*
|
9
|
-
jobs:
|
10
|
-
build:
|
11
|
-
runs-on: ubuntu-latest
|
12
|
-
|
13
|
-
steps:
|
14
|
-
- uses: actions/checkout@v3
|
15
|
-
- uses: ruby/setup-ruby@v1
|
16
|
-
with:
|
17
|
-
ruby-version: '2.6'
|
18
|
-
bundler-cache: true
|
19
|
-
- name: Release Gem
|
20
|
-
if: contains(github.ref, 'refs/tags/v')
|
21
|
-
uses: cadwallion/publish-rubygems-action@master
|
22
|
-
env:
|
23
|
-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
24
|
-
RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
|
25
|
-
RELEASE_COMMAND: bundle exec rake release
|
data/.gitignore
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
/.bundle/
|
2
|
-
/.yardoc
|
3
|
-
/Gemfile.lock
|
4
|
-
/_yardoc/
|
5
|
-
/coverage/
|
6
|
-
/doc/
|
7
|
-
/pkg/
|
8
|
-
/spec/reports/
|
9
|
-
/tmp/
|
10
|
-
|
11
|
-
*Gemfile.lock
|
12
|
-
.byebug_history
|
13
|
-
|
14
|
-
/test/sample/tmp/
|
15
|
-
*.sqlite
|
16
|
-
*.sqlite3
|
17
|
-
*.log
|
18
|
-
.rspec_status
|
19
|
-
gemfiles/*.gemfile.lock
|
20
|
-
|
21
|
-
# Macs. Ugh.
|
22
|
-
.DS_Store
|
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
Rails:
|
2
|
-
Enabled: true
|
3
|
-
|
4
|
-
AllCops:
|
5
|
-
Exclude:
|
6
|
-
- 'bin/**/*'
|
7
|
-
- 'gemfiles/**/*'
|
8
|
-
- 'spec/internal/db/schema.rb'
|
9
|
-
TargetRubyVersion: 2.5
|
10
|
-
|
11
|
-
Documentation:
|
12
|
-
Enabled: false
|
13
|
-
|
14
|
-
Layout/IndentationWidth:
|
15
|
-
Enabled: true
|
16
|
-
|
17
|
-
Lint/UnreachableCode:
|
18
|
-
Exclude:
|
19
|
-
- 'lib/phi_attrs/phi_record.rb' # TODO: RUBOCOP Cleanup exclusion
|
20
|
-
|
21
|
-
Lint/UnusedMethodArgument:
|
22
|
-
Exclude:
|
23
|
-
- 'lib/phi_attrs.rb' # TODO: RUBOCOP Cleanup exclusion
|
24
|
-
|
25
|
-
Metrics/AbcSize:
|
26
|
-
Max: 30
|
27
|
-
Exclude:
|
28
|
-
- 'spec/internal/db/**/*'
|
29
|
-
- 'lib/phi_attrs/phi_record.rb' # TODO: RUBOCOP Cleanup exclusion
|
30
|
-
|
31
|
-
Metrics/BlockLength:
|
32
|
-
Enabled: false
|
33
|
-
|
34
|
-
Metrics/ClassLength:
|
35
|
-
Max: 1500
|
36
|
-
|
37
|
-
Metrics/CyclomaticComplexity:
|
38
|
-
Exclude:
|
39
|
-
- 'lib/phi_attrs/phi_record.rb' # TODO: RUBOCOP Cleanup exclusion
|
40
|
-
|
41
|
-
Metrics/LineLength:
|
42
|
-
Exclude:
|
43
|
-
- 'spec/**/*'
|
44
|
-
- 'lib/phi_attrs/phi_record.rb' # TODO: RUBOCOP Cleanup exclusion
|
45
|
-
Max: 140
|
46
|
-
|
47
|
-
Metrics/MethodLength:
|
48
|
-
Exclude:
|
49
|
-
- 'spec/**/*'
|
50
|
-
- 'lib/phi_attrs/phi_record.rb' # TODO: RUBOCOP Cleanup exclusion
|
51
|
-
Max: 20
|
52
|
-
|
53
|
-
Metrics/ModuleLength:
|
54
|
-
Exclude:
|
55
|
-
- 'lib/phi_attrs/phi_record.rb' # TODO: RUBOCOP Cleanup exclusion
|
56
|
-
|
57
|
-
Metrics/PerceivedComplexity:
|
58
|
-
Exclude:
|
59
|
-
- 'lib/phi_attrs/phi_record.rb' # TODO: RUBOCOP Cleanup exclusion
|
60
|
-
|
61
|
-
Naming/PredicateName:
|
62
|
-
Enabled: false
|
63
|
-
|
64
|
-
Rails/DynamicFindBy:
|
65
|
-
Exclude:
|
66
|
-
- 'spec/spec_helper.rb' # TODO: RUBOCOP Cleanup exclusion
|
67
|
-
|
68
|
-
Style/BracesAroundHashParameters:
|
69
|
-
Enabled: false
|
70
|
-
|
71
|
-
Style/ClassVars:
|
72
|
-
Enabled: false
|
73
|
-
|
74
|
-
Style/CommentedKeyword:
|
75
|
-
Exclude:
|
76
|
-
- 'spec/**/*'
|
77
|
-
|
78
|
-
Style/ConditionalAssignment:
|
79
|
-
Enabled: false
|
80
|
-
|
81
|
-
Style/EmptyMethod:
|
82
|
-
EnforcedStyle: expanded
|
83
|
-
|
84
|
-
Style/SymbolArray:
|
85
|
-
EnforcedStyle: brackets
|
86
|
-
|
87
|
-
Style/RedundantReturn:
|
88
|
-
Enabled: false
|
89
|
-
|
90
|
-
Style/WordArray:
|
91
|
-
MinSize: 4
|
data/Appraisals
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
appraise 'rails-5.1' do
|
4
|
-
gem 'rails', '5.1.3'
|
5
|
-
gem 'sqlite3', '~> 1.3', '< 1.4'
|
6
|
-
end
|
7
|
-
|
8
|
-
appraise 'rails-5.2' do
|
9
|
-
gem 'rails', '5.2.4'
|
10
|
-
gem 'sqlite3', '~> 1.4'
|
11
|
-
end
|
12
|
-
|
13
|
-
appraise 'rails-6.0' do
|
14
|
-
gem 'rails', '6.0.3'
|
15
|
-
gem 'sqlite3', '~> 1.4'
|
16
|
-
end
|
data/Dockerfile
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'bundler/gem_tasks'
|
4
|
-
require 'rspec/core/rake_task'
|
5
|
-
|
6
|
-
RSpec::Core::RakeTask.new(:spec)
|
7
|
-
|
8
|
-
# Set Chandler options
|
9
|
-
if defined? Chandler
|
10
|
-
Chandler::Tasks.configure do |config|
|
11
|
-
config.changelog_path = 'CHANGELOG.md'
|
12
|
-
config.github_repository = 'apsislabs/phi_attrs'
|
13
|
-
end
|
14
|
-
|
15
|
-
# Add chandler as a prerequisite for `rake release`
|
16
|
-
task 'release:rubygem_push' => 'chandler:push'
|
17
|
-
end
|
18
|
-
|
19
|
-
task default: :spec
|
data/bin/console
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'bundler/setup'
|
4
|
-
require 'phi_attrs'
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require 'irb'
|
14
|
-
require 'irb/completion'
|
15
|
-
|
16
|
-
PhiAttrs.configure do |conf|
|
17
|
-
conf.log_path = File.join('log', 'phi_access_console.log')
|
18
|
-
end
|
19
|
-
|
20
|
-
IRB.start(__FILE__)
|
data/bin/helpers/docker
DELETED
data/bin/rubo_fix
DELETED
data/bin/run_tests
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
source bin/helpers/docker
|
3
|
-
runOnDocker rails
|
4
|
-
|
5
|
-
echo "== Starting unit tests =="
|
6
|
-
bundle exec appraisal rspec
|
7
|
-
if [ $? -ne 0 ]; then
|
8
|
-
echo -e "\n== RSpec failed; push aborted! ==\n"
|
9
|
-
exit 1
|
10
|
-
fi
|
11
|
-
|
12
|
-
echo "== Starting rubocop =="
|
13
|
-
bundle exec rubocop --format worst --format simple --format offenses
|
14
|
-
if [ $? -ne 0 ]; then
|
15
|
-
echo -e "\n== Rubocop failed; push aborted! ==\n"
|
16
|
-
echo -e "To auto-correct errors run:"
|
17
|
-
echo -e "\tbin/rubo_fix"
|
18
|
-
exit 1
|
19
|
-
fi
|
data/bin/setup
DELETED
data/bin/ssh_to_container
DELETED
data/config.ru
DELETED
data/docker/start.sh
DELETED
data/docker-compose.yml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
version: '3'
|
2
|
-
|
3
|
-
services:
|
4
|
-
rails:
|
5
|
-
build: .
|
6
|
-
volumes:
|
7
|
-
- bundle_cache:/bundle
|
8
|
-
- .:/app
|
9
|
-
environment:
|
10
|
-
- BUNDLER_VERSION=2.1.4
|
11
|
-
- BUNDLE_JOBS=5
|
12
|
-
- BUNDLE_PATH=/bundle
|
13
|
-
- BUNDLE_BIN=/bundle/bin
|
14
|
-
- GEM_HOME=/bundle
|
15
|
-
- DOCKER_CONTAINER=1
|
16
|
-
command:
|
17
|
-
- docker/start.sh
|
18
|
-
|
19
|
-
volumes:
|
20
|
-
bundle_cache:
|
data/gemfiles/.bundle/config
DELETED
data/gemfiles/rails_5.1.gemfile
DELETED
data/gemfiles/rails_5.2.gemfile
DELETED
data/gemfiles/rails_6.0.gemfile
DELETED
data/phi_attrs.gemspec
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
lib = File.expand_path('lib', __dir__)
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require 'phi_attrs/version'
|
6
|
-
|
7
|
-
Gem::Specification.new do |spec|
|
8
|
-
spec.name = 'phi_attrs'
|
9
|
-
spec.version = PhiAttrs::VERSION
|
10
|
-
spec.authors = ['Wyatt Kirby']
|
11
|
-
spec.email = ['wyatt@apsis.io']
|
12
|
-
|
13
|
-
spec.summary = 'PHI Access Restriction & Logging for Rails ActiveRecord'
|
14
|
-
spec.homepage = 'http://www.apsis.io'
|
15
|
-
spec.license = 'MIT'
|
16
|
-
spec.post_install_message = %q`
|
17
|
-
Thank you for installing phi_attrs! By installing this gem,
|
18
|
-
you acknowledge and agree to the disclaimer as provided in the
|
19
|
-
DISCLAIMER.txt file.
|
20
|
-
|
21
|
-
For full details, see: https://github.com/apsislabs/phi_attrs/blob/master/DISCLAIMER.txt
|
22
|
-
`
|
23
|
-
|
24
|
-
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
25
|
-
f.match(%r{^(test|spec|features)/})
|
26
|
-
end
|
27
|
-
spec.bindir = 'exe'
|
28
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
|
-
spec.require_paths = ['lib']
|
30
|
-
|
31
|
-
spec.add_runtime_dependency 'rails', '>= 4.2.0'
|
32
|
-
spec.add_runtime_dependency 'request_store', '~> 1.4'
|
33
|
-
|
34
|
-
spec.add_development_dependency 'appraisal'
|
35
|
-
spec.add_development_dependency 'bundler', '~> 2.0'
|
36
|
-
spec.add_development_dependency 'byebug'
|
37
|
-
spec.add_development_dependency 'chandler'
|
38
|
-
spec.add_development_dependency 'combustion'
|
39
|
-
spec.add_development_dependency 'factory_bot_rails'
|
40
|
-
spec.add_development_dependency 'faker'
|
41
|
-
spec.add_development_dependency 'rake'
|
42
|
-
spec.add_development_dependency 'rspec', '~> 3.7'
|
43
|
-
spec.add_development_dependency 'rspec-rails', '~> 3.7'
|
44
|
-
spec.add_development_dependency 'rubocop'
|
45
|
-
spec.add_development_dependency 'simplecov', '~> 0.16'
|
46
|
-
spec.add_development_dependency 'tzinfo-data'
|
47
|
-
end
|