strong_parameters 0.1.5 → 0.1.6

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.
@@ -48,6 +48,12 @@ every model you want protected.
48
48
  include ActiveModel::ForbiddenAttributesProtection
49
49
  end
50
50
 
51
+ If you want to now disable the default whitelisting that occurs in later versions of Rails, change the +config.active_record.whitelist_attributes+ property in your +config/application.rb+:
52
+
53
+ config.active_record.whitelist_attributes = false
54
+
55
+ This will allow you to remove / not have to use +attr_accessible+ and do mass assignment inside your code and tests.
56
+
51
57
  == Compatibility
52
58
 
53
- This plugin is only fully compatible with Rails versions 3.1 and 3.2 but not 4.0+, as it is part of Rails Core in 4.0.
59
+ This plugin is only fully compatible with Rails versions 3.0, 3.1 and 3.2 but not 4.0+, as it is part of Rails Core in 4.0.
data/Rakefile CHANGED
@@ -1,17 +1,13 @@
1
1
  #!/usr/bin/env rake
2
2
  begin
3
3
  require 'bundler/setup'
4
+ require 'bundler/gem_tasks'
4
5
  rescue LoadError
5
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
- end
7
- begin
8
- require 'rdoc/task'
9
- rescue LoadError
10
- require 'rdoc/rdoc'
11
- require 'rake/rdoctask'
12
- RDoc::Task = Rake::RDocTask
6
+ raise 'You must `gem install bundler` and `bundle install` to run rake tasks'
13
7
  end
14
8
 
9
+ require 'rdoc/task'
10
+
15
11
  RDoc::Task.new(:rdoc) do |rdoc|
16
12
  rdoc.rdoc_dir = 'rdoc'
17
13
  rdoc.title = 'StrongParameters'
@@ -20,11 +16,6 @@ RDoc::Task.new(:rdoc) do |rdoc|
20
16
  rdoc.rdoc_files.include('lib/**/*.rb')
21
17
  end
22
18
 
23
-
24
-
25
-
26
- Bundler::GemHelper.install_tasks
27
-
28
19
  require 'rake/testtask'
29
20
 
30
21
  Rake::TestTask.new(:test) do |t|
@@ -34,5 +25,4 @@ Rake::TestTask.new(:test) do |t|
34
25
  t.verbose = false
35
26
  end
36
27
 
37
-
38
28
  task :default => :test
@@ -44,8 +44,10 @@ module ActionController
44
44
  case filter
45
45
  when Symbol, String then
46
46
  params[filter] = self[filter] if has_key?(filter)
47
- keys.grep(/\A#{Regexp.escape(filter)}\(\d+[if]?\)\z/).each { |key| params[key] = self[key] }
47
+ keys.grep(/\A#{Regexp.escape(filter.to_s)}\(\d+[if]?\)\z/).each { |key| params[key] = self[key] }
48
48
  when Hash then
49
+ filter = filter.with_indifferent_access
50
+
49
51
  self.slice(*filter.keys).each do |key, value|
50
52
  return unless value
51
53
 
@@ -72,16 +74,19 @@ module ActionController
72
74
 
73
75
  def fetch(key, *args)
74
76
  convert_hashes_to_parameters(key, super)
75
- rescue KeyError
77
+ rescue KeyError, IndexError
76
78
  raise ActionController::ParameterMissing.new(key)
77
79
  end
78
80
 
79
81
  def slice(*keys)
80
- self.class.new(super)
82
+ self.class.new(super).tap do |new_instance|
83
+ new_instance.instance_variable_set :@permitted, @permitted
84
+ end
81
85
  end
82
86
 
83
87
  def dup
84
- super.tap do |duplicate|
88
+ self.class.new(self).tap do |duplicate|
89
+ duplicate.default = default
85
90
  duplicate.instance_variable_set :@permitted, @permitted
86
91
  end
87
92
  end
@@ -3,7 +3,8 @@ module ActiveModel
3
3
  end
4
4
 
5
5
  module ForbiddenAttributesProtection
6
- def sanitize_for_mass_assignment(new_attributes, options = {})
6
+ def sanitize_for_mass_assignment(*options)
7
+ new_attributes = options.first
7
8
  if !new_attributes.respond_to?(:permitted?) || new_attributes.permitted?
8
9
  super
9
10
  else
@@ -1,3 +1,4 @@
1
+ require 'rails/version'
1
2
  require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'
2
3
 
3
4
  module Rails
@@ -5,6 +6,12 @@ module Rails
5
6
  class StrongParametersControllerGenerator < ScaffoldControllerGenerator
6
7
  argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
7
8
  source_root File.expand_path("../templates", __FILE__)
9
+
10
+ if ::Rails::VERSION::STRING < '3.1'
11
+ def module_namespacing
12
+ yield if block_given?
13
+ end
14
+ end
8
15
  end
9
16
  end
10
17
  end
@@ -1,3 +1,3 @@
1
1
  module StrongParameters
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -9,22 +9,22 @@ end
9
9
 
10
10
  class ActionControllerRequiredParamsTest < ActionController::TestCase
11
11
  tests BooksController
12
-
12
+
13
13
  test "missing required parameters will raise exception" do
14
- post :create, { magazine: { name: "Mjallo!" } }
14
+ post :create, { :magazine => { :name => "Mjallo!" } }
15
15
  assert_response :bad_request
16
16
 
17
- post :create, { book: { title: "Mjallo!" } }
17
+ post :create, { :book => { :title => "Mjallo!" } }
18
18
  assert_response :bad_request
19
19
  end
20
-
20
+
21
21
  test "required parameters that are present will not raise" do
22
- post :create, { book: { name: "Mjallo!" } }
22
+ post :create, { :book => { :name => "Mjallo!" } }
23
23
  assert_response :ok
24
24
  end
25
-
25
+
26
26
  test "missing parameters will be mentioned in the return" do
27
- post :create, { magazine: { name: "Mjallo!" } }
27
+ post :create, { :magazine => { :name => "Mjallo!" } }
28
28
  assert_equal "Required parameter missing: book", response.body
29
29
  end
30
30
  end
@@ -2,24 +2,24 @@ require 'test_helper'
2
2
 
3
3
  class PeopleController < ActionController::Base
4
4
  def create
5
- render text: params[:person].permitted? ? "untainted" : "tainted"
5
+ render :text => params[:person].permitted? ? "untainted" : "tainted"
6
6
  end
7
-
7
+
8
8
  def create_with_permit
9
- render text: params[:person].permit(:name).permitted? ? "untainted" : "tainted"
9
+ render :text => params[:person].permit(:name).permitted? ? "untainted" : "tainted"
10
10
  end
11
11
  end
12
12
 
13
13
  class ActionControllerTaintedParamsTest < ActionController::TestCase
14
14
  tests PeopleController
15
-
15
+
16
16
  test "parameters are tainted" do
17
- post :create, { person: { name: "Mjallo!" } }
17
+ post :create, { :person => { :name => "Mjallo!" } }
18
18
  assert_equal "tainted", response.body
19
19
  end
20
-
20
+
21
21
  test "parameters can be permitted and are then not tainted" do
22
- post :create_with_permit, { person: { name: "Mjallo!" } }
22
+ post :create_with_permit, { :person => { :name => "Mjallo!" } }
23
23
  assert_equal "untainted", response.body
24
24
  end
25
25
  end
@@ -3,28 +3,28 @@ require 'test_helper'
3
3
  class Person
4
4
  include ActiveModel::MassAssignmentSecurity
5
5
  include ActiveModel::ForbiddenAttributesProtection
6
-
6
+
7
7
  public :sanitize_for_mass_assignment
8
8
  end
9
9
 
10
10
  class ActiveModelMassUpdateProtectionTest < ActiveSupport::TestCase
11
11
  test "forbidden attributes cannot be used for mass updating" do
12
12
  assert_raises(ActiveModel::ForbiddenAttributes) do
13
- Person.new.sanitize_for_mass_assignment(ActionController::Parameters.new(a: "b"))
13
+ Person.new.sanitize_for_mass_assignment(ActionController::Parameters.new(:a => "b"))
14
14
  end
15
15
  end
16
16
 
17
17
  test "permitted attributes can be used for mass updating" do
18
18
  assert_nothing_raised do
19
19
  assert_equal({ "a" => "b" },
20
- Person.new.sanitize_for_mass_assignment(ActionController::Parameters.new(a: "b").permit(:a)))
20
+ Person.new.sanitize_for_mass_assignment(ActionController::Parameters.new(:a => "b").permit(:a)))
21
21
  end
22
22
  end
23
-
23
+
24
24
  test "regular attributes should still be allowed" do
25
25
  assert_nothing_raised do
26
- assert_equal({ a: "b" },
27
- Person.new.sanitize_for_mass_assignment(a: "b"))
26
+ assert_equal({ :a => "b" },
27
+ Person.new.sanitize_for_mass_assignment(:a => "b"))
28
28
  end
29
29
  end
30
30
  end
@@ -0,0 +1,6 @@
1
+ source :rubygems
2
+ gemspec :path => "./../.."
3
+
4
+ gem "actionpack", "~> 3.0.0"
5
+ gem "railties", "~> 3.0.0"
6
+ gem "activemodel", "~> 3.0.0"
@@ -0,0 +1,62 @@
1
+ PATH
2
+ remote: /Users/mgrosser/code/tools/strong_parameters
3
+ specs:
4
+ strong_parameters (0.1.6.dev)
5
+ actionpack (~> 3.0)
6
+ activemodel (~> 3.0)
7
+ railties (~> 3.0)
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ abstract (1.0.0)
13
+ actionpack (3.0.17)
14
+ activemodel (= 3.0.17)
15
+ activesupport (= 3.0.17)
16
+ builder (~> 2.1.2)
17
+ erubis (~> 2.6.6)
18
+ i18n (~> 0.5.0)
19
+ rack (~> 1.2.5)
20
+ rack-mount (~> 0.6.14)
21
+ rack-test (~> 0.5.7)
22
+ tzinfo (~> 0.3.23)
23
+ activemodel (3.0.17)
24
+ activesupport (= 3.0.17)
25
+ builder (~> 2.1.2)
26
+ i18n (~> 0.5.0)
27
+ activesupport (3.0.17)
28
+ builder (2.1.2)
29
+ erubis (2.6.6)
30
+ abstract (>= 1.0.0)
31
+ i18n (0.5.0)
32
+ json (1.7.5)
33
+ metaclass (0.0.1)
34
+ mocha (0.12.7)
35
+ metaclass (~> 0.0.1)
36
+ rack (1.2.5)
37
+ rack-mount (0.6.14)
38
+ rack (>= 1.0.0)
39
+ rack-test (0.5.7)
40
+ rack (>= 1.0)
41
+ railties (3.0.17)
42
+ actionpack (= 3.0.17)
43
+ activesupport (= 3.0.17)
44
+ rake (>= 0.8.7)
45
+ rdoc (~> 3.4)
46
+ thor (~> 0.14.4)
47
+ rake (10.0.1)
48
+ rdoc (3.12)
49
+ json (~> 1.4)
50
+ thor (0.14.6)
51
+ tzinfo (0.3.35)
52
+
53
+ PLATFORMS
54
+ ruby
55
+
56
+ DEPENDENCIES
57
+ actionpack (~> 3.0.0)
58
+ activemodel (~> 3.0.0)
59
+ mocha (~> 0.12.0)
60
+ railties (~> 3.0.0)
61
+ rake
62
+ strong_parameters!
@@ -0,0 +1,6 @@
1
+ source :rubygems
2
+ gemspec :path => "./../.."
3
+
4
+ gem "actionpack", "~> 3.1.0"
5
+ gem "railties", "~> 3.1.0"
6
+ gem "activemodel", "~> 3.1.0"
@@ -0,0 +1,6 @@
1
+ source :rubygems
2
+ gemspec :path => "./../.."
3
+
4
+ gem "actionpack", "~> 3.2.0"
5
+ gem "railties", "~> 3.2.0"
6
+ gem "activemodel", "~> 3.2.0"
@@ -4,7 +4,7 @@ require 'action_controller/parameters'
4
4
  class MultiParameterAttributesTest < ActiveSupport::TestCase
5
5
  test "permitted multi-parameter attribute keys" do
6
6
  params = ActionController::Parameters.new({
7
- book: {
7
+ :book => {
8
8
  "shipped_at(1i)" => "2012",
9
9
  "shipped_at(2i)" => "3",
10
10
  "shipped_at(3i)" => "25",
@@ -18,7 +18,7 @@ class MultiParameterAttributesTest < ActiveSupport::TestCase
18
18
  }
19
19
  })
20
20
 
21
- permitted = params.permit book: [ :shipped_at, :price ]
21
+ permitted = params.permit :book => [ :shipped_at, :price ]
22
22
 
23
23
  assert permitted.permitted?
24
24
 
@@ -4,23 +4,23 @@ require 'action_controller/parameters'
4
4
  class NestedParametersTest < ActiveSupport::TestCase
5
5
  test "permitted nested parameters" do
6
6
  params = ActionController::Parameters.new({
7
- book: {
8
- title: "Romeo and Juliet",
9
- authors: [{
10
- name: "William Shakespeare",
11
- born: "1564-04-26"
7
+ :book => {
8
+ :title => "Romeo and Juliet",
9
+ :authors => [{
10
+ :name => "William Shakespeare",
11
+ :born => "1564-04-26"
12
12
  }, {
13
- name: "Christopher Marlowe"
13
+ :name => "Christopher Marlowe"
14
14
  }],
15
- details: {
16
- pages: 200,
17
- genre: "Tragedy"
15
+ :details => {
16
+ :pages => 200,
17
+ :genre => "Tragedy"
18
18
  }
19
19
  },
20
- magazine: "Mjallo!"
20
+ :magazine => "Mjallo!"
21
21
  })
22
22
 
23
- permitted = params.permit book: [ :title, { authors: [ :name ] }, { details: :pages } ]
23
+ permitted = params.permit :book => [ :title, { :authors => [ :name ] }, { :details => :pages } ]
24
24
 
25
25
  assert permitted.permitted?
26
26
  assert_equal "Romeo and Juliet", permitted[:book][:title]
@@ -32,6 +32,31 @@ class NestedParametersTest < ActiveSupport::TestCase
32
32
  assert_nil permitted[:magazine]
33
33
  end
34
34
 
35
+ test "permitted nested parameters with a string or a symbol as a key" do
36
+ params = ActionController::Parameters.new({
37
+ :book => {
38
+ 'authors' => [
39
+ { :name => "William Shakespeare", :born => "1564-04-26" },
40
+ { :name => "Christopher Marlowe" }
41
+ ]
42
+ }
43
+ })
44
+
45
+ permitted = params.permit :book => [ { 'authors' => [ :name ] } ]
46
+
47
+ assert_equal "William Shakespeare", permitted[:book]['authors'][0][:name]
48
+ assert_equal "William Shakespeare", permitted[:book][:authors][0][:name]
49
+ assert_equal "Christopher Marlowe", permitted[:book]['authors'][1][:name]
50
+ assert_equal "Christopher Marlowe", permitted[:book][:authors][1][:name]
51
+
52
+ permitted = params.permit :book => [ { :authors => [ :name ] } ]
53
+
54
+ assert_equal "William Shakespeare", permitted[:book]['authors'][0][:name]
55
+ assert_equal "William Shakespeare", permitted[:book][:authors][0][:name]
56
+ assert_equal "Christopher Marlowe", permitted[:book]['authors'][1][:name]
57
+ assert_equal "Christopher Marlowe", permitted[:book][:authors][1][:name]
58
+ end
59
+
35
60
  test "nested arrays with strings" do
36
61
  params = ActionController::Parameters.new({
37
62
  :book => {
@@ -45,14 +70,14 @@ class NestedParametersTest < ActiveSupport::TestCase
45
70
 
46
71
  test "permit may specify symbols or strings" do
47
72
  params = ActionController::Parameters.new({
48
- book: {
49
- title: "Romeo and Juliet",
50
- author: "William Shakespeare"
73
+ :book => {
74
+ :title => "Romeo and Juliet",
75
+ :author => "William Shakespeare"
51
76
  },
52
- magazine: "Shakespeare Today"
77
+ :magazine => "Shakespeare Today"
53
78
  })
54
79
 
55
- permitted = params.permit({ book: ["title", :author] }, "magazine")
80
+ permitted = params.permit({ :book => ["title", :author] }, "magazine")
56
81
  assert_equal "Romeo and Juliet", permitted[:book][:title]
57
82
  assert_equal "William Shakespeare", permitted[:book][:author]
58
83
  assert_equal "Shakespeare Today", permitted[:magazine]
@@ -60,49 +85,49 @@ class NestedParametersTest < ActiveSupport::TestCase
60
85
 
61
86
  test "nested array with strings that should be hashes" do
62
87
  params = ActionController::Parameters.new({
63
- book: {
64
- genres: ["Tragedy"]
88
+ :book => {
89
+ :genres => ["Tragedy"]
65
90
  }
66
91
  })
67
92
 
68
- permitted = params.permit book: { genres: :type }
69
- assert_empty permitted[:book][:genres]
93
+ permitted = params.permit :book => { :genres => :type }
94
+ assert permitted[:book][:genres].empty?
70
95
  end
71
96
 
72
97
  test "nested array with strings that should be hashes and additional values" do
73
98
  params = ActionController::Parameters.new({
74
- book: {
75
- title: "Romeo and Juliet",
76
- genres: ["Tragedy"]
99
+ :book => {
100
+ :title => "Romeo and Juliet",
101
+ :genres => ["Tragedy"]
77
102
  }
78
103
  })
79
104
 
80
- permitted = params.permit book: [ :title, { genres: :type } ]
105
+ permitted = params.permit :book => [ :title, { :genres => :type } ]
81
106
  assert_equal "Romeo and Juliet", permitted[:book][:title]
82
- assert_empty permitted[:book][:genres]
107
+ assert permitted[:book][:genres].empty?
83
108
  end
84
109
 
85
110
  test "nested string that should be a hash" do
86
111
  params = ActionController::Parameters.new({
87
- book: {
88
- genre: "Tragedy"
112
+ :book => {
113
+ :genre => "Tragedy"
89
114
  }
90
115
  })
91
116
 
92
- permitted = params.permit book: { genre: :type }
117
+ permitted = params.permit :book => { :genre => :type }
93
118
  assert_nil permitted[:book][:genre]
94
119
  end
95
120
 
96
121
  test "fields_for_style_nested_params" do
97
122
  params = ActionController::Parameters.new({
98
- book: {
99
- authors_attributes: {
100
- :'0' => { name: 'William Shakespeare', age_of_death: '52' },
101
- :'1' => { name: 'Unattributed Assistant' }
123
+ :book => {
124
+ :authors_attributes => {
125
+ :'0' => { :name => 'William Shakespeare', :age_of_death => '52' },
126
+ :'1' => { :name => 'Unattributed Assistant' }
102
127
  }
103
128
  }
104
129
  })
105
- permitted = params.permit book: { authors_attributes: [ :name ] }
130
+ permitted = params.permit :book => { :authors_attributes => [ :name ] }
106
131
 
107
132
  assert_not_nil permitted[:book][:authors_attributes]['0']
108
133
  assert_not_nil permitted[:book][:authors_attributes]['1']
@@ -112,15 +137,15 @@ class NestedParametersTest < ActiveSupport::TestCase
112
137
  end
113
138
 
114
139
  test "fields_for_style_nested_params with negative numbers" do
115
- params = ActionController::Parameters.new({
116
- book: {
117
- authors_attributes: {
118
- :'-1' => {name: 'William Shakespeare', age_of_death: '52'},
119
- :'-2' => {name: 'Unattributed Assistant'}
140
+ params = ActionController::Parameters.new({
141
+ :book => {
142
+ :authors_attributes => {
143
+ :'-1' => { :name => 'William Shakespeare', :age_of_death => '52' },
144
+ :'-2' => { :name => 'Unattributed Assistant' }
120
145
  }
121
146
  }
122
147
  })
123
- permitted = params.permit book: {authors_attributes: [:name]}
148
+ permitted = params.permit :book => { :authors_attributes => [:name] }
124
149
 
125
150
  assert_not_nil permitted[:book][:authors_attributes]['-1']
126
151
  assert_not_nil permitted[:book][:authors_attributes]['-2']
@@ -4,7 +4,7 @@ require 'action_controller/parameters'
4
4
  class ParametersRequireTest < ActiveSupport::TestCase
5
5
  test "required parameters must be present not merely not nil" do
6
6
  assert_raises(ActionController::ParameterMissing) do
7
- ActionController::Parameters.new(person: {}).require(:person)
7
+ ActionController::Parameters.new(:person => {}).require(:person)
8
8
  end
9
9
  end
10
10
  end
@@ -3,8 +3,8 @@ require 'action_controller/parameters'
3
3
 
4
4
  class ParametersTaintTest < ActiveSupport::TestCase
5
5
  setup do
6
- @params = ActionController::Parameters.new({ person: {
7
- age: "32", name: { first: "David", last: "Heinemeier Hansson" }
6
+ @params = ActionController::Parameters.new({ :person => {
7
+ :age => "32", :name => { :first => "David", :last => "Heinemeier Hansson" }
8
8
  }})
9
9
  end
10
10
 
@@ -22,34 +22,59 @@ class ParametersTaintTest < ActiveSupport::TestCase
22
22
  end
23
23
  end
24
24
 
25
- test "permitted is sticky on accessors" do
25
+ test "not permitted is sticky on accessors" do
26
26
  assert !@params.slice(:person).permitted?
27
27
  assert !@params[:person][:name].permitted?
28
+ assert !@params[:person].except(:name).permitted?
28
29
 
29
- @params.each { |key, value| assert(value.permitted?) if key == :person }
30
+ @params.each { |key, value| assert(!value.permitted?) if key == "person" }
30
31
 
31
32
  assert !@params.fetch(:person).permitted?
32
33
 
33
34
  assert !@params.values_at(:person).first.permitted?
34
35
  end
35
36
 
37
+ test "permitted is sticky on accessors" do
38
+ @params.permit!
39
+ assert @params.slice(:person).permitted?
40
+ assert @params[:person][:name].permitted?
41
+ assert @params[:person].except(:name).permitted?
42
+
43
+ @params.each { |key, value| assert(value.permitted?) if key == "person" }
44
+
45
+ assert @params.fetch(:person).permitted?
46
+
47
+ assert @params.values_at(:person).first.permitted?
48
+ end
49
+
50
+ test "not permitted is sticky on mutators" do
51
+ assert !@params.delete_if { |k, v| k == "person" }.permitted?
52
+ assert !@params.keep_if { |k, v| k == "person" }.permitted? if @params.respond_to?(:keep_if)
53
+ end
54
+
36
55
  test "permitted is sticky on mutators" do
37
- assert !@params.delete_if { |k| k == :person }.permitted?
38
- assert !@params.keep_if { |k,v| k == :person }.permitted?
56
+ @params.permit!
57
+ assert @params.delete_if { |k, v| k == "person" }.permitted?
58
+ assert @params.keep_if { |k, v| k == "person" }.permitted? if @params.respond_to?(:keep_if)
59
+ end
60
+
61
+ test "not permitted is sticky beyond merges" do
62
+ assert !@params.merge(:a => "b").permitted?
39
63
  end
40
64
 
41
65
  test "permitted is sticky beyond merges" do
42
- assert !@params.merge(a: "b").permitted?
66
+ @params.permit!
67
+ assert @params.merge(:a => "b").permitted?
43
68
  end
44
69
 
45
70
  test "modifying the parameters" do
46
71
  @params[:person][:hometown] = "Chicago"
47
- @params[:person][:family] = { brother: "Jonas" }
72
+ @params[:person][:family] = { :brother => "Jonas" }
48
73
 
49
74
  assert_equal "Chicago", @params[:person][:hometown]
50
75
  assert_equal "Jonas", @params[:person][:family][:brother]
51
76
  end
52
-
77
+
53
78
  test "permitting parameters that are not there should not include the keys" do
54
79
  assert !@params.permit(:person, :funky).has_key?(:funky)
55
80
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strong_parameters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-19 00:00:00.000000000 Z
12
+ date: 2012-12-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: '3.1'
21
+ version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: '3.1'
29
+ version: '3.0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: activemodel
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '3.1'
37
+ version: '3.0'
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '3.1'
45
+ version: '3.0'
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: railties
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: '3.1'
53
+ version: '3.0'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '3.1'
61
+ version: '3.0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rake
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -80,17 +80,17 @@ dependencies:
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
- - - ! '>='
83
+ - - ~>
84
84
  - !ruby/object:Gem::Version
85
- version: '0'
85
+ version: 0.12.0
86
86
  type: :development
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
- - - ! '>='
91
+ - - ~>
92
92
  - !ruby/object:Gem::Version
93
- version: '0'
93
+ version: 0.12.0
94
94
  description:
95
95
  email:
96
96
  - david@heinemeierhansson.com
@@ -113,6 +113,10 @@ files:
113
113
  - test/action_controller_tainted_params_test.rb
114
114
  - test/active_model_mass_assignment_taint_protection_test.rb
115
115
  - test/controller_generator_test.rb
116
+ - test/gemfiles/Gemfile.rails-3.0.x
117
+ - test/gemfiles/Gemfile.rails-3.0.x.lock
118
+ - test/gemfiles/Gemfile.rails-3.1.x
119
+ - test/gemfiles/Gemfile.rails-3.2.x
116
120
  - test/multi_parameter_attributes_test.rb
117
121
  - test/nested_parameters_test.rb
118
122
  - test/parameters_require_test.rb
@@ -147,6 +151,10 @@ test_files:
147
151
  - test/action_controller_tainted_params_test.rb
148
152
  - test/active_model_mass_assignment_taint_protection_test.rb
149
153
  - test/controller_generator_test.rb
154
+ - test/gemfiles/Gemfile.rails-3.0.x
155
+ - test/gemfiles/Gemfile.rails-3.0.x.lock
156
+ - test/gemfiles/Gemfile.rails-3.1.x
157
+ - test/gemfiles/Gemfile.rails-3.2.x
150
158
  - test/multi_parameter_attributes_test.rb
151
159
  - test/nested_parameters_test.rb
152
160
  - test/parameters_require_test.rb