scopable 1.1.1 → 1.1.3
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/.codeclimate.yml +2 -6
- data/.rubocop.yml +1157 -1
- data/Gemfile +4 -1
- data/{LICENSE.txt → LICENSE} +0 -0
- data/README.md +9 -8
- data/lib/scopable/version.rb +1 -1
- data/lib/scopable.rb +3 -2
- data/scopable.gemspec +4 -3
- data/spec/scopable_spec.rb +13 -3
- metadata +14 -8
data/Gemfile
CHANGED
data/{LICENSE.txt → LICENSE}
RENAMED
File without changes
|
data/README.md
CHANGED
@@ -1,11 +1,12 @@
|
|
1
|
+
[](https://rubygems.org/gems/scopable)
|
2
|
+
[](https://travis-ci.org/haggen/scopable)
|
3
|
+
[](https://codeclimate.com/github/haggen/scopable)
|
4
|
+
[](https://codeclimate.com/github/haggen/scopable/coverage)
|
5
|
+
|
1
6
|
# Scopable
|
2
7
|
|
3
8
|
> Apply or skip model scopes based on options and request parameters.
|
4
9
|
|
5
|
-
[](https://codeclimate.com/github/haggen/scopable)
|
6
|
-
[](https://codeclimate.com/github/haggen/scopable/coverage)
|
7
|
-
[](https://travis-ci.org/haggen/scopable)
|
8
|
-
|
9
10
|
## Installation
|
10
11
|
|
11
12
|
Add this line to your application's Gemfile:
|
@@ -116,6 +117,10 @@ Key | Description
|
|
116
117
|
`:except` | The scope will be applied to all actions except these.
|
117
118
|
`&block` | Block will be called in the context of the action and will be given the current relation and evaluated value.
|
118
119
|
|
120
|
+
## License
|
121
|
+
|
122
|
+
See [LICENSE](LICENSE).
|
123
|
+
|
119
124
|
## Contributing
|
120
125
|
|
121
126
|
1. Fork it ( https://github.com/[my-github-username]/scopable/fork )
|
@@ -123,7 +128,3 @@ Key | Description
|
|
123
128
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
124
129
|
4. Push to the branch (`git push origin my-new-feature`)
|
125
130
|
5. Create a new Pull Request
|
126
|
-
|
127
|
-
## License
|
128
|
-
|
129
|
-
See [LICENSE.txt](LICENSE.txt).
|
data/lib/scopable/version.rb
CHANGED
data/lib/scopable.rb
CHANGED
@@ -60,10 +60,11 @@ module Scopable
|
|
60
60
|
|
61
61
|
# For advanced scopes that require more than a method call on the model.
|
62
62
|
# When a block is given, it is ran no matter the scope value.
|
63
|
-
# The proc will be given the model being scoped and the resulting value from the
|
63
|
+
# The proc will be given the model being scoped and the resulting value from the
|
64
|
+
# options above, and it'll be executed inside the context of the controller's action.
|
64
65
|
block = options[:block]
|
65
66
|
|
66
|
-
if block.nil? && value.
|
67
|
+
if block.nil? && value.blank?
|
67
68
|
next relation
|
68
69
|
end
|
69
70
|
|
data/scopable.gemspec
CHANGED
@@ -18,10 +18,11 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
|
21
|
+
spec.required_ruby_version = '>= 2.2.2'
|
22
|
+
|
23
|
+
spec.add_runtime_dependency 'activesupport', '>= 3.2', '<= 5.0.0'
|
23
24
|
|
24
25
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
25
26
|
spec.add_development_dependency 'rake', '~> 10.0'
|
26
|
-
spec.add_development_dependency 'rspec'
|
27
|
+
spec.add_development_dependency 'rspec', '~> 3.5'
|
27
28
|
end
|
data/spec/scopable_spec.rb
CHANGED
@@ -18,7 +18,7 @@ describe Scopable do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
#
|
21
|
-
# Test single scope, no options
|
21
|
+
# Test single scope, no options.
|
22
22
|
#
|
23
23
|
describe 'with one optional scope' do
|
24
24
|
let :controller do
|
@@ -27,7 +27,7 @@ describe Scopable do
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
context '
|
30
|
+
context 'with the parameter absent' do
|
31
31
|
subject :action do
|
32
32
|
controller.new
|
33
33
|
end
|
@@ -37,7 +37,7 @@ describe Scopable do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
context 'with
|
40
|
+
context 'with the parameter present' do
|
41
41
|
subject :action do
|
42
42
|
controller.new(nil, search: 'test')
|
43
43
|
end
|
@@ -46,6 +46,16 @@ describe Scopable do
|
|
46
46
|
expect(action.relation.scopes).to include(search: 'test')
|
47
47
|
end
|
48
48
|
end
|
49
|
+
|
50
|
+
context 'with the parameter present but blank' do
|
51
|
+
subject :action do
|
52
|
+
controller.new(nil, search: '')
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should skip the scope' do
|
56
|
+
expect(action.relation.scopes).to be_empty
|
57
|
+
end
|
58
|
+
end
|
49
59
|
end
|
50
60
|
|
51
61
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scopable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arthur Corenzan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -17,6 +17,9 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.2'
|
20
|
+
- - "<="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 5.0.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -24,6 +27,9 @@ dependencies:
|
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '3.2'
|
30
|
+
- - "<="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 5.0.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: bundler
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +62,16 @@ dependencies:
|
|
56
62
|
name: rspec
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- - "
|
65
|
+
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
67
|
+
version: '3.5'
|
62
68
|
type: :development
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
|
-
- - "
|
72
|
+
- - "~>"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
74
|
+
version: '3.5'
|
69
75
|
description:
|
70
76
|
email:
|
71
77
|
- arthur@corenzan.com
|
@@ -79,7 +85,7 @@ files:
|
|
79
85
|
- ".rubocop.yml"
|
80
86
|
- ".travis.yml"
|
81
87
|
- Gemfile
|
82
|
-
- LICENSE
|
88
|
+
- LICENSE
|
83
89
|
- README.md
|
84
90
|
- Rakefile
|
85
91
|
- lib/scopable.rb
|
@@ -101,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
107
|
requirements:
|
102
108
|
- - ">="
|
103
109
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
110
|
+
version: 2.2.2
|
105
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
112
|
requirements:
|
107
113
|
- - ">="
|