consul 1.3.2 → 2.0.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/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +26 -1
- data/{Gemfile.7-1 → Gemfile.7-2} +2 -2
- data/{Gemfile.7-1.lock → Gemfile.7-2.lock} +40 -36
- data/{Gemfile.6-1 → Gemfile.8-0} +6 -2
- data/Gemfile.8-0.lock +179 -0
- data/{Gemfile.7-0 → Gemfile.8-1} +6 -2
- data/Gemfile.8-1.lock +189 -0
- data/README.md +60 -23
- data/consul.gemspec +15 -15
- data/lib/consul/util.rb +14 -41
- data/lib/consul/version.rb +1 -1
- metadata +17 -25
- data/.github/workflows/test.yml +0 -44
- data/Gemfile +0 -1
- data/Gemfile.5-2 +0 -18
- data/Gemfile.5-2.lock +0 -128
- data/Gemfile.6-1.lock +0 -127
- data/Gemfile.7-0.lock +0 -133
- data/Gemfile.lock +0 -1
data/README.md
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
<p>
|
|
2
|
+
<a href="https://makandra.de/">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset="media/makandra-with-bottom-margin.light.svg">
|
|
5
|
+
<source media="(prefers-color-scheme: dark)" srcset="media/makandra-with-bottom-margin.dark.svg">
|
|
6
|
+
<img align="right" width="25%" alt="makandra" src="media/makandra-with-bottom-margin.light.svg">
|
|
7
|
+
</picture>
|
|
8
|
+
</a>
|
|
9
|
+
|
|
10
|
+
<picture>
|
|
11
|
+
<source media="(prefers-color-scheme: light)" srcset="media/logo.light.shapes.svg">
|
|
12
|
+
<source media="(prefers-color-scheme: dark)" srcset="media/logo.dark.shapes.svg">
|
|
13
|
+
<img width="155" alt="consul" role="heading" aria-level="1" src="media/logo.light.shapes.svg">
|
|
14
|
+
</picture>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
[](https://github.com/makandra/consul/actions)
|
|
4
18
|
|
|
5
19
|
Consul is an authorization solution for Ruby on Rails where you describe _sets of accessible things_ to control what a user can see or edit.
|
|
6
20
|
|
|
7
21
|
We have used Consul in combination with [assignable_values](https://github.com/makandra/assignable_values) to solve a variety of authorization requirements ranging from boring to bizarre.
|
|
8
22
|
Also see our crash course video: [Solving bizare authorization requirements with Rails](http://bizarre-authorization.talks.makandra.com/).
|
|
9
23
|
|
|
10
|
-
Consul is tested with Rails
|
|
24
|
+
Consul is tested with Rails 6.1, 7.1, 7.2 and 8.0 on Ruby 2.5, 2.7, 3.2, 3.3 (only if supported, for each Ruby/Rails combination). If you need support for Rails 3.2, please use [v0.13.2](https://github.com/makandra/consul/tree/v0.13.2).
|
|
11
25
|
|
|
12
26
|
## Describing access to your application
|
|
13
27
|
|
|
@@ -724,18 +738,18 @@ end
|
|
|
724
738
|
|
|
725
739
|
There is a long selection of class methods that behave neutrally in case `Power.current` is `nil`:
|
|
726
740
|
|
|
727
|
-
| Call | Equivalent
|
|
728
|
-
| ---------------------------------------------- |
|
|
729
|
-
| `Power.for_model(Note)` | `Power.current
|
|
730
|
-
| `Power.for_model(:updatable, Note)` | `Power.current
|
|
731
|
-
| `Power.include_model?(Note)` | `Power.current
|
|
732
|
-
| `Power.include_model?(:updatable, Note)` | `Power.current
|
|
733
|
-
| `Power.include_model!(Note)` | `Power.notes! if Power.current
|
|
734
|
-
| `Power.include_model!(:updatable, Note)` | `Power.updatable_notes! if Power.current
|
|
735
|
-
| `Power.include_record?(Note.last)` | `Power.current
|
|
736
|
-
| `Power.include_record?(:updatable, Note.last)` | `Power.current
|
|
737
|
-
| `Power.include_record!(Note.last)` | `Power.note!(Note.last) if Power.current
|
|
738
|
-
| `Power.include_record!(:updatable, Note.last)` | `Power.updatable_note!(Note.last) if Power.current
|
|
741
|
+
| Call | Equivalent |
|
|
742
|
+
| ---------------------------------------------- | -----------------------------------------------------------|
|
|
743
|
+
| `Power.for_model(Note)` | `Power.current? ? Power.current.notes : Note` |
|
|
744
|
+
| `Power.for_model(:updatable, Note)` | `Power.current? ? Power.current.updatable_notes : Note` |
|
|
745
|
+
| `Power.include_model?(Note)` | `Power.current? ? Power.notes? : true` |
|
|
746
|
+
| `Power.include_model?(:updatable, Note)` | `Power.current? ? Power.updatable_notes? : true` |
|
|
747
|
+
| `Power.include_model!(Note)` | `Power.notes! if Power.current` |
|
|
748
|
+
| `Power.include_model!(:updatable, Note)` | `Power.current.updatable_notes! if Power.current` |
|
|
749
|
+
| `Power.include_record?(Note.last)` | `Power.current ? Power.current.note?(Note.last) : true` |
|
|
750
|
+
| `Power.include_record?(:updatable, Note.last)` | `Power.current? ? Power.current.updatable_note?(Note.last) : true` |
|
|
751
|
+
| `Power.include_record!(Note.last)` | `Power.current.note!(Note.last) if Power.current` |
|
|
752
|
+
| `Power.include_record!(:updatable, Note.last)` | `Power.updatable_note!(Note.last) if Power.current` |
|
|
739
753
|
|
|
740
754
|
## Testing
|
|
741
755
|
|
|
@@ -820,16 +834,39 @@ Now run `bundle install` to lock the gem into your project.
|
|
|
820
834
|
|
|
821
835
|
## Development
|
|
822
836
|
|
|
823
|
-
We currently develop using Ruby
|
|
837
|
+
We currently develop using Ruby 3.4.1 (see `.ruby-version`) since that version works for current versions of ActiveRecord that we support. GitHub Actions will test additional Ruby versions (3.2.0, 4.0.1).
|
|
824
838
|
|
|
825
839
|
There are tests in `spec`. We only accept PRs with tests. To run tests:
|
|
826
840
|
|
|
827
|
-
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
841
|
+
- First, put your database credentials into `spec/support/database.yml`. There's a `database.sample.yml` you can use as
|
|
842
|
+
a template.
|
|
843
|
+
|
|
844
|
+
Then, you have multiple options:
|
|
845
|
+
|
|
846
|
+
1. Running tests for a single set of dependencies
|
|
847
|
+
- Install and switch to a Ruby version
|
|
848
|
+
- run `BUNDLE_GEMFILE=... bundle install`
|
|
849
|
+
- run `BUNDLE_GEMFILE=... bundle exec rspec`
|
|
850
|
+
- NOTE:
|
|
851
|
+
- There are gem bundles in the project root for each rails version that we support.
|
|
852
|
+
- Refer to `.github/workflows/test.yml` to see which Gemfiles are supported for which Ruby version.
|
|
853
|
+
|
|
854
|
+
2. Run tests against a specific Ruby version and all Gemfiles for that version:
|
|
855
|
+
- Install and switch to the Ruby version
|
|
856
|
+
- Install development dependencies using `rake matrix:install`
|
|
857
|
+
- Run tests using `rake matrix:spec`
|
|
858
|
+
|
|
859
|
+
3. Run tests against all Ruby versions:
|
|
860
|
+
- Install all Ruby versions mentioned in `.github/workflows/test.yml`
|
|
861
|
+
- run `dev/matrix` (only supports `rbenv` for switching Ruby versions currently)
|
|
862
|
+
|
|
863
|
+
Hints:
|
|
864
|
+
|
|
865
|
+
- Check the [gemika](github.com/makandra/gemika) README for more detailed development instructions.
|
|
866
|
+
- We recommend to have sufficiently new versions of bundler (> 2.3.0) and rubygems (> 3.3.0) installed for each Ruby
|
|
867
|
+
version.
|
|
868
|
+
- The script `dev/matrix` will warn you, if that is not the case. For all other methods you need to ensure that
|
|
869
|
+
yourself.
|
|
833
870
|
|
|
834
871
|
If you would like to contribute:
|
|
835
872
|
|
data/consul.gemspec
CHANGED
|
@@ -10,24 +10,24 @@ Gem::Specification.new do |s|
|
|
|
10
10
|
s.summary = 'A scope-based authorization solution for Ruby on Rails.'
|
|
11
11
|
s.description = s.summary
|
|
12
12
|
s.license = 'MIT'
|
|
13
|
+
s.metadata = {
|
|
14
|
+
'source_code_uri' => s.homepage,
|
|
15
|
+
'bug_tracker_uri' => 'https://github.com/makandra/consul/issues',
|
|
16
|
+
'changelog_uri' => 'https://github.com/makandra/consul/blob/master/CHANGELOG.md',
|
|
17
|
+
'rubygems_mfa_required' => 'true',
|
|
18
|
+
}
|
|
13
19
|
|
|
14
|
-
|
|
15
|
-
s.metadata = {
|
|
16
|
-
'source_code_uri' => s.homepage,
|
|
17
|
-
'bug_tracker_uri' => 'https://github.com/makandra/consul/issues',
|
|
18
|
-
'changelog_uri' => 'https://github.com/makandra/consul/blob/master/CHANGELOG.md',
|
|
19
|
-
'rubygems_mfa_required' => 'true',
|
|
20
|
-
}
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
s.files = `git ls-files`.split("\n").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
24
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
25
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
20
|
+
s.files = `git ls-files`.split("\n").reject { |f| File.symlink?(f) }.reject { |f| f.match(%r{^(spec|dev|media|.github)/}) }
|
|
26
21
|
s.require_paths = ["lib"]
|
|
27
22
|
|
|
23
|
+
s.bindir = 'exe'
|
|
24
|
+
s.executables = []
|
|
25
|
+
|
|
26
|
+
s.required_ruby_version = '>= 3.0.0'
|
|
27
|
+
|
|
28
28
|
s.add_dependency('memoized', '>=1.0.2')
|
|
29
|
-
s.add_dependency('activerecord', '>=
|
|
30
|
-
s.add_dependency('activesupport', '>=
|
|
31
|
-
s.add_dependency('railties', '>=
|
|
29
|
+
s.add_dependency('activerecord', '>= 7.2')
|
|
30
|
+
s.add_dependency('activesupport', '>= 7.2')
|
|
31
|
+
s.add_dependency('railties', '>= 7.2')
|
|
32
32
|
s.add_dependency('edge_rider', '>= 0.3.0')
|
|
33
33
|
end
|
data/lib/consul/util.rb
CHANGED
|
@@ -3,11 +3,7 @@ module Consul
|
|
|
3
3
|
extend self
|
|
4
4
|
|
|
5
5
|
def scope_selects_all_records?(scope)
|
|
6
|
-
|
|
7
|
-
scope = scope.scoped({})
|
|
8
|
-
else
|
|
9
|
-
scope = scope.scoped
|
|
10
|
-
end
|
|
6
|
+
scope = scope.scoped
|
|
11
7
|
scope_sql = scope.to_sql
|
|
12
8
|
quoted_table_name = Regexp.quote(scope.connection.quote_table_name(scope.table_name))
|
|
13
9
|
all_sql_pattern = /\ASELECT (#{quoted_table_name}\.)?\* FROM #{quoted_table_name}\z/
|
|
@@ -23,26 +19,17 @@ module Consul
|
|
|
23
19
|
end
|
|
24
20
|
|
|
25
21
|
def define_scope(klass, name, lambda)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
klass.
|
|
29
|
-
|
|
30
|
-
klass.send :scope, name, lambda { |*args|
|
|
31
|
-
options = lambda.call(*args)
|
|
32
|
-
klass.scoped(options.slice *EdgeRider::Scoped::VALID_FIND_OPTIONS)
|
|
33
|
-
}
|
|
34
|
-
end
|
|
22
|
+
klass.send :scope, name, lambda { |*args|
|
|
23
|
+
options = lambda.call(*args)
|
|
24
|
+
klass.scoped(options.slice *EdgeRider::Scoped::VALID_FIND_OPTIONS)
|
|
25
|
+
}
|
|
35
26
|
end
|
|
36
27
|
|
|
37
28
|
# This method does not support dynamic default scopes via lambdas
|
|
38
29
|
# (as does #define_scope), because it is currently not required.
|
|
39
30
|
def define_default_scope(klass, conditions)
|
|
40
|
-
|
|
41
|
-
klass.
|
|
42
|
-
else
|
|
43
|
-
klass.send :default_scope do
|
|
44
|
-
klass.scoped(conditions)
|
|
45
|
-
end
|
|
31
|
+
klass.send :default_scope do
|
|
32
|
+
klass.scoped(conditions)
|
|
46
33
|
end
|
|
47
34
|
end
|
|
48
35
|
|
|
@@ -58,33 +45,19 @@ module Consul
|
|
|
58
45
|
end
|
|
59
46
|
|
|
60
47
|
def skip_before_action(controller_class, name, options)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
# Every `power` in a controller will skip the power check filter. After the 1st time, Rails 5+ will raise
|
|
67
|
-
# an error because there is no `unchecked_power` action to skip any more.
|
|
68
|
-
# To avoid this, we add the following extra option. Note that it must not be added in Rails 4 to avoid errors.
|
|
69
|
-
# See http://api.rubyonrails.org/classes/ActiveSupport/Callbacks/ClassMethods.html#method-i-skip_callback
|
|
70
|
-
controller_class.skip_before_action name, { :raise => false }.merge!(options)
|
|
71
|
-
end
|
|
48
|
+
# Every `power` in a controller will skip the power check filter. After the 1st time, Rails will raise
|
|
49
|
+
# an error because there is no `unchecked_power` action to skip any more.
|
|
50
|
+
# To avoid this, we add the following extra option.
|
|
51
|
+
# See http://api.rubyonrails.org/classes/ActiveSupport/Callbacks/ClassMethods.html#method-i-skip_callback
|
|
52
|
+
controller_class.skip_before_action name, { :raise => false }.merge!(options)
|
|
72
53
|
end
|
|
73
54
|
|
|
74
55
|
def before_action(controller_class, *args, &block)
|
|
75
|
-
|
|
76
|
-
controller_class.before_filter *args, &block
|
|
77
|
-
else
|
|
78
|
-
controller_class.before_action *args, &block
|
|
79
|
-
end
|
|
56
|
+
controller_class.before_action *args, &block
|
|
80
57
|
end
|
|
81
58
|
|
|
82
59
|
def around_action(controller_class, *args, &block)
|
|
83
|
-
|
|
84
|
-
controller_class.around_filter *args, &block
|
|
85
|
-
else
|
|
86
|
-
controller_class.around_action *args, &block
|
|
87
|
-
end
|
|
60
|
+
controller_class.around_action *args, &block
|
|
88
61
|
end
|
|
89
62
|
|
|
90
63
|
end
|
data/lib/consul/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: consul
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Henning Koch
|
|
8
|
-
|
|
9
|
-
bindir: bin
|
|
8
|
+
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2026-03-10 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: memoized
|
|
@@ -30,42 +29,42 @@ dependencies:
|
|
|
30
29
|
requirements:
|
|
31
30
|
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
32
|
+
version: '7.2'
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
39
|
+
version: '7.2'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: activesupport
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
44
|
- - ">="
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
46
|
+
version: '7.2'
|
|
48
47
|
type: :runtime
|
|
49
48
|
prerelease: false
|
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
50
|
requirements:
|
|
52
51
|
- - ">="
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
53
|
+
version: '7.2'
|
|
55
54
|
- !ruby/object:Gem::Dependency
|
|
56
55
|
name: railties
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
58
|
- - ">="
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
60
|
+
version: '7.2'
|
|
62
61
|
type: :runtime
|
|
63
62
|
prerelease: false
|
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
64
|
requirements:
|
|
66
65
|
- - ">="
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
67
|
+
version: '7.2'
|
|
69
68
|
- !ruby/object:Gem::Dependency
|
|
70
69
|
name: edge_rider
|
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,20 +85,15 @@ executables: []
|
|
|
86
85
|
extensions: []
|
|
87
86
|
extra_rdoc_files: []
|
|
88
87
|
files:
|
|
89
|
-
- ".github/workflows/test.yml"
|
|
90
88
|
- ".gitignore"
|
|
91
89
|
- ".ruby-version"
|
|
92
90
|
- CHANGELOG.md
|
|
93
|
-
- Gemfile
|
|
94
|
-
- Gemfile.
|
|
95
|
-
- Gemfile.
|
|
96
|
-
- Gemfile.
|
|
97
|
-
- Gemfile.
|
|
98
|
-
- Gemfile.
|
|
99
|
-
- Gemfile.7-0.lock
|
|
100
|
-
- Gemfile.7-1
|
|
101
|
-
- Gemfile.7-1.lock
|
|
102
|
-
- Gemfile.lock
|
|
91
|
+
- Gemfile.7-2
|
|
92
|
+
- Gemfile.7-2.lock
|
|
93
|
+
- Gemfile.8-0
|
|
94
|
+
- Gemfile.8-0.lock
|
|
95
|
+
- Gemfile.8-1
|
|
96
|
+
- Gemfile.8-1.lock
|
|
103
97
|
- LICENSE
|
|
104
98
|
- README.md
|
|
105
99
|
- Rakefile
|
|
@@ -122,7 +116,6 @@ metadata:
|
|
|
122
116
|
bug_tracker_uri: https://github.com/makandra/consul/issues
|
|
123
117
|
changelog_uri: https://github.com/makandra/consul/blob/master/CHANGELOG.md
|
|
124
118
|
rubygems_mfa_required: 'true'
|
|
125
|
-
post_install_message:
|
|
126
119
|
rdoc_options: []
|
|
127
120
|
require_paths:
|
|
128
121
|
- lib
|
|
@@ -130,15 +123,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
130
123
|
requirements:
|
|
131
124
|
- - ">="
|
|
132
125
|
- !ruby/object:Gem::Version
|
|
133
|
-
version:
|
|
126
|
+
version: 3.0.0
|
|
134
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
128
|
requirements:
|
|
136
129
|
- - ">="
|
|
137
130
|
- !ruby/object:Gem::Version
|
|
138
131
|
version: '0'
|
|
139
132
|
requirements: []
|
|
140
|
-
rubygems_version: 3.
|
|
141
|
-
signing_key:
|
|
133
|
+
rubygems_version: 3.6.2
|
|
142
134
|
specification_version: 4
|
|
143
135
|
summary: A scope-based authorization solution for Ruby on Rails.
|
|
144
136
|
test_files: []
|
data/.github/workflows/test.yml
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Tests
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- master
|
|
7
|
-
pull_request:
|
|
8
|
-
branches:
|
|
9
|
-
- master
|
|
10
|
-
jobs:
|
|
11
|
-
test:
|
|
12
|
-
runs-on: ubuntu-20.04
|
|
13
|
-
strategy:
|
|
14
|
-
fail-fast: false
|
|
15
|
-
matrix:
|
|
16
|
-
include:
|
|
17
|
-
- ruby: 2.5.3
|
|
18
|
-
gemfile: Gemfile.5-2
|
|
19
|
-
- ruby: 2.5.3
|
|
20
|
-
gemfile: Gemfile.6-1
|
|
21
|
-
- ruby: 2.7.3
|
|
22
|
-
gemfile: Gemfile.6-1
|
|
23
|
-
- ruby: 2.7.3
|
|
24
|
-
gemfile: Gemfile.7-0
|
|
25
|
-
- ruby: 3.2.0
|
|
26
|
-
gemfile: Gemfile.6-1
|
|
27
|
-
- ruby: 3.2.0
|
|
28
|
-
gemfile: Gemfile.7-0
|
|
29
|
-
- ruby: 3.3.4
|
|
30
|
-
gemfile: Gemfile.7-1
|
|
31
|
-
env:
|
|
32
|
-
BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
|
|
33
|
-
steps:
|
|
34
|
-
- uses: actions/checkout@v2
|
|
35
|
-
- name: Install ruby
|
|
36
|
-
uses: ruby/setup-ruby@v1
|
|
37
|
-
with:
|
|
38
|
-
ruby-version: "${{ matrix.ruby }}"
|
|
39
|
-
- name: Bundle
|
|
40
|
-
run: |
|
|
41
|
-
gem install bundler:1.17.3
|
|
42
|
-
bundle install --no-deployment
|
|
43
|
-
- name: Run tests
|
|
44
|
-
run: bundle exec rspec
|
data/Gemfile
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Gemfile.7-1
|
data/Gemfile.5-2
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
# Runtime dependencies
|
|
4
|
-
gem 'railties', '>= 3.2'
|
|
5
|
-
gem 'assignable_values', '>= 0.18.0'
|
|
6
|
-
|
|
7
|
-
# Development dependencies
|
|
8
|
-
gem 'rspec'
|
|
9
|
-
gem 'rspec-rails'
|
|
10
|
-
gem 'rspec_candy'
|
|
11
|
-
gem 'shoulda-matchers'
|
|
12
|
-
gem 'sqlite3'
|
|
13
|
-
gem 'database_cleaner'
|
|
14
|
-
gem 'gemika', '>= 0.8.1'
|
|
15
|
-
gem 'byebug'
|
|
16
|
-
|
|
17
|
-
# Gem under test
|
|
18
|
-
gem 'consul', :path => '.'
|
data/Gemfile.5-2.lock
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
consul (1.3.2)
|
|
5
|
-
activerecord (>= 3.2)
|
|
6
|
-
activesupport (>= 3.2)
|
|
7
|
-
edge_rider (>= 0.3.0)
|
|
8
|
-
memoized (>= 1.0.2)
|
|
9
|
-
railties (>= 3.2)
|
|
10
|
-
|
|
11
|
-
GEM
|
|
12
|
-
remote: https://rubygems.org/
|
|
13
|
-
specs:
|
|
14
|
-
actionpack (5.2.2)
|
|
15
|
-
actionview (= 5.2.2)
|
|
16
|
-
activesupport (= 5.2.2)
|
|
17
|
-
rack (~> 2.0)
|
|
18
|
-
rack-test (>= 0.6.3)
|
|
19
|
-
rails-dom-testing (~> 2.0)
|
|
20
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
21
|
-
actionview (5.2.2)
|
|
22
|
-
activesupport (= 5.2.2)
|
|
23
|
-
builder (~> 3.1)
|
|
24
|
-
erubi (~> 1.4)
|
|
25
|
-
rails-dom-testing (~> 2.0)
|
|
26
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
|
27
|
-
activemodel (5.2.2)
|
|
28
|
-
activesupport (= 5.2.2)
|
|
29
|
-
activerecord (5.2.2)
|
|
30
|
-
activemodel (= 5.2.2)
|
|
31
|
-
activesupport (= 5.2.2)
|
|
32
|
-
arel (>= 9.0)
|
|
33
|
-
activesupport (5.2.2)
|
|
34
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
35
|
-
i18n (>= 0.7, < 2)
|
|
36
|
-
minitest (~> 5.1)
|
|
37
|
-
tzinfo (~> 1.1)
|
|
38
|
-
arel (9.0.0)
|
|
39
|
-
assignable_values (0.18.0)
|
|
40
|
-
activerecord (>= 2.3)
|
|
41
|
-
builder (3.2.3)
|
|
42
|
-
byebug (11.0.1)
|
|
43
|
-
concurrent-ruby (1.1.4)
|
|
44
|
-
crass (1.0.4)
|
|
45
|
-
database_cleaner (1.7.0)
|
|
46
|
-
diff-lcs (1.3)
|
|
47
|
-
edge_rider (2.1.1)
|
|
48
|
-
activerecord (>= 3.2)
|
|
49
|
-
erubi (1.8.0)
|
|
50
|
-
gemika (0.8.1)
|
|
51
|
-
i18n (1.5.3)
|
|
52
|
-
concurrent-ruby (~> 1.0)
|
|
53
|
-
loofah (2.2.3)
|
|
54
|
-
crass (~> 1.0.2)
|
|
55
|
-
nokogiri (>= 1.5.9)
|
|
56
|
-
memoized (1.1.1)
|
|
57
|
-
method_source (0.9.2)
|
|
58
|
-
mini_portile2 (2.4.0)
|
|
59
|
-
minitest (5.11.3)
|
|
60
|
-
nokogiri (1.10.1)
|
|
61
|
-
mini_portile2 (~> 2.4.0)
|
|
62
|
-
rack (2.0.6)
|
|
63
|
-
rack-test (1.1.0)
|
|
64
|
-
rack (>= 1.0, < 3)
|
|
65
|
-
rails-dom-testing (2.0.3)
|
|
66
|
-
activesupport (>= 4.2.0)
|
|
67
|
-
nokogiri (>= 1.6)
|
|
68
|
-
rails-html-sanitizer (1.0.4)
|
|
69
|
-
loofah (~> 2.2, >= 2.2.2)
|
|
70
|
-
railties (5.2.2)
|
|
71
|
-
actionpack (= 5.2.2)
|
|
72
|
-
activesupport (= 5.2.2)
|
|
73
|
-
method_source
|
|
74
|
-
rake (>= 0.8.7)
|
|
75
|
-
thor (>= 0.19.0, < 2.0)
|
|
76
|
-
rake (12.3.2)
|
|
77
|
-
rspec (3.6.0)
|
|
78
|
-
rspec-core (~> 3.6.0)
|
|
79
|
-
rspec-expectations (~> 3.6.0)
|
|
80
|
-
rspec-mocks (~> 3.6.0)
|
|
81
|
-
rspec-core (3.6.0)
|
|
82
|
-
rspec-support (~> 3.6.0)
|
|
83
|
-
rspec-expectations (3.6.0)
|
|
84
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
85
|
-
rspec-support (~> 3.6.0)
|
|
86
|
-
rspec-mocks (3.6.0)
|
|
87
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
88
|
-
rspec-support (~> 3.6.0)
|
|
89
|
-
rspec-rails (3.6.0)
|
|
90
|
-
actionpack (>= 3.0)
|
|
91
|
-
activesupport (>= 3.0)
|
|
92
|
-
railties (>= 3.0)
|
|
93
|
-
rspec-core (~> 3.6.0)
|
|
94
|
-
rspec-expectations (~> 3.6.0)
|
|
95
|
-
rspec-mocks (~> 3.6.0)
|
|
96
|
-
rspec-support (~> 3.6.0)
|
|
97
|
-
rspec-support (3.6.0)
|
|
98
|
-
rspec_candy (0.4.1)
|
|
99
|
-
rspec
|
|
100
|
-
sneaky-save
|
|
101
|
-
shoulda-matchers (3.1.1)
|
|
102
|
-
activesupport (>= 4.0.0)
|
|
103
|
-
sneaky-save (0.1.2)
|
|
104
|
-
activerecord (>= 3.2.0)
|
|
105
|
-
sqlite3 (1.3.13)
|
|
106
|
-
thor (0.20.3)
|
|
107
|
-
thread_safe (0.3.6)
|
|
108
|
-
tzinfo (1.2.5)
|
|
109
|
-
thread_safe (~> 0.1)
|
|
110
|
-
|
|
111
|
-
PLATFORMS
|
|
112
|
-
ruby
|
|
113
|
-
|
|
114
|
-
DEPENDENCIES
|
|
115
|
-
assignable_values (>= 0.18.0)
|
|
116
|
-
byebug
|
|
117
|
-
consul!
|
|
118
|
-
database_cleaner
|
|
119
|
-
gemika (>= 0.8.1)
|
|
120
|
-
railties (>= 3.2)
|
|
121
|
-
rspec
|
|
122
|
-
rspec-rails
|
|
123
|
-
rspec_candy
|
|
124
|
-
shoulda-matchers
|
|
125
|
-
sqlite3
|
|
126
|
-
|
|
127
|
-
BUNDLED WITH
|
|
128
|
-
1.17.3
|
data/Gemfile.6-1.lock
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
consul (1.3.2)
|
|
5
|
-
activerecord (>= 3.2)
|
|
6
|
-
activesupport (>= 3.2)
|
|
7
|
-
edge_rider (>= 0.3.0)
|
|
8
|
-
memoized (>= 1.0.2)
|
|
9
|
-
railties (>= 3.2)
|
|
10
|
-
|
|
11
|
-
GEM
|
|
12
|
-
remote: https://rubygems.org/
|
|
13
|
-
specs:
|
|
14
|
-
actionpack (6.1.3)
|
|
15
|
-
actionview (= 6.1.3)
|
|
16
|
-
activesupport (= 6.1.3)
|
|
17
|
-
rack (~> 2.0, >= 2.0.9)
|
|
18
|
-
rack-test (>= 0.6.3)
|
|
19
|
-
rails-dom-testing (~> 2.0)
|
|
20
|
-
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
21
|
-
actionview (6.1.3)
|
|
22
|
-
activesupport (= 6.1.3)
|
|
23
|
-
builder (~> 3.1)
|
|
24
|
-
erubi (~> 1.4)
|
|
25
|
-
rails-dom-testing (~> 2.0)
|
|
26
|
-
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
27
|
-
activemodel (6.1.3)
|
|
28
|
-
activesupport (= 6.1.3)
|
|
29
|
-
activerecord (6.1.3)
|
|
30
|
-
activemodel (= 6.1.3)
|
|
31
|
-
activesupport (= 6.1.3)
|
|
32
|
-
activesupport (6.1.3)
|
|
33
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
34
|
-
i18n (>= 1.6, < 2)
|
|
35
|
-
minitest (>= 5.1)
|
|
36
|
-
tzinfo (~> 2.0)
|
|
37
|
-
zeitwerk (~> 2.3)
|
|
38
|
-
assignable_values (0.18.0)
|
|
39
|
-
activerecord (>= 2.3)
|
|
40
|
-
builder (3.2.4)
|
|
41
|
-
concurrent-ruby (1.2.0)
|
|
42
|
-
crass (1.0.6)
|
|
43
|
-
database_cleaner (1.7.0)
|
|
44
|
-
diff-lcs (1.3)
|
|
45
|
-
edge_rider (2.1.1)
|
|
46
|
-
activerecord (>= 3.2)
|
|
47
|
-
erubi (1.10.0)
|
|
48
|
-
gemika (0.8.1)
|
|
49
|
-
i18n (1.12.0)
|
|
50
|
-
concurrent-ruby (~> 1.0)
|
|
51
|
-
loofah (2.9.0)
|
|
52
|
-
crass (~> 1.0.2)
|
|
53
|
-
nokogiri (>= 1.5.9)
|
|
54
|
-
memoized (1.1.1)
|
|
55
|
-
method_source (1.0.0)
|
|
56
|
-
mini_portile2 (2.6.1)
|
|
57
|
-
minitest (5.15.0)
|
|
58
|
-
nokogiri (1.12.5)
|
|
59
|
-
mini_portile2 (~> 2.6.1)
|
|
60
|
-
racc (~> 1.4)
|
|
61
|
-
racc (1.6.2)
|
|
62
|
-
rack (2.2.3)
|
|
63
|
-
rack-test (1.1.0)
|
|
64
|
-
rack (>= 1.0, < 3)
|
|
65
|
-
rails-dom-testing (2.0.3)
|
|
66
|
-
activesupport (>= 4.2.0)
|
|
67
|
-
nokogiri (>= 1.6)
|
|
68
|
-
rails-html-sanitizer (1.3.0)
|
|
69
|
-
loofah (~> 2.3)
|
|
70
|
-
railties (6.1.3)
|
|
71
|
-
actionpack (= 6.1.3)
|
|
72
|
-
activesupport (= 6.1.3)
|
|
73
|
-
method_source
|
|
74
|
-
rake (>= 0.8.7)
|
|
75
|
-
thor (~> 1.0)
|
|
76
|
-
rake (13.0.3)
|
|
77
|
-
rspec (3.6.0)
|
|
78
|
-
rspec-core (~> 3.6.0)
|
|
79
|
-
rspec-expectations (~> 3.6.0)
|
|
80
|
-
rspec-mocks (~> 3.6.0)
|
|
81
|
-
rspec-core (3.6.0)
|
|
82
|
-
rspec-support (~> 3.6.0)
|
|
83
|
-
rspec-expectations (3.6.0)
|
|
84
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
85
|
-
rspec-support (~> 3.6.0)
|
|
86
|
-
rspec-mocks (3.6.0)
|
|
87
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
88
|
-
rspec-support (~> 3.6.0)
|
|
89
|
-
rspec-rails (3.6.0)
|
|
90
|
-
actionpack (>= 3.0)
|
|
91
|
-
activesupport (>= 3.0)
|
|
92
|
-
railties (>= 3.0)
|
|
93
|
-
rspec-core (~> 3.6.0)
|
|
94
|
-
rspec-expectations (~> 3.6.0)
|
|
95
|
-
rspec-mocks (~> 3.6.0)
|
|
96
|
-
rspec-support (~> 3.6.0)
|
|
97
|
-
rspec-support (3.6.0)
|
|
98
|
-
rspec_candy (0.4.1)
|
|
99
|
-
rspec
|
|
100
|
-
sneaky-save
|
|
101
|
-
shoulda-matchers (3.1.1)
|
|
102
|
-
activesupport (>= 4.0.0)
|
|
103
|
-
sneaky-save (0.1.2)
|
|
104
|
-
activerecord (>= 3.2.0)
|
|
105
|
-
sqlite3 (1.4.2)
|
|
106
|
-
thor (1.1.0)
|
|
107
|
-
tzinfo (2.0.5)
|
|
108
|
-
concurrent-ruby (~> 1.0)
|
|
109
|
-
zeitwerk (2.6.6)
|
|
110
|
-
|
|
111
|
-
PLATFORMS
|
|
112
|
-
ruby
|
|
113
|
-
|
|
114
|
-
DEPENDENCIES
|
|
115
|
-
assignable_values
|
|
116
|
-
consul!
|
|
117
|
-
database_cleaner
|
|
118
|
-
gemika (>= 0.8.1)
|
|
119
|
-
railties (>= 3.2)
|
|
120
|
-
rspec
|
|
121
|
-
rspec-rails
|
|
122
|
-
rspec_candy
|
|
123
|
-
shoulda-matchers
|
|
124
|
-
sqlite3
|
|
125
|
-
|
|
126
|
-
BUNDLED WITH
|
|
127
|
-
2.2.15
|