filtered_attributes 0.1.0 → 0.1.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.
data/README.md CHANGED
@@ -53,15 +53,15 @@ you</a>. However, this library will not work with Ruby versions prior to
53
53
 
54
54
  filter\_attributes takes parameters:
55
55
 
56
- - **resource_name** key in params hash where attributes for resource
57
- are passed, for example ```:user``` will mean ```params[:user]``` stores
58
- attributes to be filtered
59
- - **options** (Hash), with keys
56
+ - **resource_name** prefix of method name, which returns filtered
57
+ attributes. ```:user``` will generate user_attributes method on
58
+ controller.
59
+ - **options** (Hash), with keys
60
60
  - **:allow** (Array) list of allowed attributes, defaults to ```[]```
61
- - **:as** (Symbol) prefix of helper method, defaults to resource_name,
62
- for example ```filter_attributes_for :user, as: :account```
63
- will seek for attributes in ```params[:user]```, but create helper method
64
- account_attributes in your controller
61
+ - **:as** (Symbol) key in ```params``` hash, from where attributes are
62
+ taken, defaults to resource_name, for example ```filter_attributes_for :user, as: :account```
63
+ will seek for attributes in ```params[:account]```, but create helper method
64
+ user_attributes in your controller
65
65
  - **:only** (Array) - list of actions that parameters will be filtered
66
66
  for
67
67
  - **:except** (Array) - opposite of **only**, can't be used together
@@ -12,7 +12,7 @@ module FilteredAttributes
12
12
  instance_variable_get "@_#{options[:as]}_attributes"
13
13
  end
14
14
 
15
- self.send :private, "#{options[:as]}_attributes".to_sym
15
+ self.send :private, "#{resource_name}_attributes".to_sym
16
16
 
17
17
  filter_params = if options[:only]
18
18
  { only: options[:only] }
@@ -26,11 +26,11 @@ module FilteredAttributes
26
26
  params_hash = if options[:attributes_hash].respond_to? :call
27
27
  options[:attributes_hash].call params
28
28
  else
29
- params[resource_name]
29
+ params[options[:as]]
30
30
  end
31
31
 
32
32
  if params_hash
33
- instance_variable_set "@_#{options[:as]}_attributes", HashWithIndifferentAccess.new(
33
+ instance_variable_set "@_#{resource_name}_attributes", HashWithIndifferentAccess.new(
34
34
  params_hash.select {|k,v| options[:allow].include?(k.to_s)}
35
35
  )
36
36
  end
@@ -1,3 +1,3 @@
1
1
  module FilteredAttributes
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -465,3 +465,49 @@ Completed 200 OK in 3ms (Views: 2.3ms)
465
465
  Processing by BasicFiltersController#create as HTML
466
466
  Parameters: {"user"=>{"email"=>"foo@example.com", "admin"=>true}}
467
467
  Completed 200 OK in 1ms (Views: 0.3ms)
468
+ Processing by AdvancedFiltersController#create as HTML
469
+ Parameters: {"account"=>{"email"=>"foo@example.com", "admin"=>true}}
470
+ Rendered text template (0.0ms)
471
+ Completed 200 OK in 12ms (Views: 11.9ms)
472
+ Processing by AdvancedFiltersController#update as HTML
473
+ Parameters: {"account"=>{"email"=>"foo@example.com", "admin"=>true}}
474
+ Rendered text template (0.0ms)
475
+ Completed 200 OK in 1ms (Views: 0.4ms)
476
+ Processing by AdvancedFiltersController#foo as HTML
477
+ Parameters: {"foo"=>{"bar"=>{"account"=>{"email"=>"foo@example.com", "admin"=>true}}}}
478
+ Completed 200 OK in 1ms (Views: 0.3ms)
479
+ Processing by AdvancedFiltersController#create as HTML
480
+ Parameters: {"account"=>{"email"=>"foo@example.com", "admin"=>true}}
481
+ Completed 200 OK in 0ms (Views: 0.2ms)
482
+ Processing by AdvancedFiltersController#update as HTML
483
+ Parameters: {"account"=>{"email"=>"foo@example.com", "admin"=>true}}
484
+ Completed 200 OK in 0ms (Views: 0.2ms)
485
+ Processing by BasicFiltersController#create as HTML
486
+ Parameters: {"user"=>{"email"=>"foo@example.com", "admin"=>true}}
487
+ Completed 200 OK in 3ms (Views: 2.2ms)
488
+ Processing by BasicFiltersController#create as HTML
489
+ Parameters: {"user"=>{"email"=>"foo@example.com", "admin"=>true}}
490
+ Completed 200 OK in 0ms (Views: 0.3ms)
491
+ Processing by AdvancedFiltersController#create as HTML
492
+ Parameters: {"account"=>{"email"=>"foo@example.com", "admin"=>true}}
493
+ Rendered text template (0.0ms)
494
+ Completed 200 OK in 12ms (Views: 11.9ms)
495
+ Processing by AdvancedFiltersController#update as HTML
496
+ Parameters: {"account"=>{"email"=>"foo@example.com", "admin"=>true}}
497
+ Rendered text template (0.0ms)
498
+ Completed 200 OK in 1ms (Views: 0.4ms)
499
+ Processing by AdvancedFiltersController#foo as HTML
500
+ Parameters: {"foo"=>{"bar"=>{"account"=>{"email"=>"foo@example.com", "admin"=>true}}}}
501
+ Completed 200 OK in 1ms (Views: 0.3ms)
502
+ Processing by AdvancedFiltersController#create as HTML
503
+ Parameters: {"account"=>{"email"=>"foo@example.com", "admin"=>true}}
504
+ Completed 200 OK in 0ms (Views: 0.2ms)
505
+ Processing by AdvancedFiltersController#update as HTML
506
+ Parameters: {"account"=>{"email"=>"foo@example.com", "admin"=>true}}
507
+ Completed 200 OK in 0ms (Views: 0.2ms)
508
+ Processing by BasicFiltersController#create as HTML
509
+ Parameters: {"user"=>{"email"=>"foo@example.com", "admin"=>true}}
510
+ Completed 200 OK in 2ms (Views: 2.1ms)
511
+ Processing by BasicFiltersController#create as HTML
512
+ Parameters: {"user"=>{"email"=>"foo@example.com", "admin"=>true}}
513
+ Completed 200 OK in 1ms (Views: 0.4ms)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filtered_attributes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
- requirement: &16952000 !ruby/object:Gem::Requirement
17
+ requirement: &16839620 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 3.1.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *16952000
25
+ version_requirements: *16839620
26
26
  description: Different than attr_accessible/protected (that can still be used with
27
27
  this gem), you can specify which parameters will be allowed in your controllers.
28
28
  email:
@@ -85,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
85
  version: '0'
86
86
  segments:
87
87
  - 0
88
- hash: 4344139965371851452
88
+ hash: -3376348403804608473
89
89
  required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  none: false
91
91
  requirements:
@@ -94,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  version: '0'
95
95
  segments:
96
96
  - 0
97
- hash: 4344139965371851452
97
+ hash: -3376348403804608473
98
98
  requirements: []
99
99
  rubyforge_project:
100
100
  rubygems_version: 1.6.2