attribute-filters 1.1.0 → 1.1.2
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.
- data.tar.gz.sig +0 -0
- data/ChangeLog +45 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +40 -39
- data/Manifest.txt +2 -0
- data/README.md +13 -10
- data/Rakefile +3 -1
- data/attribute-filters.gemspec +9 -3
- data/docs/HISTORY +48 -2
- data/docs/TODO +11 -0
- data/lib/attribute-filters.rb +6 -1
- data/lib/attribute-filters/active_model_insert.rb +38 -0
- data/lib/attribute-filters/dsl_filters.rb +24 -29
- data/lib/attribute-filters/helpers.rb +26 -0
- data/lib/attribute-filters/railtie.rb +2 -24
- data/lib/attribute-filters/version.rb +1 -1
- data/spec/attribute-filters_spec.rb +33 -2
- data/spec/spec_helper.rb +69 -0
- metadata +49 -25
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
|
Binary file
|
data/ChangeLog
CHANGED
|
@@ -1,3 +1,48 @@
|
|
|
1
|
+
commit 0235e6184da1ca9ef4264a772032c820d76fec19
|
|
2
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
|
3
|
+
Date: Sun Jul 1 00:42:03 2012 +0200
|
|
4
|
+
|
|
5
|
+
Release 1.1.2
|
|
6
|
+
|
|
7
|
+
commit dacfbe8987f3405386279884fd87f702ddc18434
|
|
8
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
|
9
|
+
Date: Sat Jun 30 23:44:55 2012 +0200
|
|
10
|
+
|
|
11
|
+
Major clean-ups in attributes selecting and accessing methods (used send instead of method)
|
|
12
|
+
|
|
13
|
+
Flags parsing moved to ActiveModel::AttributeFilters::AttributeFiltersHelpers as module function;
|
|
14
|
+
SuperModel based test model passes specification test.
|
|
15
|
+
|
|
16
|
+
commit c34ce901a0fe2c00dbba7dfd4f900fbe4a457a18
|
|
17
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
|
18
|
+
Date: Fri Jun 29 11:22:39 2012 +0200
|
|
19
|
+
|
|
20
|
+
Prepared for RSpec, added the supermodel gem
|
|
21
|
+
|
|
22
|
+
commit 91d46ba829c987a3d93f027a75cb259d7b50dff8
|
|
23
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
|
24
|
+
Date: Fri Jun 29 11:22:06 2012 +0200
|
|
25
|
+
|
|
26
|
+
Removed trailing spaces
|
|
27
|
+
|
|
28
|
+
commit 959e2b53cb96e8501c3707551cf95318128c5b0b
|
|
29
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
|
30
|
+
Date: Fri Jun 29 11:19:26 2012 +0200
|
|
31
|
+
|
|
32
|
+
AttributeFilters module is now loaded even if there's no full Rails stack, just the ActiveModel
|
|
33
|
+
|
|
34
|
+
commit 05098f61691ad0937d4ee97cb38bf64af760be82
|
|
35
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
|
36
|
+
Date: Fri Jun 29 02:53:47 2012 +0200
|
|
37
|
+
|
|
38
|
+
Typo fixed in README
|
|
39
|
+
|
|
40
|
+
commit 04328cb9a4bdcce7d70faab8b952ebe673e6e743
|
|
41
|
+
Author: Paweł Wilk <siefca@gnu.org>
|
|
42
|
+
Date: Fri Jun 29 02:41:56 2012 +0200
|
|
43
|
+
|
|
44
|
+
Release 1.1.0
|
|
45
|
+
|
|
1
46
|
commit 6b5aaf23fe3cb6926dac83f733544af16d3b726b
|
|
2
47
|
Author: Paweł Wilk <siefca@gnu.org>
|
|
3
48
|
Date: Fri Jun 29 02:13:21 2012 +0200
|
data/Gemfile
CHANGED
|
@@ -12,6 +12,8 @@ gem "rspec", ">=2.6.0", :group => [:development, :test]
|
|
|
12
12
|
gem "yard", ">=0.7.2", :group => [:development, :test]
|
|
13
13
|
gem "rdoc", ">=3.8.0", :group => [:development, :test]
|
|
14
14
|
gem "redcarpet", ">=2.1.0", :group => [:development, :test]
|
|
15
|
+
gem "supermodel", ">=0.1.6", :group => [:development, :test]
|
|
16
|
+
gem "activerecord", ">=3.0", :group => [:development, :test]
|
|
15
17
|
gem "bundler", ">=1.0.10", :group => [:development, :test]
|
|
16
18
|
gem "hoe-bundler", ">=1.1.0", :group => [:development, :test]
|
|
17
19
|
gem "hoe-gemspec", ">=1.0.0", :group => [:development, :test]
|
data/Gemfile.lock
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
rack
|
|
12
|
-
rack-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
i18n (~> 0.
|
|
19
|
-
|
|
20
|
-
|
|
4
|
+
abstract (1.0.0)
|
|
5
|
+
actionpack (3.0.15)
|
|
6
|
+
activemodel (= 3.0.15)
|
|
7
|
+
activesupport (= 3.0.15)
|
|
8
|
+
builder (~> 2.1.2)
|
|
9
|
+
erubis (~> 2.6.6)
|
|
10
|
+
i18n (~> 0.5.0)
|
|
11
|
+
rack (~> 1.2.5)
|
|
12
|
+
rack-mount (~> 0.6.14)
|
|
13
|
+
rack-test (~> 0.5.7)
|
|
14
|
+
tzinfo (~> 0.3.23)
|
|
15
|
+
activemodel (3.0.15)
|
|
16
|
+
activesupport (= 3.0.15)
|
|
17
|
+
builder (~> 2.1.2)
|
|
18
|
+
i18n (~> 0.5.0)
|
|
19
|
+
activerecord (3.0.15)
|
|
20
|
+
activemodel (= 3.0.15)
|
|
21
|
+
activesupport (= 3.0.15)
|
|
22
|
+
arel (~> 2.0.10)
|
|
23
|
+
tzinfo (~> 0.3.23)
|
|
24
|
+
activesupport (3.0.15)
|
|
25
|
+
arel (2.0.10)
|
|
26
|
+
builder (2.1.2)
|
|
21
27
|
diff-lcs (1.1.3)
|
|
22
|
-
erubis (2.
|
|
23
|
-
|
|
28
|
+
erubis (2.6.6)
|
|
29
|
+
abstract (>= 1.0.0)
|
|
24
30
|
hoe (2.16.1)
|
|
25
31
|
rake (~> 0.8)
|
|
26
32
|
hoe-bundler (1.1.0)
|
|
@@ -29,24 +35,19 @@ GEM
|
|
|
29
35
|
hoe (>= 2.2.0)
|
|
30
36
|
hoe-yard (0.1.2)
|
|
31
37
|
yard (>= 0.2.3.1)
|
|
32
|
-
i18n (0.
|
|
33
|
-
journey (1.0.4)
|
|
38
|
+
i18n (0.5.0)
|
|
34
39
|
json (1.7.3)
|
|
35
|
-
|
|
36
|
-
rack (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
rack-ssl (1.3.2)
|
|
40
|
-
rack
|
|
41
|
-
rack-test (0.6.1)
|
|
40
|
+
rack (1.2.5)
|
|
41
|
+
rack-mount (0.6.14)
|
|
42
|
+
rack (>= 1.0.0)
|
|
43
|
+
rack-test (0.5.7)
|
|
42
44
|
rack (>= 1.0)
|
|
43
|
-
railties (3.
|
|
44
|
-
actionpack (= 3.
|
|
45
|
-
activesupport (= 3.
|
|
46
|
-
rack-ssl (~> 1.3.2)
|
|
45
|
+
railties (3.0.15)
|
|
46
|
+
actionpack (= 3.0.15)
|
|
47
|
+
activesupport (= 3.0.15)
|
|
47
48
|
rake (>= 0.8.7)
|
|
48
49
|
rdoc (~> 3.4)
|
|
49
|
-
thor (
|
|
50
|
+
thor (~> 0.14.4)
|
|
50
51
|
rake (0.9.2.2)
|
|
51
52
|
rdoc (3.12)
|
|
52
53
|
json (~> 1.4)
|
|
@@ -59,12 +60,10 @@ GEM
|
|
|
59
60
|
rspec-expectations (2.10.0)
|
|
60
61
|
diff-lcs (~> 1.1.3)
|
|
61
62
|
rspec-mocks (2.10.1)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
thor (0.15.3)
|
|
67
|
-
tilt (1.3.3)
|
|
63
|
+
supermodel (0.1.6)
|
|
64
|
+
activemodel (~> 3.0.0)
|
|
65
|
+
thor (0.14.6)
|
|
66
|
+
tzinfo (0.3.33)
|
|
68
67
|
yard (0.8.2.1)
|
|
69
68
|
|
|
70
69
|
PLATFORMS
|
|
@@ -72,6 +71,7 @@ PLATFORMS
|
|
|
72
71
|
|
|
73
72
|
DEPENDENCIES
|
|
74
73
|
activemodel (~> 3.0)
|
|
74
|
+
activerecord (>= 3.0)
|
|
75
75
|
bundler (>= 1.0.10)
|
|
76
76
|
hoe (~> 2.16)
|
|
77
77
|
hoe-bundler (>= 1.1.0)
|
|
@@ -81,4 +81,5 @@ DEPENDENCIES
|
|
|
81
81
|
rdoc (>= 3.8.0)
|
|
82
82
|
redcarpet (>= 2.1.0)
|
|
83
83
|
rspec (>= 2.6.0)
|
|
84
|
+
supermodel (>= 0.1.6)
|
|
84
85
|
yard (>= 0.7.2)
|
data/Manifest.txt
CHANGED
|
@@ -18,11 +18,13 @@ docs/rdoc.css
|
|
|
18
18
|
docs/yard-tpl/default/fulldoc/html/css/common.css
|
|
19
19
|
init.rb
|
|
20
20
|
lib/attribute-filters.rb
|
|
21
|
+
lib/attribute-filters/active_model_insert.rb
|
|
21
22
|
lib/attribute-filters/attribute_set.rb
|
|
22
23
|
lib/attribute-filters/attribute_set_query.rb
|
|
23
24
|
lib/attribute-filters/common_filters.rb
|
|
24
25
|
lib/attribute-filters/dsl_filters.rb
|
|
25
26
|
lib/attribute-filters/dsl_sets.rb
|
|
27
|
+
lib/attribute-filters/helpers.rb
|
|
26
28
|
lib/attribute-filters/railtie.rb
|
|
27
29
|
lib/attribute-filters/version.rb
|
|
28
30
|
spec/attribute-filters_spec.rb
|
data/README.md
CHANGED
|
@@ -76,20 +76,20 @@ class User < ActiveRecord::Base
|
|
|
76
76
|
|
|
77
77
|
attributes_that should_be_stripped: [ :username, :email, :real_name ]
|
|
78
78
|
attributes_that should_be_downcased: [ :username, :email ]
|
|
79
|
-
attributes_that should_be_capitalized: [ :
|
|
79
|
+
attributes_that should_be_capitalized: [ :real_name ]
|
|
80
80
|
|
|
81
81
|
before_validation :strip_names
|
|
82
82
|
before_validation :downcase_names
|
|
83
83
|
before_validation :capitalize_names
|
|
84
84
|
|
|
85
85
|
def downcase_names
|
|
86
|
-
filter_attributes_that
|
|
86
|
+
filter_attributes_that :should_be_downcased do |atr|
|
|
87
87
|
atr.mb_chars.downcase.to_s
|
|
88
88
|
end
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
def capitalize_names
|
|
92
|
-
filter_attributes_that
|
|
92
|
+
filter_attributes_that :should_be_capitalized do |atr|
|
|
93
93
|
atr.mb_chars.split(' ').map { |n| n.capitalize }.join(' ')
|
|
94
94
|
end
|
|
95
95
|
end
|
|
@@ -101,10 +101,13 @@ class User < ActiveRecord::Base
|
|
|
101
101
|
end
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
Attributes that
|
|
105
|
-
and then filtered with
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
Attributes that need to be altered may be simply added to the attribute sets
|
|
105
|
+
that you define and then filtered with generic methods. You can use
|
|
106
|
+
these methods in all your models if you wish.
|
|
107
|
+
|
|
108
|
+
The last action can be performed by putting the filtering methods into
|
|
109
|
+
some base class that models inherit form or (better) into your own
|
|
110
|
+
handy module that is included in your models.
|
|
108
111
|
|
|
109
112
|
Usage
|
|
110
113
|
-----
|
|
@@ -184,8 +187,8 @@ Specs
|
|
|
184
187
|
|
|
185
188
|
You can run RSpec examples both with
|
|
186
189
|
|
|
187
|
-
* `rake spec` or just `rake`
|
|
188
|
-
* run a test file directly, e.g. `ruby -
|
|
190
|
+
* `bundle exec rake spec` or just `bundle exec rake`
|
|
191
|
+
* run a test file directly, e.g. `ruby -S rspec spec/attribute-filters_spec.rb -Ispec:lib`
|
|
189
192
|
|
|
190
193
|
Common rake tasks
|
|
191
194
|
-----------------
|
|
@@ -210,7 +213,7 @@ Copyright (c) 2012 by Paweł Wilk.
|
|
|
210
213
|
|
|
211
214
|
attribute-filters is copyrighted software owned by Paweł Wilk (pw@gnu.org).
|
|
212
215
|
You may redistribute and/or modify this software as long as you
|
|
213
|
-
comply with either the terms of the LGPL (see {file:docs/LGPL}),
|
|
216
|
+
comply with either the terms of the LGPL (see {file:docs/LGPL-LICENSE}),
|
|
214
217
|
or Ruby's license (see {file:docs/COPYING}).
|
|
215
218
|
|
|
216
219
|
THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS
|
data/Rakefile
CHANGED
|
@@ -15,7 +15,7 @@ require "attribute-filters"
|
|
|
15
15
|
require 'attribute-filters/version'
|
|
16
16
|
require 'hoe'
|
|
17
17
|
|
|
18
|
-
task :default => [:
|
|
18
|
+
task :default => [:spec]
|
|
19
19
|
|
|
20
20
|
desc "install by setup.rb"
|
|
21
21
|
task :install do
|
|
@@ -48,6 +48,8 @@ Hoe.spec 'attribute-filters' do
|
|
|
48
48
|
['yard', '>= 0.7.2'] <<
|
|
49
49
|
['rdoc', '>= 3.8.0'] <<
|
|
50
50
|
['redcarpet', '>= 2.1.0'] <<
|
|
51
|
+
['supermodel', '>= 0.1.6'] <<
|
|
52
|
+
['activerecord', '>= 3.0'] <<
|
|
51
53
|
['bundler', '>= 1.0.10'] <<
|
|
52
54
|
['hoe-bundler', '>= 1.1.0'] <<
|
|
53
55
|
['hoe-gemspec', '>= 1.0.0']
|
data/attribute-filters.gemspec
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = "attribute-filters"
|
|
5
|
-
s.version = "1.1.
|
|
5
|
+
s.version = "1.1.2.20120701004000"
|
|
6
6
|
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
8
8
|
s.authors = ["Pawe\u{142} Wilk"]
|
|
9
9
|
s.cert_chain = ["/Users/siefca/.gem/gem-public_cert.pem"]
|
|
10
|
-
s.date = "2012-06-
|
|
10
|
+
s.date = "2012-06-30"
|
|
11
11
|
s.description = "Concise way of filtering model attributes in Rails."
|
|
12
12
|
s.email = ["pw@gnu.org"]
|
|
13
13
|
s.extra_rdoc_files = ["Manifest.txt"]
|
|
14
|
-
s.files = [".rspec", ".yardopts", "ChangeLog", "Gemfile", "Gemfile.lock", "LGPL-LICENSE", "Manifest.txt", "README.md", "Rakefile", "attribute-filters.gemspec", "docs/COPYING", "docs/HISTORY", "docs/LEGAL", "docs/LGPL-LICENSE", "docs/TODO", "docs/USAGE", "docs/rdoc.css", "init.rb", "lib/attribute-filters.rb", "lib/attribute-filters/attribute_set.rb", "lib/attribute-filters/attribute_set_query.rb", "lib/attribute-filters/common_filters.rb", "lib/attribute-filters/dsl_filters.rb", "lib/attribute-filters/dsl_sets.rb", "lib/attribute-filters/railtie.rb", "lib/attribute-filters/version.rb", "spec/attribute-filters_spec.rb", "spec/spec_helper.rb", ".gemtest"]
|
|
14
|
+
s.files = [".rspec", ".yardopts", "ChangeLog", "Gemfile", "Gemfile.lock", "LGPL-LICENSE", "Manifest.txt", "README.md", "Rakefile", "attribute-filters.gemspec", "docs/COPYING", "docs/HISTORY", "docs/LEGAL", "docs/LGPL-LICENSE", "docs/TODO", "docs/USAGE", "docs/rdoc.css", "docs/yard-tpl/default/fulldoc/html/css/common.css", "init.rb", "lib/attribute-filters.rb", "lib/attribute-filters/active_model_insert.rb", "lib/attribute-filters/attribute_set.rb", "lib/attribute-filters/attribute_set_query.rb", "lib/attribute-filters/common_filters.rb", "lib/attribute-filters/dsl_filters.rb", "lib/attribute-filters/dsl_sets.rb", "lib/attribute-filters/helpers.rb", "lib/attribute-filters/railtie.rb", "lib/attribute-filters/version.rb", "spec/attribute-filters_spec.rb", "spec/spec_helper.rb", ".gemtest"]
|
|
15
15
|
s.homepage = "https://rubygems.org/gems/attribute-filters/"
|
|
16
16
|
s.rdoc_options = ["--title", "Attribute::Filters Documentation", "--quiet"]
|
|
17
17
|
s.require_paths = ["lib"]
|
|
@@ -31,6 +31,8 @@ Gem::Specification.new do |s|
|
|
|
31
31
|
s.add_development_dependency(%q<yard>, [">= 0.7.2"])
|
|
32
32
|
s.add_development_dependency(%q<rdoc>, [">= 3.8.0"])
|
|
33
33
|
s.add_development_dependency(%q<redcarpet>, [">= 2.1.0"])
|
|
34
|
+
s.add_development_dependency(%q<supermodel>, [">= 0.1.6"])
|
|
35
|
+
s.add_development_dependency(%q<activerecord>, [">= 3.0"])
|
|
34
36
|
s.add_development_dependency(%q<bundler>, [">= 1.0.10"])
|
|
35
37
|
s.add_development_dependency(%q<hoe-bundler>, [">= 1.1.0"])
|
|
36
38
|
s.add_development_dependency(%q<hoe-gemspec>, [">= 1.0.0"])
|
|
@@ -43,6 +45,8 @@ Gem::Specification.new do |s|
|
|
|
43
45
|
s.add_dependency(%q<yard>, [">= 0.7.2"])
|
|
44
46
|
s.add_dependency(%q<rdoc>, [">= 3.8.0"])
|
|
45
47
|
s.add_dependency(%q<redcarpet>, [">= 2.1.0"])
|
|
48
|
+
s.add_dependency(%q<supermodel>, [">= 0.1.6"])
|
|
49
|
+
s.add_dependency(%q<activerecord>, [">= 3.0"])
|
|
46
50
|
s.add_dependency(%q<bundler>, [">= 1.0.10"])
|
|
47
51
|
s.add_dependency(%q<hoe-bundler>, [">= 1.1.0"])
|
|
48
52
|
s.add_dependency(%q<hoe-gemspec>, [">= 1.0.0"])
|
|
@@ -56,6 +60,8 @@ Gem::Specification.new do |s|
|
|
|
56
60
|
s.add_dependency(%q<yard>, [">= 0.7.2"])
|
|
57
61
|
s.add_dependency(%q<rdoc>, [">= 3.8.0"])
|
|
58
62
|
s.add_dependency(%q<redcarpet>, [">= 2.1.0"])
|
|
63
|
+
s.add_dependency(%q<supermodel>, [">= 0.1.6"])
|
|
64
|
+
s.add_dependency(%q<activerecord>, [">= 3.0"])
|
|
59
65
|
s.add_dependency(%q<bundler>, [">= 1.0.10"])
|
|
60
66
|
s.add_dependency(%q<hoe-bundler>, [">= 1.1.0"])
|
|
61
67
|
s.add_dependency(%q<hoe-gemspec>, [">= 1.0.0"])
|
data/docs/HISTORY
CHANGED
|
@@ -1,6 +1,52 @@
|
|
|
1
|
-
===
|
|
1
|
+
=== 1.1.2 / 2012-06-30
|
|
2
2
|
|
|
3
|
-
*
|
|
3
|
+
* major bugfixes
|
|
4
|
+
|
|
5
|
+
* In operate_on_attrs_from_set: replaced self[attr] and method(attr) calls with send (to be ORM agnostic)
|
|
6
|
+
* In attributes_to_filter: inefficient respond_to? calls replaced by the attributes method call
|
|
7
|
+
|
|
8
|
+
* major enhancements
|
|
9
|
+
|
|
10
|
+
* AttributeFilters module can be now used without full Rails stack, just with Active Model loaded
|
|
11
|
+
|
|
12
|
+
* minor enhancements
|
|
13
|
+
|
|
14
|
+
* Documentation updated
|
|
15
|
+
* Added attribute-filters/helpers.rb containing AttributeFiltersHelpers module
|
|
16
|
+
* Flags parsing method attr_filter_process_flags moved to AttributeFiltersHelpers as process_flags
|
|
17
|
+
* Added SuperModel and ActiveRecord dependencies for testing purposes
|
|
18
|
+
* Added first RSpec example
|
|
19
|
+
|
|
20
|
+
=== 1.1.0 / 2012-06-29
|
|
21
|
+
|
|
22
|
+
* major enhancement
|
|
23
|
+
|
|
24
|
+
* API changed; call_attrs_from_set name changed to for_each_attr_from_set, caching removed
|
|
25
|
+
|
|
26
|
+
* minor enhancements
|
|
27
|
+
|
|
28
|
+
* Optimized code for attributes filtering
|
|
29
|
+
* Namespace organized (AttributeFilters completely moved under ActiveModel)
|
|
30
|
+
* Prepared for testing with RSpec
|
|
31
|
+
* Added custom CSS file for YARD formatter
|
|
32
|
+
|
|
33
|
+
=== 1.0.2 / 2012-06-28
|
|
34
|
+
|
|
35
|
+
* minor enhancements
|
|
36
|
+
|
|
37
|
+
* Documentation updated
|
|
38
|
+
* Extended arguments parsing for DSL class method attribute_set
|
|
39
|
+
|
|
40
|
+
=== 1.0.1 / 2012-06-28
|
|
41
|
+
|
|
42
|
+
* minor enhancements
|
|
43
|
+
|
|
44
|
+
* Documentation updated
|
|
45
|
+
* Rakefile and gemspec updated
|
|
46
|
+
|
|
47
|
+
=== 1.0.0 / 2012-06-28
|
|
48
|
+
|
|
49
|
+
* major enhancement
|
|
4
50
|
|
|
5
51
|
* Birthday!
|
|
6
52
|
|
data/docs/TODO
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
|
|
4
4
|
* replace flags by some simple hash given as the second, optional argument
|
|
5
5
|
|
|
6
|
+
* new way of adding to sets:
|
|
7
|
+
|
|
8
|
+
filtered_attribute user: :should_be_stripped
|
|
9
|
+
filtered_attribute user: :should_be_downcased
|
|
10
|
+
altered_attribute user: :should_be_downcased
|
|
11
|
+
filter_attribute user: [ :should_be_downcased, :should_be_stripped ]
|
|
12
|
+
filter_attribute :user, :should_be_downcased, :should_be_stripped
|
|
13
|
+
add_to_set
|
|
14
|
+
add_attribute_to_set
|
|
15
|
+
attribute_to_set
|
|
16
|
+
|
|
6
17
|
* add some predefined, often used filters/sets
|
|
7
18
|
|
|
8
19
|
* add rspec tests
|
data/lib/attribute-filters.rb
CHANGED
|
@@ -5,7 +5,12 @@ require 'attribute-filters/version'
|
|
|
5
5
|
require 'attribute-filters/attribute_set'
|
|
6
6
|
require 'attribute-filters/attribute_set_query'
|
|
7
7
|
|
|
8
|
+
require 'attribute-filters/helpers'
|
|
8
9
|
require 'attribute-filters/dsl_sets'
|
|
9
10
|
require 'attribute-filters/dsl_filters'
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
if defined? ::Rails
|
|
13
|
+
require 'attribute-filters/railtie'
|
|
14
|
+
else
|
|
15
|
+
require 'attribute-filters/active_model_insert'
|
|
16
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Author:: Paweł Wilk (mailto:pw@gnu.org)
|
|
4
|
+
# Copyright:: (c) 2012 by Paweł Wilk
|
|
5
|
+
# License:: This program is licensed under the terms of {file:LGPL-LICENSE GNU Lesser General Public License} or {file:COPYING Ruby License}.
|
|
6
|
+
#
|
|
7
|
+
# This file loads Attribute Filters goodies into ActiveModel.
|
|
8
|
+
|
|
9
|
+
require 'active_model'
|
|
10
|
+
|
|
11
|
+
module ActiveModel
|
|
12
|
+
|
|
13
|
+
if defined?(AttributeMethods)
|
|
14
|
+
|
|
15
|
+
AttributeMethods.class_eval do
|
|
16
|
+
|
|
17
|
+
# Replaces the ActiveModel::AttributeMethods.inluded method so
|
|
18
|
+
# when the AttributeMethods module is included then
|
|
19
|
+
# the AttributeFilters module is also included.
|
|
20
|
+
def self.included_with_attribute_methods(base)
|
|
21
|
+
base.class_eval do
|
|
22
|
+
include ActiveModel::AttributeFilters
|
|
23
|
+
if method_defined?(:included_without_attribute_methods)
|
|
24
|
+
included_without_attribute_methods(base)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
if singleton_class.method_defined?(:included)
|
|
29
|
+
singleton_class.send(:alias_method, :included_without_attribute_methods, :included)
|
|
30
|
+
singleton_class.send(:alias_method, :included, :included_with_attribute_methods)
|
|
31
|
+
#singleton_class.send(:alias_method_chain, :included, :attribute_methods)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end # ActiveModel::AttributeMethods.class_eval
|
|
35
|
+
|
|
36
|
+
end # if defined?(AttributeMethods)
|
|
37
|
+
|
|
38
|
+
end # module ActiveModel
|
|
@@ -25,15 +25,14 @@ module ActiveModel
|
|
|
25
25
|
# @param process_all [Boolean] if set then all the attributes from the attribute set are selected,
|
|
26
26
|
# not just attributes that has changed
|
|
27
27
|
# @param no_presence_check [Boolean] if set then the checking whether attribute exists will be
|
|
28
|
-
# disabled (matters only when +process_all+ is also set
|
|
28
|
+
# disabled (matters only when +process_all+ is also set
|
|
29
29
|
# @return [AttributeSet] set of attributes (attribute name => previous_value)
|
|
30
|
-
def attributes_to_filter(set_name,
|
|
30
|
+
def attributes_to_filter(set_name, process_all = false, no_presence_check = false)
|
|
31
|
+
atf = attribute_set(set_name)
|
|
31
32
|
if process_all
|
|
32
|
-
atf
|
|
33
|
-
needs_write = alter_mode ? "=" : ""
|
|
34
|
-
no_presence_check ? atf : atf.select{ |atr| respond_to?("#{atr}#{needs_write}") }
|
|
33
|
+
no_presence_check ? atf : atf & attributes.keys
|
|
35
34
|
else
|
|
36
|
-
|
|
35
|
+
atf & changed_attributes.keys
|
|
37
36
|
end
|
|
38
37
|
end
|
|
39
38
|
|
|
@@ -50,10 +49,8 @@ module ActiveModel
|
|
|
50
49
|
# {http://rubydoc.info/gems/activemodel/ActiveModel/Dirty#changed_attributes-instance_method changed attributes}
|
|
51
50
|
# are selected, unless the +process_all+ flag is
|
|
52
51
|
# given. If that flag is given then presence of each attribute is verified,
|
|
53
|
-
# unless the +no_presence_check+ flag is also set.
|
|
54
|
-
#
|
|
55
|
-
# is excluded from processing. Attributes with empty or unset values are ignored
|
|
56
|
-
# too (but see the flag called +process_blank+).
|
|
52
|
+
# unless the +no_presence_check+ flag is also set. Attributes with empty or unset values
|
|
53
|
+
# are ignored (but see the flag called +process_blank+).
|
|
57
54
|
#
|
|
58
55
|
# The result of the given block is used to set a new values for processed attributes.
|
|
59
56
|
#
|
|
@@ -114,10 +111,8 @@ module ActiveModel
|
|
|
114
111
|
# {http://rubydoc.info/gems/activemodel/ActiveModel/Dirty#changed_attributes-instance_method changed attributes}
|
|
115
112
|
# are selected, unless the +process_all+ flag is
|
|
116
113
|
# given. If that flag is given then presence of each attribute is verified,
|
|
117
|
-
# unless the +no_presence_check+ flag is also set.
|
|
118
|
-
#
|
|
119
|
-
# if it doesn't then the attribute is excluded from processing. Attributes with
|
|
120
|
-
# empty or unset values are ignored too (but see the flag called +process_blank+).
|
|
114
|
+
# unless the +no_presence_check+ flag is also set. Attributes with
|
|
115
|
+
# empty or unset values are ignored (but see the flag called +process_blank+).
|
|
121
116
|
#
|
|
122
117
|
# The result of the given block is not used to set the processed attribute.
|
|
123
118
|
# The only way to alter attribute values using this method is to use bang
|
|
@@ -164,35 +159,35 @@ module ActiveModel
|
|
|
164
159
|
|
|
165
160
|
private
|
|
166
161
|
|
|
167
|
-
def attr_filter_process_flags(args)
|
|
168
|
-
flags = ActiveModel::AttributeFilters::PROCESSING_FLAGS.dup
|
|
169
|
-
while flags.key?(a=args[0]) do
|
|
170
|
-
flags[a] = !!args.shift
|
|
171
|
-
end
|
|
172
|
-
flags
|
|
173
|
-
end
|
|
174
|
-
|
|
175
162
|
def operate_on_attrs_from_set(set_name, alter_mode, *args, &block)
|
|
176
|
-
flags =
|
|
163
|
+
flags = AttributeFiltersHelpers.process_flags(args)
|
|
177
164
|
process_all = flags[:process_all]
|
|
178
165
|
process_blank = flags[:process_blank]
|
|
179
166
|
no_presence_check = flags[:no_presence_check]
|
|
180
|
-
attrs_to_process = attributes_to_filter(set_name,
|
|
167
|
+
attrs_to_process = attributes_to_filter(set_name, process_all, no_presence_check)
|
|
181
168
|
if alter_mode
|
|
182
169
|
if process_blank
|
|
183
|
-
|
|
170
|
+
# filtering without testing for blank
|
|
171
|
+
attrs_to_process.each do |atr|
|
|
172
|
+
send("#{atr}=", yield(send(atr), set_name, atr, *args))
|
|
173
|
+
end
|
|
184
174
|
else
|
|
175
|
+
# filtering present only
|
|
185
176
|
attrs_to_process.each do |atr|
|
|
186
|
-
v =
|
|
187
|
-
|
|
177
|
+
v = send(atr)
|
|
178
|
+
send("#{atr}=", yield(v, set_name, atr, *args)) if v.present?
|
|
188
179
|
end
|
|
189
180
|
end
|
|
190
181
|
else
|
|
191
182
|
if process_blank
|
|
192
|
-
|
|
183
|
+
# calling without testing for blank
|
|
184
|
+
attrs_to_process.each do |atr|
|
|
185
|
+
yield(send(atr), set_name, atr, *args)
|
|
186
|
+
end
|
|
193
187
|
else
|
|
188
|
+
# calling present only
|
|
194
189
|
attrs_to_process.each do |atr|
|
|
195
|
-
v =
|
|
190
|
+
v = send(atr)
|
|
196
191
|
yield(v, set_name, atr, *args) if v.present?
|
|
197
192
|
end
|
|
198
193
|
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Author:: Paweł Wilk (mailto:pw@gnu.org)
|
|
4
|
+
# Copyright:: (c) 2012 by Paweł Wilk
|
|
5
|
+
# License:: This program is licensed under the terms of {file:LGPL-LICENSE GNU Lesser General Public License} or {file:COPYING Ruby License}.
|
|
6
|
+
#
|
|
7
|
+
# This file contains some helper methods for Attribute Filters.
|
|
8
|
+
|
|
9
|
+
# @abstract This namespace is shared with ActveModel.
|
|
10
|
+
module ActiveModel
|
|
11
|
+
module AttributeFilters
|
|
12
|
+
module AttributeFiltersHelpers
|
|
13
|
+
|
|
14
|
+
# @private
|
|
15
|
+
def process_flags(args)
|
|
16
|
+
flags = ActiveModel::AttributeFilters::PROCESSING_FLAGS.dup
|
|
17
|
+
while flags.key?(a=args[0]) do
|
|
18
|
+
flags[a] = !!args.shift
|
|
19
|
+
end
|
|
20
|
+
flags
|
|
21
|
+
end
|
|
22
|
+
module_function :process_flags
|
|
23
|
+
|
|
24
|
+
end # module AttributeFiltersHelpers
|
|
25
|
+
end # module AttributeFilters
|
|
26
|
+
end # module ActiveModel
|
|
@@ -14,30 +14,9 @@ module ActiveModel
|
|
|
14
14
|
|
|
15
15
|
# This class is a glue that allows us to integrate with Rails.
|
|
16
16
|
class Railtie < ::Rails::Railtie
|
|
17
|
-
#
|
|
18
|
-
# when that module is included the ActiveModel::AttributeFilters
|
|
19
|
-
# module is also included.
|
|
17
|
+
# Inserts the AttributeFilters module into ActiveModel
|
|
20
18
|
def self.insert
|
|
21
|
-
require '
|
|
22
|
-
if defined?(ActiveModel::AttributeMethods)
|
|
23
|
-
|
|
24
|
-
ActiveModel::AttributeMethods.class_eval do
|
|
25
|
-
|
|
26
|
-
def self.included_with_attribute_methods(base)
|
|
27
|
-
base.class_eval do
|
|
28
|
-
include ActiveModel::AttributeFilters
|
|
29
|
-
if method_defined?(:included_without_attribute_methods)
|
|
30
|
-
included_without_attribute_methods(base)
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
if singleton_class.method_defined?(:included)
|
|
35
|
-
singleton_class.send(:alias_method_chain, :included, :attribute_methods)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
end # ActiveModel::AttributeMethods.class_eval
|
|
39
|
-
|
|
40
|
-
end # if defined?(ActiveModel::AttributeMethods)
|
|
19
|
+
require 'attribute-filters/active_model_insert'
|
|
41
20
|
end # def self.insert
|
|
42
21
|
end # class Railtie
|
|
43
22
|
|
|
@@ -46,4 +25,3 @@ module ActiveModel
|
|
|
46
25
|
end # class Railtie
|
|
47
26
|
end # module AttributeFilters
|
|
48
27
|
end # module ActiveModel
|
|
49
|
-
|
|
@@ -1,5 +1,36 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
describe ActiveModel::AttributeFilters do
|
|
6
|
+
|
|
7
|
+
before do
|
|
8
|
+
@tm = TestModel.new
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
describe @tm do
|
|
12
|
+
|
|
13
|
+
it "is able to filter model attributes properly" do
|
|
14
|
+
@tm.username = " UPCASEĄĘŚĆ "
|
|
15
|
+
@tm.email = " Some@EXAMPLE.com "
|
|
16
|
+
@tm.real_name = " sir rails "
|
|
17
|
+
-> { @tm.save }.should_not raise_error
|
|
18
|
+
@tm.username.should == "upcaseąęść"
|
|
19
|
+
@tm.email.should == "Some@EXAMPLE.com"
|
|
20
|
+
@tm.real_name.should == "Sir Rails"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
#it "is able to filter model attributes with Active Record as ORM" do
|
|
24
|
+
# @tm = TestModelAR.new
|
|
25
|
+
# @tm.username = " UPCASEĄĘŚĆ "
|
|
26
|
+
# @tm.email = " Some@EXAMPLE.com "
|
|
27
|
+
# @tm.real_name = " sir rails "
|
|
28
|
+
# -> { @tm.save }.should_not raise_error
|
|
29
|
+
# @tm.username.should == "upcaseąęść"
|
|
30
|
+
# @tm.email.should == "Some@EXAMPLE.com"
|
|
31
|
+
# @tm.real_name.should == "Sir Rails"
|
|
32
|
+
#end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
|
|
5
36
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,2 +1,71 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'bundler/setup'
|
|
1
3
|
require 'rspec/core'
|
|
4
|
+
|
|
5
|
+
Bundler.require(:default, :test)
|
|
6
|
+
|
|
7
|
+
require 'active_support/all'
|
|
2
8
|
require 'attribute-filters'
|
|
9
|
+
|
|
10
|
+
require 'supermodel'
|
|
11
|
+
require 'active_record'
|
|
12
|
+
|
|
13
|
+
class TestModel < SuperModel::Base
|
|
14
|
+
|
|
15
|
+
attributes_that should_be_stripped: [ :username, :email, :real_name ]
|
|
16
|
+
attributes_that should_be_downcased: [ :username ]
|
|
17
|
+
attributes_that should_be_capitalized: [ :real_name ]
|
|
18
|
+
attributes_that should_be_tested: [ :test_attribute ]
|
|
19
|
+
attributes_that does_not_exist: [ :nonexistent_attribute ]
|
|
20
|
+
|
|
21
|
+
before_save :strip_names
|
|
22
|
+
before_save :downcase_names
|
|
23
|
+
before_save :capitalize_names
|
|
24
|
+
|
|
25
|
+
def downcase_names
|
|
26
|
+
filter_attributes_that :should_be_downcased do |atr|
|
|
27
|
+
atr.mb_chars.downcase.to_s
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def capitalize_names
|
|
32
|
+
filter_attributes_that :should_be_capitalized do |atr|
|
|
33
|
+
atr.mb_chars.split(' ').map { |n| n.capitalize }.join(' ')
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def strip_names
|
|
38
|
+
for_attributes_that(:should_be_stripped) { |atr| atr.strip! }
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class TestModelAR < ActiveRecord::Base
|
|
44
|
+
|
|
45
|
+
attributes_that should_be_stripped: [ :username, :email, :real_name ]
|
|
46
|
+
attributes_that should_be_downcased: [ :username ]
|
|
47
|
+
attributes_that should_be_capitalized: [ :real_name ]
|
|
48
|
+
attributes_that should_be_tested: [ :test_attribute ]
|
|
49
|
+
attributes_that does_not_exist: [ :nonexistent_attribute ]
|
|
50
|
+
|
|
51
|
+
before_save :strip_names
|
|
52
|
+
before_save :downcase_names
|
|
53
|
+
before_save :capitalize_names
|
|
54
|
+
|
|
55
|
+
def downcase_names
|
|
56
|
+
filter_attributes_that :should_be_downcased do |atr|
|
|
57
|
+
atr.mb_chars.downcase.to_s
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def capitalize_names
|
|
62
|
+
filter_attributes_that :should_be_capitalized do |atr|
|
|
63
|
+
atr.mb_chars.split(' ').map { |n| n.capitalize }.join(' ')
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def strip_names
|
|
68
|
+
for_attributes_that(:should_be_stripped) { |atr| atr.strip! }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: attribute-filters
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.2
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -48,11 +48,11 @@ cert_chain:
|
|
|
48
48
|
-----END CERTIFICATE-----
|
|
49
49
|
|
|
50
50
|
'
|
|
51
|
-
date: 2012-06-
|
|
51
|
+
date: 2012-06-30 00:00:00.000000000 Z
|
|
52
52
|
dependencies:
|
|
53
53
|
- !ruby/object:Gem::Dependency
|
|
54
54
|
name: railties
|
|
55
|
-
requirement: &
|
|
55
|
+
requirement: &2151903580 !ruby/object:Gem::Requirement
|
|
56
56
|
none: false
|
|
57
57
|
requirements:
|
|
58
58
|
- - ~>
|
|
@@ -60,10 +60,10 @@ dependencies:
|
|
|
60
60
|
version: '3.0'
|
|
61
61
|
type: :runtime
|
|
62
62
|
prerelease: false
|
|
63
|
-
version_requirements: *
|
|
63
|
+
version_requirements: *2151903580
|
|
64
64
|
- !ruby/object:Gem::Dependency
|
|
65
65
|
name: activemodel
|
|
66
|
-
requirement: &
|
|
66
|
+
requirement: &2151918120 !ruby/object:Gem::Requirement
|
|
67
67
|
none: false
|
|
68
68
|
requirements:
|
|
69
69
|
- - ~>
|
|
@@ -71,10 +71,10 @@ dependencies:
|
|
|
71
71
|
version: '3.0'
|
|
72
72
|
type: :runtime
|
|
73
73
|
prerelease: false
|
|
74
|
-
version_requirements: *
|
|
74
|
+
version_requirements: *2151918120
|
|
75
75
|
- !ruby/object:Gem::Dependency
|
|
76
76
|
name: hoe-yard
|
|
77
|
-
requirement: &
|
|
77
|
+
requirement: &2151917140 !ruby/object:Gem::Requirement
|
|
78
78
|
none: false
|
|
79
79
|
requirements:
|
|
80
80
|
- - ! '>='
|
|
@@ -82,10 +82,10 @@ dependencies:
|
|
|
82
82
|
version: 0.1.2
|
|
83
83
|
type: :development
|
|
84
84
|
prerelease: false
|
|
85
|
-
version_requirements: *
|
|
85
|
+
version_requirements: *2151917140
|
|
86
86
|
- !ruby/object:Gem::Dependency
|
|
87
87
|
name: rspec
|
|
88
|
-
requirement: &
|
|
88
|
+
requirement: &2151915240 !ruby/object:Gem::Requirement
|
|
89
89
|
none: false
|
|
90
90
|
requirements:
|
|
91
91
|
- - ! '>='
|
|
@@ -93,10 +93,10 @@ dependencies:
|
|
|
93
93
|
version: 2.6.0
|
|
94
94
|
type: :development
|
|
95
95
|
prerelease: false
|
|
96
|
-
version_requirements: *
|
|
96
|
+
version_requirements: *2151915240
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: yard
|
|
99
|
-
requirement: &
|
|
99
|
+
requirement: &2151913420 !ruby/object:Gem::Requirement
|
|
100
100
|
none: false
|
|
101
101
|
requirements:
|
|
102
102
|
- - ! '>='
|
|
@@ -104,10 +104,10 @@ dependencies:
|
|
|
104
104
|
version: 0.7.2
|
|
105
105
|
type: :development
|
|
106
106
|
prerelease: false
|
|
107
|
-
version_requirements: *
|
|
107
|
+
version_requirements: *2151913420
|
|
108
108
|
- !ruby/object:Gem::Dependency
|
|
109
109
|
name: rdoc
|
|
110
|
-
requirement: &
|
|
110
|
+
requirement: &2151912140 !ruby/object:Gem::Requirement
|
|
111
111
|
none: false
|
|
112
112
|
requirements:
|
|
113
113
|
- - ! '>='
|
|
@@ -115,10 +115,10 @@ dependencies:
|
|
|
115
115
|
version: 3.8.0
|
|
116
116
|
type: :development
|
|
117
117
|
prerelease: false
|
|
118
|
-
version_requirements: *
|
|
118
|
+
version_requirements: *2151912140
|
|
119
119
|
- !ruby/object:Gem::Dependency
|
|
120
120
|
name: redcarpet
|
|
121
|
-
requirement: &
|
|
121
|
+
requirement: &2151926640 !ruby/object:Gem::Requirement
|
|
122
122
|
none: false
|
|
123
123
|
requirements:
|
|
124
124
|
- - ! '>='
|
|
@@ -126,10 +126,32 @@ dependencies:
|
|
|
126
126
|
version: 2.1.0
|
|
127
127
|
type: :development
|
|
128
128
|
prerelease: false
|
|
129
|
-
version_requirements: *
|
|
129
|
+
version_requirements: *2151926640
|
|
130
|
+
- !ruby/object:Gem::Dependency
|
|
131
|
+
name: supermodel
|
|
132
|
+
requirement: &2151925560 !ruby/object:Gem::Requirement
|
|
133
|
+
none: false
|
|
134
|
+
requirements:
|
|
135
|
+
- - ! '>='
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: 0.1.6
|
|
138
|
+
type: :development
|
|
139
|
+
prerelease: false
|
|
140
|
+
version_requirements: *2151925560
|
|
141
|
+
- !ruby/object:Gem::Dependency
|
|
142
|
+
name: activerecord
|
|
143
|
+
requirement: &2151922320 !ruby/object:Gem::Requirement
|
|
144
|
+
none: false
|
|
145
|
+
requirements:
|
|
146
|
+
- - ! '>='
|
|
147
|
+
- !ruby/object:Gem::Version
|
|
148
|
+
version: '3.0'
|
|
149
|
+
type: :development
|
|
150
|
+
prerelease: false
|
|
151
|
+
version_requirements: *2151922320
|
|
130
152
|
- !ruby/object:Gem::Dependency
|
|
131
153
|
name: bundler
|
|
132
|
-
requirement: &
|
|
154
|
+
requirement: &2151921000 !ruby/object:Gem::Requirement
|
|
133
155
|
none: false
|
|
134
156
|
requirements:
|
|
135
157
|
- - ! '>='
|
|
@@ -137,10 +159,10 @@ dependencies:
|
|
|
137
159
|
version: 1.0.10
|
|
138
160
|
type: :development
|
|
139
161
|
prerelease: false
|
|
140
|
-
version_requirements: *
|
|
162
|
+
version_requirements: *2151921000
|
|
141
163
|
- !ruby/object:Gem::Dependency
|
|
142
164
|
name: hoe-bundler
|
|
143
|
-
requirement: &
|
|
165
|
+
requirement: &2151934040 !ruby/object:Gem::Requirement
|
|
144
166
|
none: false
|
|
145
167
|
requirements:
|
|
146
168
|
- - ! '>='
|
|
@@ -148,10 +170,10 @@ dependencies:
|
|
|
148
170
|
version: 1.1.0
|
|
149
171
|
type: :development
|
|
150
172
|
prerelease: false
|
|
151
|
-
version_requirements: *
|
|
173
|
+
version_requirements: *2151934040
|
|
152
174
|
- !ruby/object:Gem::Dependency
|
|
153
175
|
name: hoe-gemspec
|
|
154
|
-
requirement: &
|
|
176
|
+
requirement: &2151931380 !ruby/object:Gem::Requirement
|
|
155
177
|
none: false
|
|
156
178
|
requirements:
|
|
157
179
|
- - ! '>='
|
|
@@ -159,10 +181,10 @@ dependencies:
|
|
|
159
181
|
version: 1.0.0
|
|
160
182
|
type: :development
|
|
161
183
|
prerelease: false
|
|
162
|
-
version_requirements: *
|
|
184
|
+
version_requirements: *2151931380
|
|
163
185
|
- !ruby/object:Gem::Dependency
|
|
164
186
|
name: hoe
|
|
165
|
-
requirement: &
|
|
187
|
+
requirement: &2151929860 !ruby/object:Gem::Requirement
|
|
166
188
|
none: false
|
|
167
189
|
requirements:
|
|
168
190
|
- - ~>
|
|
@@ -170,7 +192,7 @@ dependencies:
|
|
|
170
192
|
version: '2.16'
|
|
171
193
|
type: :development
|
|
172
194
|
prerelease: false
|
|
173
|
-
version_requirements: *
|
|
195
|
+
version_requirements: *2151929860
|
|
174
196
|
description: Concise way of filtering model attributes in Rails.
|
|
175
197
|
email:
|
|
176
198
|
- pw@gnu.org
|
|
@@ -199,11 +221,13 @@ files:
|
|
|
199
221
|
- docs/yard-tpl/default/fulldoc/html/css/common.css
|
|
200
222
|
- init.rb
|
|
201
223
|
- lib/attribute-filters.rb
|
|
224
|
+
- lib/attribute-filters/active_model_insert.rb
|
|
202
225
|
- lib/attribute-filters/attribute_set.rb
|
|
203
226
|
- lib/attribute-filters/attribute_set_query.rb
|
|
204
227
|
- lib/attribute-filters/common_filters.rb
|
|
205
228
|
- lib/attribute-filters/dsl_filters.rb
|
|
206
229
|
- lib/attribute-filters/dsl_sets.rb
|
|
230
|
+
- lib/attribute-filters/helpers.rb
|
|
207
231
|
- lib/attribute-filters/railtie.rb
|
|
208
232
|
- lib/attribute-filters/version.rb
|
|
209
233
|
- spec/attribute-filters_spec.rb
|
|
@@ -226,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
226
250
|
version: '0'
|
|
227
251
|
segments:
|
|
228
252
|
- 0
|
|
229
|
-
hash:
|
|
253
|
+
hash: -2814345581129542450
|
|
230
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
255
|
none: false
|
|
232
256
|
requirements:
|
metadata.gz.sig
CHANGED
|
Binary file
|