attribute-filters 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,3 +1,33 @@
1
+ commit bd3f936868d7afcf22501c781e093f73b6dc8e9b
2
+ Author: Paweł Wilk <siefca@gnu.org>
3
+ Date: Sun Aug 5 14:31:12 2012 +0200
4
+
5
+ Release 1.3.1
6
+
7
+ commit 8ba61780246a7677249ba875df0b6edd38cda5e8
8
+ Author: Paweł Wilk <siefca@gnu.org>
9
+ Date: Sun Aug 5 14:26:29 2012 +0200
10
+
11
+ Added is_accessible?, is_inaccessible? and is_protected? queries to AttrQuery proxy class
12
+
13
+ commit 3cbdc984df09e7d3bdbca4d45713a686adac83a2
14
+ Author: Paweł Wilk <siefca@gnu.org>
15
+ Date: Sun Aug 5 11:44:45 2012 +0200
16
+
17
+ Documentation updated
18
+
19
+ commit bddd9b06992b23355007f67431e4990bd4fbec49
20
+ Author: Paweł Wilk <siefca@gnu.org>
21
+ Date: Sun Aug 5 01:53:05 2012 +0200
22
+
23
+ Added all_attributes, all_accessible_attributes, all_protected_attributes, all_inaccessible_attributes
24
+
25
+ commit c385eef1f671dbe27831a713f3a255d9f92154c8
26
+ Author: Paweł Wilk <siefca@gnu.org>
27
+ Date: Sun Aug 5 01:51:44 2012 +0200
28
+
29
+ Added squish common filter
30
+
1
31
  commit fd6696a66397299042f11ba1feb4e82aeb1f2919
2
32
  Author: Paweł Wilk <siefca@gnu.org>
3
33
  Date: Sun Aug 5 00:36:11 2012 +0200
data/README.md CHANGED
@@ -136,14 +136,14 @@ some base class that all your models inherit form or (better) into your own
136
136
  handy module that is included in all your models. Alternatively you can
137
137
  use predefined filters from `ActiveModel::AttributeFilters::Common` module.
138
138
 
139
- More examples and usage
139
+ Usage and more examples
140
140
  -----------------------
141
141
 
142
142
  You can use it to filter attributes (as presented above) but you can also
143
143
  use it to express some logic
144
144
  [on your own](http://rubydoc.info/gems/attribute-filters/file/docs/USAGE.md#Custom_applications).
145
145
 
146
- * See [USAGE](http://rubydoc.info/gems/attribute-filters/file/docs/USAGE.md) for examples and detailed information about the usage.
146
+ * **See [USAGE](http://rubydoc.info/gems/attribute-filters/file/docs/USAGE.md) for examples and detailed information about the usage.**
147
147
  * See [whole documentation](http://rubydoc.info/gems/attribute-filters/) to browse all documents.
148
148
 
149
149
  ### Sneak peeks ###
@@ -160,6 +160,15 @@ use it to express some logic
160
160
 
161
161
  @user.the_attribute(:username).list.sets
162
162
  # => #<ActiveModel::AttributeSet: {:should_be_downcased, :should_be_stripped}>
163
+
164
+ @user.the_attribute(:username).is.accessible?
165
+ # => true
166
+
167
+ @user.is_the_attribute(:username).protected?
168
+ # => false
169
+
170
+ @user.all_attributes.list.valid?
171
+ # => #<ActiveModel::AttributeSet: {"username", "email"}>
163
172
  ```
164
173
 
165
174
  How it works?
@@ -2,12 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "attribute-filters"
5
- s.version = "1.3.0.20120804225210"
5
+ s.version = "1.3.1.20120805142734"
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-08-04"
10
+ s.date = "2012-08-05"
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"]
data/docs/HISTORY CHANGED
@@ -1,3 +1,14 @@
1
+ === 1.3.1 / 2012-08-05
2
+
3
+ * major enhancements
4
+
5
+ * Added accessible?, inaccessible?, protected? attribute checks
6
+ * Added all_accessible_attributes, all_protected_attributes, all_inaccessible_attributes
7
+
8
+ * minor enhancements
9
+
10
+ * Added squish common filter
11
+
1
12
  === 1.3.0 / 2012-08-04
2
13
 
3
14
  * major bugfixes
data/docs/TODO CHANGED
@@ -1,3 +1,5 @@
1
- * add more predefined filtering methods
1
+ * add more rspec examples
2
+
3
+ * document changed behaviour of attribute_set instance method
4
+
2
5
 
3
- * add rspec examples
data/docs/USAGE.md CHANGED
@@ -207,12 +207,25 @@ is a wrapper that calls `attributes_to_sets` which returns
207
207
  a hash containing **all filtered attributes and arrays of sets**
208
208
  that the attributes belong to.
209
209
 
210
-
211
210
  ### Querying sets in objects ###
212
211
 
213
212
  It is possible to access attribute sets from within the ActiveModel (or ORM, like ActiveRecord) objects.
214
213
  To do that you may use instance methods that are designed for that purpose.
215
214
 
215
+ #### `attribute_set` ####
216
+
217
+ The [`attribute_set`](http://rubydoc.info/gems/attribute-filters/ActiveModel/AttributeFilters:attribute_set)
218
+ method called withount an argument **returns the attribute set containing all attributes for a current object**.
219
+
220
+ Example:
221
+
222
+ ```ruby
223
+ User.first.attribute_set
224
+ # => #<ActiveModel::AttributeSet: {"id", "username", "email", "password", "language", "created_at", "updated_at"}>
225
+ ```
226
+
227
+ It works the same as the `all_attributes` method.
228
+
216
229
  #### `attribute_set(set_name)` ####
217
230
 
218
231
  The [`attribute_set`](http://rubydoc.info/gems/attribute-filters/ActiveModel/AttributeFilters:attribute_set)
@@ -267,9 +280,73 @@ Example:
267
280
 
268
281
  ```ruby
269
282
  User.first.all_attributes
270
- # => #<ActiveModel::AttributeSet: {"id", "username", "email", "password", "language", "created_at", "updated_at"}>
283
+ # => #<ActiveModel::AttributeSet: {"id", "username", "email", "password", "language", "created_at", "updated_at"}>
284
+ ```
285
+
286
+ Be aware that this method requires that the used ORM has `attributes` data structure available for any model object.
287
+
288
+ Instead of `all_attributes` you may also use the alias:
289
+
290
+ * `all_attributes_set`
291
+
292
+ or call the instance method `attribute_set` without arguments.
293
+
294
+ #### `all_accessible_attributes` ####
295
+
296
+ The [`all_accessible_attributes`](http://rubydoc.info/gems/attribute-filters/ActiveModel/AttributeFilters:all_accessible_attributes)
297
+ method **returns the attribute set containing all accessible attributes**.
298
+
299
+ Example:
300
+
301
+ ```ruby
302
+ User.first.all_accessible_attributes
303
+ # => #<ActiveModel::AttributeSet: {"username", "email", "language"}>
271
304
  ```
272
305
 
306
+ Be aware that this method requires that the used ORM has `accessible_attributes` data structure available for any model class.
307
+
308
+ Instead of `all_accessible_attributes` you may also use the alias:
309
+
310
+ * `accessible_attributes_set`
311
+
312
+ #### `all_protected_attributes` ####
313
+
314
+ The [`all_protected_attributes`](http://rubydoc.info/gems/attribute-filters/ActiveModel/AttributeFilters:all_protected_attributes)
315
+ method **returns the attribute set containing all protected attributes**.
316
+
317
+ Example:
318
+
319
+ ```ruby
320
+ User.first.all_protected_attributes
321
+ # => #<ActiveModel::AttributeSet: {"id"}>
322
+ ```
323
+
324
+ Be aware that this method requires that the used ORM has `protected_attributes` data structure available for any model class.
325
+
326
+ Instead of `all_protected_attributes` you may also use the alias:
327
+
328
+ * `protected_attributes_set`
329
+
330
+ #### `all_inaccessible_attributes` ####
331
+
332
+ The [`all_inaccessible_attributes`](http://rubydoc.info/gems/attribute-filters/ActiveModel/AttributeFilters:all_inaccessible_attributes)
333
+ method **returns the attribute set containing all inaccessible attributes**. Inaccessible attributes are attributes
334
+ that aren't listed as accessible, which includes protected attributes and attributes for which the `attr_accessible` clause
335
+ wasn't used.
336
+
337
+ Example:
338
+
339
+ ```ruby
340
+ User.first.all_inaccessible_attributes
341
+ # => #<ActiveModel::AttributeSet: {"id", "password", "created_at", "updated_at"}>
342
+ ```
343
+
344
+ Be aware that this method requires that the used ORM has `accessible_attributes` data structure available for any model class.
345
+
346
+ Instead of `all_inaccessible_attributes` you may also use the alias:
347
+
348
+ * `inaccessible_attributes_set`
349
+
273
350
  #### `filtered_attribute(attribute_name)` ####
274
351
 
275
352
  The [`filtered_attribute`](http://rubydoc.info/gems/attribute-filters/ActiveModel/AttributeFilters:filtered_attribute)
@@ -496,6 +573,9 @@ Examples:
496
573
  # => #<ActiveModel::AttributeSet: {"username", "email"}>
497
574
  ```
498
575
 
576
+ Be aware that calling these methods causes model object to be validated. The required condition
577
+ to use these methods is the ORM that has `errors` hash (Active Record has it).
578
+
499
579
  #### Querying attributes for set names ####
500
580
 
501
581
  Querying attributes to know sets they belong to uses one
@@ -583,6 +663,29 @@ with question mark. Otherwise you may get false positives
583
663
  or a strange errors when trying to test if attribute belongs
584
664
  to a set. The real method call will override your check.
585
665
 
666
+ ##### Set accessibility querying #####
667
+
668
+ * **`accessible?`**
669
+ * **`inaccessible?`**
670
+ * **`protected?`**
671
+ * **`is_accessible?`**
672
+ * **`is_inaccessible?`**
673
+ * **`is_protected?`**
674
+
675
+ The methods above allow to you to test if certain attribute is accessible, inaccessible or protected.
676
+
677
+ Examples:
678
+
679
+ ```ruby
680
+ u = User.first
681
+ u.the_attribute(:id).is.accessible?
682
+ # => false
683
+ u.the_attribute(:id).is.protected?
684
+ # => true
685
+ u.the_attribute(:id).is.inaccessible?
686
+ # => true
687
+ ```
688
+
586
689
  Attribute filters
587
690
  -----------------
588
691
 
@@ -825,6 +928,7 @@ Here is a list of the predefined filtering methods:
825
928
  * `upcase_attributes` (submodule: `Upcase` or `Case`)
826
929
  * `strip_attributes` (submodule: `Strip`)
827
930
  * `squeeze_attributes` (submodule: `Squeeze`)
931
+ * `squish_attributes` (submodule: `Squish`)
828
932
 
829
933
  Example:
830
934
 
@@ -832,11 +936,11 @@ Example:
832
936
  class User < ActiveRecord::Base
833
937
  include ActiveModel::AttributeFilters::Common
834
938
 
835
- the_attribute user: [:should_be_stripped, :should_be_downcased ]
836
- the_attribute email: [:should_be_stripped, :should_be_downcased ]
837
- the_attribute name: [:should_be_stripped, :should_be_downcased, :should_be_titleized ]
939
+ the_attribute user: [:should_be_squished, :should_be_downcased ]
940
+ the_attribute email: [:should_be_squished, :should_be_downcased ]
941
+ the_attribute name: [:should_be_squished, :should_be_downcased, :should_be_titleized ]
838
942
 
839
- before_validation :strip_attributes
943
+ before_validation :squish_attributes
840
944
  before_validation :downcase_attributes
841
945
  before_validation :titleize_attributes
842
946
  end
@@ -846,20 +950,24 @@ or (better):
846
950
 
847
951
  ```ruby
848
952
  class User < ActiveRecord::Base
849
- include ActiveModel::AttributeFilters::Common::Stip
953
+ include ActiveModel::AttributeFilters::Common::Squish
850
954
  include ActiveModel::AttributeFilters::Common::Downcase
851
955
  include ActiveModel::AttributeFilters::Common::Titleize
852
956
 
853
- the_attribute user: [:should_be_stripped, :should_be_downcased ]
854
- the_attribute email: [:should_be_stripped, :should_be_downcased ]
855
- the_attribute name: [:should_be_stripped, :should_be_downcased, :should_be_titleized ]
957
+ the_attribute user: [:should_be_squished, :should_be_downcased ]
958
+ the_attribute email: [:should_be_squished, :should_be_downcased ]
959
+ the_attribute name: [:should_be_squished, :should_be_downcased, :should_be_titleized ]
856
960
 
857
- before_validation :strip_attributes
961
+ before_validation :squished_attributes
858
962
  before_validation :downcase_attributes
859
963
  before_validation :titleize_attributes
860
964
  end
861
965
  ```
862
966
 
967
+ See the
968
+ [`ActiveModel::AttributeFilters::Common`](http://rubydoc.info/gems/attribute-filters/ActiveModel/AttributeFilters/Common)
969
+ for detailed descriptions.
970
+
863
971
  Custom applications
864
972
  -------------------
865
973
 
@@ -15,6 +15,18 @@ module ActiveModel
15
15
  # that allows sweet constructs like:
16
16
  # the_attribute(:x).is.in_set?
17
17
  class AttrQuery < Query
18
+ # Creates new query object.
19
+ #
20
+ # @param set_object [AttributeSet] attribute set containing set names for which the query will be made
21
+ # @param am_object [Object] model object which has access to attributes (may be an instance of ActiveRecord or similar)
22
+ # @param attribute_name [Sting,Symbol] name of attribute the query is made for
23
+ def initialize(set_object, am_object, attribute_name)
24
+ @set_object = set_object
25
+ @am_object = am_object
26
+ @attribute_name = attribute_name.to_s
27
+ @next_method = nil
28
+ end
29
+
18
30
  # This is a proxy method that causes some calls to be
19
31
  # intercepted. Is allows to create semi-natural
20
32
  # syntax when querying attribute sets containing set names.
@@ -42,12 +54,23 @@ module ActiveModel
42
54
  when :are, :is, :one, :is_one, :in, :list, :be, :should,
43
55
  :the, :a, :sets, :in_sets, :set, :in_a_set, :in_set, :belongs_to
44
56
  self
57
+
45
58
  when :belongs_to?, :in?, :in_set?, :in_a_set?, :in_the_set?,
46
59
  :the_set?, :set?, :is_one_that?, :one_that?, :that?
47
60
  if args.present? && args.is_a?(::Array)
48
61
  args = args.map{ |a| a.to_sym if a.respond_to?(:to_sym) }
49
62
  end
50
63
  @set_object.include?(*args, &block)
64
+
65
+ when :accessible?, :is_accessible?
66
+ @am_object.all_accessible_attributes.include?(@attribute_name)
67
+
68
+ when :inaccessible?, :is_inaccessible?
69
+ @am_object.all_inaccessible_attributes.include?(@attribute_name)
70
+
71
+ when :protected?, :is_protected?
72
+ @am_object.all_protected_attributes.include?(@attribute_name)
73
+
51
74
  else
52
75
  set_name_str = method_sym.to_s.dup
53
76
  if !@set_object.respond_to?(method_sym) && set_name_str.slice!(/\?\z/) == '?'
@@ -63,7 +86,9 @@ module ActiveModel
63
86
  case name.to_sym
64
87
  when :are, :is, :one, :is_one, :in, :list, :be, :should, :the, :a, :sets, :in_sets,
65
88
  :set, :in_a_set, :in_set, :in?, :in_set?, :in_a_set?, :in_the_set?, :the_set?, :set?,
66
- :is_one_that?, :one_that?, :that?, :belongs_to?, :belongs_to
89
+ :is_one_that?, :one_that?, :that?, :belongs_to?, :belongs_to,
90
+ :protected?, :is_protected?, :inaccessible?, :is_inaccessible?,
91
+ :accessible?, :is_accessible?
67
92
  true
68
93
  else
69
94
  @set_object.respond_to?(name) || name.to_s.slice(-1,1) == '?'
@@ -112,6 +112,22 @@ module ActiveModel
112
112
  end
113
113
  end
114
114
 
115
+ # Squeezes white characters in attributes, removes leading and trailing spaces and newlines.
116
+ module Squish
117
+ # Squeezes white characters in attributes, removes leading and trailing spaces and newlines.
118
+ #
119
+ # The attrubutes to be squished are taken from the attribute set
120
+ # called +should_be_squished+. This method is safe to be
121
+ # used with multibyte strings (containing diacritics).
122
+ #
123
+ # @return [void]
124
+ def squish_attributes
125
+ filter_attrs_from_set(:should_be_squished) do |atr|
126
+ atr.mb_chars.squish.to_s
127
+ end
128
+ end
129
+ end
130
+
115
131
  # Titleizes attributes.
116
132
  module Titleize
117
133
  # Titleizes attributes.
@@ -19,7 +19,9 @@ module ActiveModel
19
19
  base.extend ClassMethods
20
20
  end
21
21
 
22
- # Returns the attribute set of the given name.
22
+ # Returns the attribute set of the given name or the set containing
23
+ # all attributes (if the argument is not given).
24
+ #
23
25
  # @note The returned value is a duplicate. Adding or removing
24
26
  # elements to it will have no effect. Altering attribute sets
25
27
  # is possible on a class-level only, since attribute sets
@@ -27,8 +29,12 @@ module ActiveModel
27
29
  #
28
30
  # @param set_name [Symbol] name of attribute set
29
31
  # @return [AttributeSet] attribute set
30
- def attribute_set(set_name)
31
- ActiveModel::AttributeSet::Query.new(self.class.attribute_set(set_name), self)
32
+ def attribute_set(set_name=nil)
33
+ if set_name.nil?
34
+ all_attributes
35
+ else
36
+ ActiveModel::AttributeSet::Query.new(self.class.attribute_set(set_name), self)
37
+ end
32
38
  end
33
39
  alias_method :attributes_that_are, :attribute_set
34
40
  alias_method :from_attributes_that, :attribute_set
@@ -48,6 +54,29 @@ module ActiveModel
48
54
  def all_attributes
49
55
  ActiveModel::AttributeSet::Query.new(AttributeSet.new(attributes.keys), self)
50
56
  end
57
+ alias_method :all_attributes_set, :all_attributes
58
+
59
+ # Returns a set containing all accessible attributes.
60
+ # @return [AttributeSet] attribute set
61
+ def all_accessible_attributes
62
+ all_attributes & self.class.accessible_attributes
63
+ end
64
+ alias_method :accessible_attributes_set, :all_accessible_attributes
65
+
66
+ # Returns a set containing all protected attributes.
67
+ # @return [AttributeSet] attribute set
68
+ def all_protected_attributes
69
+ all_attributes & self.class.protected_attributes
70
+ end
71
+ alias_method :protected_attributes_set, :all_protected_attributes
72
+
73
+ # Returns a set containing all attributes that are not accessible attributes.
74
+ # @return [AttributeSet] attribute set
75
+ def all_inaccessible_attributes
76
+ all_attributes - self.class.accessible_attributes
77
+ end
78
+ alias_method :all_non_accessible_attributes, :all_inaccessible_attributes
79
+ alias_method :inaccessible_attributes_set, :all_inaccessible_attributes
51
80
 
52
81
  # Gets all the defined attribute sets.
53
82
  # @note Use +key+ method explicitly to check if the given set exists. The hash returned by this method
@@ -71,7 +100,7 @@ module ActiveModel
71
100
  # @param attribute_name [Symbol] name of attribute set
72
101
  # @return [AttributeSet] attribute set
73
102
  def filtered_attribute(attribute_name)
74
- ActiveModel::AttributeSet::AttrQuery.new(self.class.filter_attribute(attribute_name), self)
103
+ ActiveModel::AttributeSet::AttrQuery.new(self.class.filter_attribute(attribute_name), self, attribute_name)
75
104
  end
76
105
  alias_method :the_attribute, :filtered_attribute
77
106
  alias_method :is_the_attribute, :filtered_attribute
@@ -14,7 +14,7 @@ module ActiveModel
14
14
  # @private
15
15
  EMAIL = 'pw@gnu.org'
16
16
  # @private
17
- VERSION = '1.3.0'
17
+ VERSION = '1.3.1'
18
18
  # @private
19
19
  NAME = 'attribute-filters'
20
20
  # @private
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.3.0
4
+ version: 1.3.1
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-08-04 00:00:00.000000000 Z
51
+ date: 2012-08-05 00:00:00.000000000 Z
52
52
  dependencies:
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: railties
55
- requirement: &2163264920 !ruby/object:Gem::Requirement
55
+ requirement: &2168470740 !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: *2163264920
63
+ version_requirements: *2168470740
64
64
  - !ruby/object:Gem::Dependency
65
65
  name: activemodel
66
- requirement: &2163264460 !ruby/object:Gem::Requirement
66
+ requirement: &2168470280 !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: *2163264460
74
+ version_requirements: *2168470280
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: hoe-yard
77
- requirement: &2163264020 !ruby/object:Gem::Requirement
77
+ requirement: &2168469840 !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: *2163264020
85
+ version_requirements: *2168469840
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: rspec
88
- requirement: &2163263540 !ruby/object:Gem::Requirement
88
+ requirement: &2168469360 !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: *2163263540
96
+ version_requirements: *2168469360
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: yard
99
- requirement: &2163263060 !ruby/object:Gem::Requirement
99
+ requirement: &2168468880 !ruby/object:Gem::Requirement
100
100
  none: false
101
101
  requirements:
102
102
  - - ! '>='
@@ -104,10 +104,10 @@ dependencies:
104
104
  version: 0.8.2
105
105
  type: :development
106
106
  prerelease: false
107
- version_requirements: *2163263060
107
+ version_requirements: *2168468880
108
108
  - !ruby/object:Gem::Dependency
109
109
  name: rdoc
110
- requirement: &2163262620 !ruby/object:Gem::Requirement
110
+ requirement: &2168468440 !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: *2163262620
118
+ version_requirements: *2168468440
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: redcarpet
121
- requirement: &2163262180 !ruby/object:Gem::Requirement
121
+ requirement: &2168468000 !ruby/object:Gem::Requirement
122
122
  none: false
123
123
  requirements:
124
124
  - - ! '>='
@@ -126,10 +126,10 @@ dependencies:
126
126
  version: 2.1.0
127
127
  type: :development
128
128
  prerelease: false
129
- version_requirements: *2163262180
129
+ version_requirements: *2168468000
130
130
  - !ruby/object:Gem::Dependency
131
131
  name: supermodel
132
- requirement: &2163261740 !ruby/object:Gem::Requirement
132
+ requirement: &2168467560 !ruby/object:Gem::Requirement
133
133
  none: false
134
134
  requirements:
135
135
  - - ! '>='
@@ -137,10 +137,10 @@ dependencies:
137
137
  version: 0.1.6
138
138
  type: :development
139
139
  prerelease: false
140
- version_requirements: *2163261740
140
+ version_requirements: *2168467560
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: activerecord
143
- requirement: &2163261300 !ruby/object:Gem::Requirement
143
+ requirement: &2168467120 !ruby/object:Gem::Requirement
144
144
  none: false
145
145
  requirements:
146
146
  - - ! '>='
@@ -148,10 +148,10 @@ dependencies:
148
148
  version: '3.0'
149
149
  type: :development
150
150
  prerelease: false
151
- version_requirements: *2163261300
151
+ version_requirements: *2168467120
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: bundler
154
- requirement: &2163277220 !ruby/object:Gem::Requirement
154
+ requirement: &2168466680 !ruby/object:Gem::Requirement
155
155
  none: false
156
156
  requirements:
157
157
  - - ! '>='
@@ -159,10 +159,10 @@ dependencies:
159
159
  version: 1.0.10
160
160
  type: :development
161
161
  prerelease: false
162
- version_requirements: *2163277220
162
+ version_requirements: *2168466680
163
163
  - !ruby/object:Gem::Dependency
164
164
  name: hoe-bundler
165
- requirement: &2163276780 !ruby/object:Gem::Requirement
165
+ requirement: &2168466240 !ruby/object:Gem::Requirement
166
166
  none: false
167
167
  requirements:
168
168
  - - ! '>='
@@ -170,10 +170,10 @@ dependencies:
170
170
  version: 1.1.0
171
171
  type: :development
172
172
  prerelease: false
173
- version_requirements: *2163276780
173
+ version_requirements: *2168466240
174
174
  - !ruby/object:Gem::Dependency
175
175
  name: hoe-gemspec
176
- requirement: &2163276340 !ruby/object:Gem::Requirement
176
+ requirement: &2168465800 !ruby/object:Gem::Requirement
177
177
  none: false
178
178
  requirements:
179
179
  - - ! '>='
@@ -181,10 +181,10 @@ dependencies:
181
181
  version: 1.0.0
182
182
  type: :development
183
183
  prerelease: false
184
- version_requirements: *2163276340
184
+ version_requirements: *2168465800
185
185
  - !ruby/object:Gem::Dependency
186
186
  name: hoe
187
- requirement: &2163275900 !ruby/object:Gem::Requirement
187
+ requirement: &2168465360 !ruby/object:Gem::Requirement
188
188
  none: false
189
189
  requirements:
190
190
  - - ~>
@@ -192,7 +192,7 @@ dependencies:
192
192
  version: '2.16'
193
193
  type: :development
194
194
  prerelease: false
195
- version_requirements: *2163275900
195
+ version_requirements: *2168465360
196
196
  description: Concise way of filtering model attributes in Rails.
197
197
  email:
198
198
  - pw@gnu.org
@@ -252,7 +252,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
252
252
  version: '0'
253
253
  segments:
254
254
  - 0
255
- hash: 1784207712795011672
255
+ hash: 1058669619257225272
256
256
  required_rubygems_version: !ruby/object:Gem::Requirement
257
257
  none: false
258
258
  requirements:
metadata.gz.sig CHANGED
Binary file