attribute_ext 1.3.0 → 1.4.0

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.
Files changed (45) hide show
  1. data/.gitignore +4 -0
  2. data/README.md +7 -3
  3. data/attribute_ext.gemspec +5 -1
  4. data/lib/attribute_ext/hidden_attributes.rb +3 -2
  5. data/lib/attribute_ext/safe_attributes.rb +24 -9
  6. data/lib/attribute_ext.rb +6 -1
  7. data/spec/dummy/Rakefile +7 -0
  8. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  9. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  10. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  11. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  12. data/spec/dummy/app/mailers/.gitkeep +0 -0
  13. data/spec/{support/stub.rb → dummy/app/models/user.rb} +19 -14
  14. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  15. data/spec/dummy/config/application.rb +62 -0
  16. data/spec/dummy/config/boot.rb +10 -0
  17. data/spec/dummy/config/database.yml +25 -0
  18. data/spec/dummy/config/environment.rb +5 -0
  19. data/spec/dummy/config/environments/development.rb +37 -0
  20. data/spec/dummy/config/environments/production.rb +67 -0
  21. data/spec/dummy/config/environments/test.rb +37 -0
  22. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  23. data/spec/dummy/config/initializers/inflections.rb +15 -0
  24. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  25. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  26. data/spec/dummy/config/initializers/session_store.rb +8 -0
  27. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  28. data/spec/dummy/config/locales/en.yml +5 -0
  29. data/spec/dummy/config/routes.rb +58 -0
  30. data/spec/dummy/config.ru +4 -0
  31. data/spec/dummy/db/migrate/20120306121700_create_users.rb +26 -0
  32. data/spec/dummy/lib/assets/.gitkeep +0 -0
  33. data/spec/dummy/log/.gitkeep +0 -0
  34. data/spec/dummy/log/development.log +0 -0
  35. data/spec/dummy/public/404.html +26 -0
  36. data/spec/dummy/public/422.html +26 -0
  37. data/spec/dummy/public/500.html +25 -0
  38. data/spec/dummy/public/favicon.ico +0 -0
  39. data/spec/dummy/script/rails +6 -0
  40. data/spec/hidden_attributes_spec.rb +61 -11
  41. data/spec/safe_attributes_spec.rb +67 -34
  42. data/spec/spec_helper.rb +10 -4
  43. data/spec/support/in_memory_database.rb +11 -0
  44. metadata +88 -42
  45. data/spec/support/fake_environment.rb +0 -29
@@ -0,0 +1,58 @@
1
+ Dummy::Application.routes.draw do
2
+ # The priority is based upon order of creation:
3
+ # first created -> highest priority.
4
+
5
+ # Sample of regular route:
6
+ # match 'products/:id' => 'catalog#view'
7
+ # Keep in mind you can assign values other than :controller and :action
8
+
9
+ # Sample of named route:
10
+ # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
11
+ # This route can be invoked with purchase_url(:id => product.id)
12
+
13
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
14
+ # resources :products
15
+
16
+ # Sample resource route with options:
17
+ # resources :products do
18
+ # member do
19
+ # get 'short'
20
+ # post 'toggle'
21
+ # end
22
+ #
23
+ # collection do
24
+ # get 'sold'
25
+ # end
26
+ # end
27
+
28
+ # Sample resource route with sub-resources:
29
+ # resources :products do
30
+ # resources :comments, :sales
31
+ # resource :seller
32
+ # end
33
+
34
+ # Sample resource route with more complex sub-resources
35
+ # resources :products do
36
+ # resources :comments
37
+ # resources :sales do
38
+ # get 'recent', :on => :collection
39
+ # end
40
+ # end
41
+
42
+ # Sample resource route within a namespace:
43
+ # namespace :admin do
44
+ # # Directs /admin/products/* to Admin::ProductsController
45
+ # # (app/controllers/admin/products_controller.rb)
46
+ # resources :products
47
+ # end
48
+
49
+ # You can have the root of your site routed with "root"
50
+ # just remember to delete public/index.html.
51
+ # root :to => 'welcome#index'
52
+
53
+ # See how all your routes lay out with "rake routes"
54
+
55
+ # This is a legacy wild controller route that's not recommended for RESTful applications.
56
+ # Note: This route will make all actions in every controller accessible via GET requests.
57
+ # match ':controller(/:action(/:id))(.:format)'
58
+ end
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Dummy::Application
@@ -0,0 +1,26 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :users do |t|
4
+ t.string :opts
5
+
6
+ t.string :attribute_hash
7
+ t.string :attribute_if
8
+ t.string :attribute_if_hash
9
+ t.string :attribute_unless
10
+ t.string :attribute_unless_hash
11
+ t.string :attribute_if_unless
12
+ t.string :attribute_if_format
13
+ t.string :attribute_unless_format
14
+ t.string :attribute_if_opts
15
+ t.string :attribute_unless_opts
16
+ t.string :attribute_only_xml
17
+ t.string :attribute_only_json
18
+ t.string :attribute_only_hash
19
+ t.string :attribute_except_xml
20
+ t.string :attribute_except_json
21
+ t.string :attribute_except_hash
22
+ t.string :attribute_only_xml_txt
23
+ t.string :attribute_except_xml_txt
24
+ end
25
+ end
26
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -13,7 +13,7 @@ describe AttributeExt::HiddenAttributes do
13
13
  user = User.new
14
14
  user.hidden_attribute_names(:format).should_not include('attribute_if')
15
15
 
16
- user = User.new :if => true
16
+ user = User.new :opts => { :if => true }
17
17
  user.hidden_attribute_names(:format).should include('attribute_if')
18
18
  end
19
19
 
@@ -21,7 +21,7 @@ describe AttributeExt::HiddenAttributes do
21
21
  user = User.new
22
22
  user.hidden_attribute_names(:format).should_not include('attribute_unless')
23
23
 
24
- user = User.new :unless => false
24
+ user = User.new :opts => { :unless => false }
25
25
  user.hidden_attribute_names(:format).should include('attribute_unless')
26
26
  end
27
27
 
@@ -29,13 +29,13 @@ describe AttributeExt::HiddenAttributes do
29
29
  user = User.new
30
30
  user.hidden_attribute_names(:format).should_not include('attribute_if_unless')
31
31
 
32
- user = User.new :if => true
32
+ user = User.new :opts => { :if => true }
33
33
  user.hidden_attribute_names(:format).should_not include('attribute_if_unless')
34
34
 
35
- user = User.new :unless => false
35
+ user = User.new :opts => { :unless => false }
36
36
  user.hidden_attribute_names(:format).should_not include('attribute_if_unless')
37
37
 
38
- user = User.new :unless => false, :if => true
38
+ user = User.new :opts => { :unless => false, :if => true }
39
39
  user.hidden_attribute_names(:format).should include('attribute_if_unless')
40
40
  end
41
41
 
@@ -70,13 +70,13 @@ describe AttributeExt::HiddenAttributes do
70
70
  end
71
71
 
72
72
  it 'only applies rules to hash if wanted (if condition)' do
73
- user = User.new :if => true
73
+ user = User.new :opts => { :if => true }
74
74
  user.hidden_attribute_names(:hash).should_not include('attribute_if')
75
75
  user.hidden_attribute_names(:hash).should include('attribute_if_hash')
76
76
  end
77
77
 
78
78
  it 'only applies rules to hash if wanted (unless condition)' do
79
- user = User.new :unless => false
79
+ user = User.new :opts => { :unless => false }
80
80
  user.hidden_attribute_names(:hash).should_not include('attribute_unless')
81
81
  user.hidden_attribute_names(:hash).should include('attribute_unless_hash')
82
82
  end
@@ -131,21 +131,71 @@ describe AttributeExt::HiddenAttributes do
131
131
 
132
132
  it 'supports json export' do
133
133
  user = User.new
134
- user.hidden_attribute_names(:json).should == user.as_json[:except]
134
+ user.to_json.should == {
135
+ "attribute_except_json" => nil,
136
+ "attribute_if" => nil,
137
+ "attribute_if_format" => nil,
138
+ "attribute_if_hash" => nil,
139
+ "attribute_if_opts" => nil,
140
+ "attribute_if_unless" => nil,
141
+ "attribute_only_hash" => nil,
142
+ "attribute_only_xml" => nil,
143
+ "attribute_only_xml_txt" => nil,
144
+ "attribute_unless" => nil,
145
+ "attribute_unless_hash" => nil
146
+ }.to_json
135
147
  end
136
148
 
137
149
  it 'supports deep json export via serializable hash (depends on rails)' do
138
150
  user = User.new
139
- user.hidden_attribute_names(:json).should == user.as_json({:include => true})[:except]
151
+ user.as_json.should == {
152
+ "attribute_except_json" => nil,
153
+ "attribute_if" => nil,
154
+ "attribute_if_format" => nil,
155
+ "attribute_if_hash" => nil,
156
+ "attribute_if_opts" => nil,
157
+ "attribute_if_unless" => nil,
158
+ "attribute_only_hash" => nil,
159
+ "attribute_only_xml" => nil,
160
+ "attribute_only_xml_txt" => nil,
161
+ "attribute_unless" => nil,
162
+ "attribute_unless_hash" => nil
163
+ }
140
164
  end
141
165
 
142
166
  it 'supports xml export' do
143
167
  user = User.new
144
- user.hidden_attribute_names(:xml).should == user.to_xml[:except]
168
+ user.to_xml.should == {
169
+ "attribute_except_xml" => nil,
170
+ "attribute_except_xml_txt" => nil,
171
+ "attribute_if" => nil,
172
+ "attribute_if_format" => nil,
173
+ "attribute_if_hash" => nil,
174
+ "attribute_if_opts" => nil,
175
+ "attribute_if_unless" => nil,
176
+ "attribute_only_hash" => nil,
177
+ "attribute_only_json" => nil,
178
+ "attribute_unless" => nil,
179
+ "attribute_unless_hash" => nil
180
+ }.to_xml(:root => :user)
145
181
  end
146
182
 
147
183
  it 'supports hash export' do
148
184
  user = User.new
149
- user.hidden_attribute_names(:hash).should == user.serializable_hash[:except]
185
+ user.serializable_hash.should == {
186
+ "attribute_except_hash" => nil,
187
+ "attribute_if" => nil,
188
+ "attribute_if_format" => nil,
189
+ "attribute_if_hash" => nil,
190
+ "attribute_if_opts" => nil,
191
+ "attribute_if_unless" => nil,
192
+ "attribute_only_json" => nil,
193
+ "attribute_only_xml" => nil,
194
+ "attribute_only_xml_txt" => nil,
195
+ "attribute_unless" => nil,
196
+ "attribute_unless_format" => nil,
197
+ "attribute_unless_opts" => nil,
198
+ "attribute_unless_hash" => nil,
199
+ }
150
200
  end
151
201
  end
@@ -1,72 +1,105 @@
1
1
 
2
2
  require File.dirname(__FILE__) + '/spec_helper'
3
3
 
4
- describe AttributeExt::HiddenAttributes do
4
+ describe AttributeExt::SafeAttributes do
5
5
 
6
6
  it 'uses mass assignment authorizer' do
7
7
  user = User.new
8
8
 
9
- user.mass_assignment_authorizer.should include('always_there')
9
+ user.safe_attributes_authorizer.should include('always')
10
+ end
11
+
12
+ it 'should support attr_accessible' do
13
+ user = User.new
14
+ user.safe_attributes_authorizer.should include('opts')
10
15
  end
11
16
 
12
17
  it 'uses mass assignment authorizer with role' do
13
18
  user = User.new
14
19
 
15
- user.mass_assignment_authorizer(:admin).should include('admin_role')
20
+ user.safe_attributes_authorizer(:admin).should include('admin_role')
16
21
  end
17
22
 
18
23
  it 'can whitelist attributes' do
19
24
  user = User.new
20
25
 
21
- user.mass_assignment_authorizer.should include('always')
26
+ user.safe_attributes_authorizer.should include('always')
27
+ end
28
+
29
+ it 'can whitelist attributes using an if condition with proc' do
30
+ user = User.new
31
+ user.safe_attributes_authorizer.should_not include('attribute_if')
32
+
33
+ user = User.new :opts => { :if => true }
34
+ user.safe_attributes_authorizer.should include('attribute_if')
35
+ end
36
+
37
+ it 'can whitelist attributes using an if condition with symbol' do
38
+ user = User.new
39
+ user.safe_attributes_authorizer.should_not include('attribute_if_2')
40
+
41
+ user = User.new :opts => { :if => true }
42
+ user.safe_attributes_authorizer.should include('attribute_if_2')
43
+ end
44
+
45
+ it 'can whitelist attributes using an unless condition with proc' do
46
+ user = User.new
47
+ user.safe_attributes_authorizer.should_not include('attribute_unless')
48
+
49
+ user = User.new :opts => { :unless => false }
50
+ user.safe_attributes_authorizer.should include('attribute_unless')
22
51
  end
23
52
 
24
- it 'can whitelist attributes using an if condition' do
53
+ it 'can whitelist attributes using an unless condition with symbol' do
25
54
  user = User.new
26
- user.mass_assignment_authorizer.should_not include('attribute_if')
55
+ user.safe_attributes_authorizer.should_not include('attribute_unless_2')
27
56
 
28
- user = User.new :if => true
29
- user.mass_assignment_authorizer.should include('attribute_if')
57
+ user = User.new :opts => { :unless => false }
58
+ user.safe_attributes_authorizer.should include('attribute_unless_2')
30
59
  end
31
60
 
32
- it 'can whitelist attributes using an unless condition' do
61
+ it 'can whitelist attributes using an if and an unless condition with proc' do
33
62
  user = User.new
34
- user.mass_assignment_authorizer.should_not include('attribute_unless')
63
+ user.safe_attributes_authorizer.should_not include('attribute_if_unless')
64
+ user = User.new :opts => { :if => true }
65
+ user.safe_attributes_authorizer.should_not include('attribute_if_unless')
66
+ user = User.new :opts => { :unless => false }
67
+ user.safe_attributes_authorizer.should_not include('attribute_if_unless')
35
68
 
36
- user = User.new :unless => false
37
- user.mass_assignment_authorizer.should include('attribute_unless')
69
+ user = User.new :opts => { :if => true, :unless => false }
70
+ user.safe_attributes_authorizer.should include('attribute_if_unless')
38
71
  end
39
72
 
40
- it 'can whitelist attributes using an if and an unless condition' do
73
+ it 'can whitelist attributes using an if and an unless condition with symbol' do
41
74
  user = User.new
42
- user.mass_assignment_authorizer.should_not include('attribute_if_unless')
43
- user = User.new :if => true
44
- user.mass_assignment_authorizer.should_not include('attribute_if_unless')
45
- user = User.new :unless => false
46
- user.mass_assignment_authorizer.should_not include('attribute_if_unless')
75
+ user.safe_attributes_authorizer.should_not include('attribute_if_unless_2')
76
+ user = User.new :opts => { :if => true }
77
+ user.safe_attributes_authorizer.should_not include('attribute_if_unless_2')
78
+ user = User.new :opts => { :unless => false }
79
+ user.safe_attributes_authorizer.should_not include('attribute_if_unless_2')
47
80
 
48
- user = User.new :if => true, :unless => false
49
- user.mass_assignment_authorizer.should include('attribute_if_unless')
81
+ user = User.new :opts => { :if => true, :unless => false }
82
+ user.safe_attributes_authorizer.should include('attribute_if_unless_2')
50
83
  end
51
84
 
52
85
  it 'can whitelist attributes checking role in if condition' do
53
86
  user = User.new
54
- user.mass_assignment_authorizer(:default).should_not include('attribute_if_admin')
87
+ user.safe_attributes_authorizer(:default).should_not include('attribute_if_admin')
55
88
  user = User.new
56
- user.mass_assignment_authorizer(:admin).should include('attribute_if_admin')
89
+ user.safe_attributes_authorizer(:admin).should include('attribute_if_admin')
57
90
  end
58
91
 
59
92
  it 'can whitelist attributes checking role in unless condition' do
60
93
  user = User.new
61
- user.mass_assignment_authorizer(:default).should include('attribute_unless_admin')
94
+ user.safe_attributes_authorizer(:default).should include('attribute_unless_admin')
62
95
  user = User.new
63
- user.mass_assignment_authorizer(:admin).should_not include('attribute_unless_admin')
96
+ user.safe_attributes_authorizer(:admin).should_not include('attribute_unless_admin')
64
97
  end
65
98
 
66
99
  it 'can provide a global default role' do
67
100
  AttributeExt::SafeAttributes.default_role = :new_default
68
101
  AttributeExt::SafeAttributes.default_role.should == :new_default
69
- User.new.mass_assignment_authorizer.should include("new_default")
102
+ User.new.safe_attributes_authorizer.should include("new_default")
70
103
  end
71
104
 
72
105
  context '#role_mapper' do
@@ -106,17 +139,17 @@ describe AttributeExt::HiddenAttributes do
106
139
  [:guest, :user, :admin].include?(role) ? role : :guest
107
140
  end
108
141
 
109
- User.new.mass_assignment_authorizer.should include('role_mapper_guest')
110
- User.new.mass_assignment_authorizer.should_not include('role_mapper_user')
111
- User.new.mass_assignment_authorizer.should_not include('role_mapper_admin')
142
+ User.new.safe_attributes_authorizer.should include('role_mapper_guest')
143
+ User.new.safe_attributes_authorizer.should_not include('role_mapper_user')
144
+ User.new.safe_attributes_authorizer.should_not include('role_mapper_admin')
112
145
 
113
- User.new.mass_assignment_authorizer(:user).should_not include('role_mapper_guest')
114
- User.new.mass_assignment_authorizer(:user).should include('role_mapper_user')
115
- User.new.mass_assignment_authorizer(:user).should_not include('role_mapper_admin')
146
+ User.new.safe_attributes_authorizer(:user).should_not include('role_mapper_guest')
147
+ User.new.safe_attributes_authorizer(:user).should include('role_mapper_user')
148
+ User.new.safe_attributes_authorizer(:user).should_not include('role_mapper_admin')
116
149
 
117
- User.new.mass_assignment_authorizer(:admin).should_not include('role_mapper_guest')
118
- User.new.mass_assignment_authorizer(:admin).should_not include('role_mapper_user')
119
- User.new.mass_assignment_authorizer(:admin).should include('role_mapper_admin')
150
+ User.new.safe_attributes_authorizer(:admin).should_not include('role_mapper_guest')
151
+ User.new.safe_attributes_authorizer(:admin).should_not include('role_mapper_user')
152
+ User.new.safe_attributes_authorizer(:admin).should include('role_mapper_admin')
120
153
  end
121
154
  end
122
155
  end
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,14 @@
1
1
 
2
- require File.dirname(__FILE__) + '/support/fake_environment'
3
- require File.dirname(__FILE__) + '/../init'
4
- require File.dirname(__FILE__) + '/support/stub'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require File.expand_path("../dummy/config/environment", __FILE__)
4
+ require 'rspec/rails'
5
+ require 'rspec/autorun'
6
+
7
+ Dir[File.expand_path("../support/**/*.rb", __FILE__)].each {|f| require f}
5
8
 
6
9
  RSpec.configure do |config|
7
- config.mock_with :rspec
10
+ config.use_transactional_fixtures = true
11
+ config.infer_base_class_for_anonymous_controllers = false
12
+
13
+ initialize_in_memory_database if in_memory_database?
8
14
  end
@@ -0,0 +1,11 @@
1
+ def in_memory_database?
2
+ Rails.configuration.database_configuration[ENV["RAILS_ENV"]] and
3
+ Rails.configuration.database_configuration[ENV["RAILS_ENV"]]['adapter'] == 'sqlite3' and
4
+ Rails.configuration.database_configuration[ENV["RAILS_ENV"]]['database'] == ':memory:'
5
+ end
6
+
7
+ def initialize_in_memory_database
8
+ puts "Creating SQLite in memory database"
9
+ ActiveRecord::Schema.verbose = false
10
+ ActiveRecord::Migrator.up(Rails.root.join('db', 'migrate'))
11
+ end
metadata CHANGED
@@ -1,33 +1,57 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: attribute_ext
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 0
10
- version: 1.3.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jan Graichen
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-02 00:00:00 Z
19
- dependencies: []
20
-
12
+ date: 2012-03-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &5913160 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.2
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *5913160
25
+ - !ruby/object:Gem::Dependency
26
+ name: sqlite3
27
+ requirement: &5912600 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *5912600
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec-rails
38
+ requirement: &5912020 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *5912020
21
47
  description: AttributeExt provides additional access control for rails model attributes.
22
- email:
48
+ email:
23
49
  - jan.graichen@altimos.de
24
50
  executables: []
25
-
26
51
  extensions: []
27
-
28
52
  extra_rdoc_files: []
29
-
30
- files:
53
+ files:
54
+ - .gitignore
31
55
  - Gemfile
32
56
  - LICENSE
33
57
  - README.md
@@ -39,43 +63,65 @@ files:
39
63
  - lib/attribute_ext/railtie.rb
40
64
  - lib/attribute_ext/rspec.rb
41
65
  - lib/attribute_ext/safe_attributes.rb
66
+ - spec/dummy/Rakefile
67
+ - spec/dummy/app/assets/javascripts/application.js
68
+ - spec/dummy/app/assets/stylesheets/application.css
69
+ - spec/dummy/app/controllers/application_controller.rb
70
+ - spec/dummy/app/helpers/application_helper.rb
71
+ - spec/dummy/app/mailers/.gitkeep
72
+ - spec/dummy/app/models/user.rb
73
+ - spec/dummy/app/views/layouts/application.html.erb
74
+ - spec/dummy/config.ru
75
+ - spec/dummy/config/application.rb
76
+ - spec/dummy/config/boot.rb
77
+ - spec/dummy/config/database.yml
78
+ - spec/dummy/config/environment.rb
79
+ - spec/dummy/config/environments/development.rb
80
+ - spec/dummy/config/environments/production.rb
81
+ - spec/dummy/config/environments/test.rb
82
+ - spec/dummy/config/initializers/backtrace_silencers.rb
83
+ - spec/dummy/config/initializers/inflections.rb
84
+ - spec/dummy/config/initializers/mime_types.rb
85
+ - spec/dummy/config/initializers/secret_token.rb
86
+ - spec/dummy/config/initializers/session_store.rb
87
+ - spec/dummy/config/initializers/wrap_parameters.rb
88
+ - spec/dummy/config/locales/en.yml
89
+ - spec/dummy/config/routes.rb
90
+ - spec/dummy/db/migrate/20120306121700_create_users.rb
91
+ - spec/dummy/lib/assets/.gitkeep
92
+ - spec/dummy/log/.gitkeep
93
+ - spec/dummy/log/development.log
94
+ - spec/dummy/public/404.html
95
+ - spec/dummy/public/422.html
96
+ - spec/dummy/public/500.html
97
+ - spec/dummy/public/favicon.ico
98
+ - spec/dummy/script/rails
42
99
  - spec/hidden_attributes_spec.rb
43
100
  - spec/safe_attributes_spec.rb
44
101
  - spec/spec_helper.rb
45
- - spec/support/fake_environment.rb
46
- - spec/support/stub.rb
102
+ - spec/support/in_memory_database.rb
47
103
  homepage: https://github.com/jgraichen/attribute_ext
48
104
  licenses: []
49
-
50
105
  post_install_message:
51
106
  rdoc_options: []
52
-
53
- require_paths:
107
+ require_paths:
54
108
  - lib
55
- required_ruby_version: !ruby/object:Gem::Requirement
109
+ required_ruby_version: !ruby/object:Gem::Requirement
56
110
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
64
- required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ! '>='
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
65
116
  none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- hash: 3
70
- segments:
71
- - 0
72
- version: "0"
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
73
121
  requirements: []
74
-
75
122
  rubyforge_project: attribute_ext
76
- rubygems_version: 1.8.6
123
+ rubygems_version: 1.8.15
77
124
  signing_key:
78
125
  specification_version: 3
79
126
  summary: AttributeExt provides additional access control for rails model attributes.
80
127
  test_files: []
81
-