snfoil-policy 0.0.1 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.fasterer.yml +22 -0
- data/.github/workflows/main.yml +6 -2
- data/.rubocop.yml +1 -0
- data/README.md +5 -6
- data/lib/snfoil/policy/version.rb +1 -1
- data/lib/snfoil/policy.rb +1 -1
- data/snfoil-policy.gemspec +5 -3
- metadata +34 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10387a21899e943f8e08f40a5cfd07160ee1ff34029d218f203cea592411f59d
|
4
|
+
data.tar.gz: 5716220afb211ddd5429dce8e441c7f4da0962c8d5c151a7e91efa092a73e37c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7a1f2851a9af5596ab05a16b33f133d2b185b4618778e87a4d699c75f58574faf2e375123d5926862b39f3ceca2c20b88d77e4e59340755ae7cdd49a455dc05
|
7
|
+
data.tar.gz: ae93318be284877dd34407bd31c42b3914ee89288e81033db92e75945861492455b867daabd05cbc4a92953d7a24d5c6d8594d950a27cf570b0926a91ea53689
|
data/.fasterer.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
speedups:
|
2
|
+
rescue_vs_respond_to: true
|
3
|
+
module_eval: true
|
4
|
+
shuffle_first_vs_sample: true
|
5
|
+
for_loop_vs_each: true
|
6
|
+
each_with_index_vs_while: false
|
7
|
+
map_flatten_vs_flat_map: true
|
8
|
+
reverse_each_vs_reverse_each: true
|
9
|
+
select_first_vs_detect: true
|
10
|
+
sort_vs_sort_by: true
|
11
|
+
fetch_with_argument_vs_block: true
|
12
|
+
keys_each_vs_each_key: true
|
13
|
+
hash_merge_bang_vs_hash_brackets: true
|
14
|
+
block_vs_symbol_to_proc: true
|
15
|
+
proc_call_vs_yield: true
|
16
|
+
gsub_vs_tr: true
|
17
|
+
select_last_vs_reverse_detect: true
|
18
|
+
getter_vs_attr_reader: true
|
19
|
+
setter_vs_attr_writer: true
|
20
|
+
|
21
|
+
exclude_paths:
|
22
|
+
- 'vendor/**/*.rb'
|
data/.github/workflows/main.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
name: build
|
2
|
-
on:
|
2
|
+
on:
|
3
3
|
push:
|
4
4
|
branches: [ main ]
|
5
5
|
pull_request:
|
@@ -11,7 +11,7 @@ jobs:
|
|
11
11
|
|
12
12
|
strategy:
|
13
13
|
matrix:
|
14
|
-
ruby-version: [2.7, 2.6, 2.5]
|
14
|
+
ruby-version: [2.7, 2.6, 2.5, '3.0']
|
15
15
|
|
16
16
|
steps:
|
17
17
|
- uses: actions/checkout@v2
|
@@ -43,4 +43,8 @@ jobs:
|
|
43
43
|
run: bundle install
|
44
44
|
- name: Run rubocop
|
45
45
|
run: bundle exec rubocop
|
46
|
+
- name: Run fasterer
|
47
|
+
run: bundle exec fasterer
|
48
|
+
- name: Run bundle audit
|
49
|
+
run: bundle exec bundle audit check --update
|
46
50
|
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -2,8 +2,7 @@
|
|
2
2
|
|
3
3
|
![build](https://github.com/limited-effort/snfoil-policy/actions/workflows/main.yml/badge.svg) [![maintainability](https://api.codeclimate.com/v1/badges/81c3abdb068a2305d4ce/maintainability)](https://codeclimate.com/github/limited-effort/snfoil-policy/maintainability)
|
4
4
|
|
5
|
-
SnFoil Policies are an easy and intuitive way to
|
6
|
-
|
5
|
+
SnFoil Policies are an easy and intuitive way to build [Pundit](https://github.com/varvet/pundit) style authorization files with a little extra base functionality added in.
|
7
6
|
|
8
7
|
While it isn't required you use [Pundit](https://github.com/varvet/pundit) with it, we highly recommend it.
|
9
8
|
|
@@ -21,7 +20,7 @@ gem 'snfoil-policy'
|
|
21
20
|
|
22
21
|
SnFoil Policies are meant to be used just like Pundit policies except you can build the actions using a helper and some of the setup work has been done for you.
|
23
22
|
|
24
|
-
The entity being
|
23
|
+
The entity being authorized (usually a User) is accessible via the `entity` instance variable.
|
25
24
|
And the record the entity is trying to work with is accessible as the `record` instance variable.
|
26
25
|
|
27
26
|
Use `permission` to start setting up some checks.
|
@@ -88,7 +87,7 @@ end
|
|
88
87
|
permission :update?, with: :create?
|
89
88
|
```
|
90
89
|
|
91
|
-
For more complex authorization mechanisms where more than one type of entity can operate against a record you can supply the type of
|
90
|
+
For more complex authorization mechanisms where more than one type of entity can operate against a record, you can supply the type of entity to check against.
|
92
91
|
|
93
92
|
```ruby
|
94
93
|
permission :create?, User do
|
@@ -115,7 +114,7 @@ end
|
|
115
114
|
|
116
115
|
### Scope
|
117
116
|
|
118
|
-
There is nothing special about SnFoil Policy Scopes. They are just defined to make life a little easier.
|
117
|
+
There is nothing special about SnFoil Policy Scopes. They are just defined to make life a little easier. Check out how to use Scopes in [Pundit](https://github.com/varvet/pundit#scopes), we highly recommend them.
|
119
118
|
|
120
119
|
|
121
120
|
## Development
|
@@ -134,4 +133,4 @@ The gem is available as open source under the terms of the [Apache 2 License](ht
|
|
134
133
|
|
135
134
|
## Code of Conduct
|
136
135
|
|
137
|
-
Everyone interacting in the Snfoil::Policy project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/limited-effort/snfoil-policy/blob/main/CODE_OF_CONDUCT.md).
|
136
|
+
Everyone interacting in the Snfoil::Policy project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [code of conduct](https://github.com/limited-effort/snfoil-policy/blob/main/CODE_OF_CONDUCT.md).
|
data/lib/snfoil/policy.rb
CHANGED
data/snfoil-policy.gemspec
CHANGED
@@ -5,13 +5,13 @@ require_relative 'lib/snfoil/policy/version'
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'snfoil-policy'
|
7
7
|
spec.version = SnFoil::Policy::VERSION
|
8
|
-
spec.authors = ['Matthew Howes']
|
9
|
-
spec.email = ['howeszy@gmail.com']
|
8
|
+
spec.authors = ['Matthew Howes', 'Cliff Campbell']
|
9
|
+
spec.email = ['howeszy@gmail.com', 'cliffcampbell@hey.com']
|
10
10
|
|
11
11
|
spec.summary = 'Pundit Style Permissions Builder'
|
12
12
|
spec.description = 'A set of helper functions to build permission files inspired by Pundit.'
|
13
13
|
spec.homepage = 'https://github.com/limited-effort/snfoil-policy'
|
14
|
-
spec.license = '
|
14
|
+
spec.license = 'Apache-2.0'
|
15
15
|
spec.required_ruby_version = '>= 2.5.0'
|
16
16
|
|
17
17
|
spec.metadata['homepage_uri'] = spec.homepage
|
@@ -30,6 +30,8 @@ Gem::Specification.new do |spec|
|
|
30
30
|
|
31
31
|
spec.add_dependency 'activesupport', '>= 5.2.6'
|
32
32
|
|
33
|
+
spec.add_development_dependency 'bundle-audit', '~> 0.1.0'
|
34
|
+
spec.add_development_dependency 'fasterer', '~> 0.9.0'
|
33
35
|
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
34
36
|
spec.add_development_dependency 'rake', '~> 13.0'
|
35
37
|
spec.add_development_dependency 'rspec', '~> 3.10'
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snfoil-policy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Howes
|
8
|
+
- Cliff Campbell
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
12
|
+
date: 2021-10-28 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activesupport
|
@@ -24,6 +25,34 @@ dependencies:
|
|
24
25
|
- - ">="
|
25
26
|
- !ruby/object:Gem::Version
|
26
27
|
version: 5.2.6
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: bundle-audit
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.1.0
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.1.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: fasterer
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 0.9.0
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.9.0
|
27
56
|
- !ruby/object:Gem::Dependency
|
28
57
|
name: pry-byebug
|
29
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,10 +140,12 @@ dependencies:
|
|
111
140
|
description: A set of helper functions to build permission files inspired by Pundit.
|
112
141
|
email:
|
113
142
|
- howeszy@gmail.com
|
143
|
+
- cliffcampbell@hey.com
|
114
144
|
executables: []
|
115
145
|
extensions: []
|
116
146
|
extra_rdoc_files: []
|
117
147
|
files:
|
148
|
+
- ".fasterer.yml"
|
118
149
|
- ".github/workflows/main.yml"
|
119
150
|
- ".gitignore"
|
120
151
|
- ".rspec"
|
@@ -132,7 +163,7 @@ files:
|
|
132
163
|
- snfoil-policy.gemspec
|
133
164
|
homepage: https://github.com/limited-effort/snfoil-policy
|
134
165
|
licenses:
|
135
|
-
-
|
166
|
+
- Apache-2.0
|
136
167
|
metadata:
|
137
168
|
homepage_uri: https://github.com/limited-effort/snfoil-policy
|
138
169
|
source_code_uri: https://github.com/limited-effort/snfoil-policy
|