sudo_attributes 0.4.0 → 0.5.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.
data/Gemfile CHANGED
@@ -3,6 +3,7 @@ source :rubygems
3
3
  group :test do
4
4
  gem 'rake'
5
5
  gem 'jeweler', '1.4.0'
6
- gem 'rspec', '~> 1.3.1'
6
+ gem 'rspec', '~> 2.0.0'
7
7
  gem 'sqlite3-ruby', :require => 'sqlite3'
8
+ gem 'rails', '~> 3.0.0'
8
9
  end
data/Gemfile.lock CHANGED
@@ -1,24 +1,96 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ abstract (1.0.0)
5
+ actionmailer (3.0.3)
6
+ actionpack (= 3.0.3)
7
+ mail (~> 2.2.9)
8
+ actionpack (3.0.3)
9
+ activemodel (= 3.0.3)
10
+ activesupport (= 3.0.3)
11
+ builder (~> 2.1.2)
12
+ erubis (~> 2.6.6)
13
+ i18n (~> 0.4)
14
+ rack (~> 1.2.1)
15
+ rack-mount (~> 0.6.13)
16
+ rack-test (~> 0.5.6)
17
+ tzinfo (~> 0.3.23)
18
+ activemodel (3.0.3)
19
+ activesupport (= 3.0.3)
20
+ builder (~> 2.1.2)
21
+ i18n (~> 0.4)
22
+ activerecord (3.0.3)
23
+ activemodel (= 3.0.3)
24
+ activesupport (= 3.0.3)
25
+ arel (~> 2.0.2)
26
+ tzinfo (~> 0.3.23)
27
+ activeresource (3.0.3)
28
+ activemodel (= 3.0.3)
29
+ activesupport (= 3.0.3)
30
+ activesupport (3.0.3)
31
+ arel (2.0.6)
32
+ builder (2.1.2)
33
+ diff-lcs (1.1.2)
34
+ erubis (2.6.6)
35
+ abstract (>= 1.0.0)
4
36
  gemcutter (0.6.1)
5
37
  git (1.2.5)
38
+ i18n (0.5.0)
6
39
  jeweler (1.4.0)
7
40
  gemcutter (>= 0.1.0)
8
41
  git (>= 1.2.5)
9
42
  rubyforge (>= 2.0.0)
10
43
  json_pure (1.4.6)
44
+ mail (2.2.14)
45
+ activesupport (>= 2.3.6)
46
+ i18n (>= 0.4.0)
47
+ mime-types (~> 1.16)
48
+ treetop (~> 1.4.8)
49
+ mime-types (1.16)
50
+ polyglot (0.3.1)
51
+ rack (1.2.1)
52
+ rack-mount (0.6.13)
53
+ rack (>= 1.0.0)
54
+ rack-test (0.5.7)
55
+ rack (>= 1.0)
56
+ rails (3.0.3)
57
+ actionmailer (= 3.0.3)
58
+ actionpack (= 3.0.3)
59
+ activerecord (= 3.0.3)
60
+ activeresource (= 3.0.3)
61
+ activesupport (= 3.0.3)
62
+ bundler (~> 1.0)
63
+ railties (= 3.0.3)
64
+ railties (3.0.3)
65
+ actionpack (= 3.0.3)
66
+ activesupport (= 3.0.3)
67
+ rake (>= 0.8.7)
68
+ thor (~> 0.14.4)
11
69
  rake (0.8.7)
12
- rspec (1.3.1)
70
+ rspec (2.0.1)
71
+ rspec-core (~> 2.0.1)
72
+ rspec-expectations (~> 2.0.1)
73
+ rspec-mocks (~> 2.0.1)
74
+ rspec-core (2.0.1)
75
+ rspec-expectations (2.0.1)
76
+ diff-lcs (>= 1.1.2)
77
+ rspec-mocks (2.0.1)
78
+ rspec-core (~> 2.0.1)
79
+ rspec-expectations (~> 2.0.1)
13
80
  rubyforge (2.0.4)
14
81
  json_pure (>= 1.1.7)
15
82
  sqlite3-ruby (1.3.1)
83
+ thor (0.14.6)
84
+ treetop (1.4.9)
85
+ polyglot (>= 0.3.1)
86
+ tzinfo (0.3.23)
16
87
 
17
88
  PLATFORMS
18
89
  ruby
19
90
 
20
91
  DEPENDENCIES
21
92
  jeweler (= 1.4.0)
93
+ rails (~> 3.0.0)
22
94
  rake
23
- rspec (~> 1.3.1)
95
+ rspec (~> 2.0.0)
24
96
  sqlite3-ruby
data/README.textile CHANGED
@@ -24,6 +24,9 @@ It's as easy as adding one method call to your models like so:
24
24
  class User < ActiveRecord::Base
25
25
  sudo_attr_protected :admin
26
26
  end
27
+
28
+ user = User.find(params[:id])
29
+ user.sudo_update_attributes(params[:user])
27
30
  </pre>
28
31
 
29
32
  h2. Class Methods
@@ -51,6 +54,7 @@ h2. Instance Methods
51
54
  The following instance method is available to any ActiveRecord model that calls @has_sudo_attributes@
52
55
 
53
56
  * @sudo_update_attributes@ - Uses identical syntax to @update_attributes@, but overrides protected attributes.
57
+ * @sudo_update_attributes!@ - Same as sudo_update_attributes, but raises ActiveRecord errors. Same as @update_attributes!@
54
58
 
55
59
  h2. Examples
56
60
 
data/Rakefile CHANGED
@@ -10,7 +10,8 @@ begin
10
10
  gem.email = "github@lette.us"
11
11
  gem.homepage = "http://github.com/beerlington/sudo_attributes"
12
12
  gem.authors = ["Peter Brown"]
13
- gem.add_development_dependency "rspec", ">= 1.2.9"
13
+ gem.add_development_dependency "rspec", "~> 2.0.0"
14
+ gem.add_development_dependency "rails", "~> 3.0.0"
14
15
  gem.add_development_dependency "sqlite3-ruby"
15
16
  gem.add_dependency "rails", ">= 2.3.0"
16
17
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.5.0
@@ -50,6 +50,11 @@ module SudoAttributes
50
50
  self.send(:attributes=, new_attributes, false)
51
51
  save
52
52
  end
53
+
54
+ def sudo_update_attributes!(new_attributes)
55
+ self.send(:attributes=, new_attributes, false)
56
+ save!
57
+ end
53
58
  end
54
59
  end
55
60
 
@@ -32,6 +32,19 @@ describe "Cat" do
32
32
  @cat.name.should == "Smiles"
33
33
  end
34
34
 
35
+ it "should not raise an error with sudo_update_attributes" do
36
+ lambda { @cat.sudo_update_attributes(:color => "") }.should_not raise_error(ActiveRecord::RecordInvalid)
37
+ end
38
+
39
+ it "should set the name with sudo_update_attributes!" do
40
+ @cat.sudo_update_attributes!(:name => "Smiles")
41
+ @cat.name.should == "Smiles"
42
+ end
43
+
44
+ it "should raise an error with sudo_update_attributes!" do
45
+ lambda { @cat.sudo_update_attributes!(:color => "") }.should raise_error(ActiveRecord::RecordInvalid)
46
+ end
47
+
35
48
  it "should have a color" do
36
49
  @cat.color.should == @attributes[:color]
37
50
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sudo_attributes}
8
- s.version = "0.4.0"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Peter Brown"]
12
- s.date = %q{2010-11-19}
12
+ s.date = %q{2011-01-12}
13
13
  s.description = %q{Adds 'sudo' methods to update protected ActiveRecord attributes with mass assignment}
14
14
  s.email = %q{github@lette.us}
15
15
  s.extra_rdoc_files = [
@@ -47,16 +47,19 @@ Gem::Specification.new do |s|
47
47
  s.specification_version = 3
48
48
 
49
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
- s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
50
+ s.add_development_dependency(%q<rspec>, ["~> 2.0.0"])
51
+ s.add_development_dependency(%q<rails>, ["~> 3.0.0"])
51
52
  s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
52
53
  s.add_runtime_dependency(%q<rails>, [">= 2.3.0"])
53
54
  else
54
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
55
+ s.add_dependency(%q<rspec>, ["~> 2.0.0"])
56
+ s.add_dependency(%q<rails>, ["~> 3.0.0"])
55
57
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
56
58
  s.add_dependency(%q<rails>, [">= 2.3.0"])
57
59
  end
58
60
  else
59
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
61
+ s.add_dependency(%q<rspec>, ["~> 2.0.0"])
62
+ s.add_dependency(%q<rails>, ["~> 3.0.0"])
60
63
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
61
64
  s.add_dependency(%q<rails>, [">= 2.3.0"])
62
65
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sudo_attributes
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 4
8
+ - 5
9
9
  - 0
10
- version: 0.4.0
10
+ version: 0.5.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Peter Brown
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-19 00:00:00 -05:00
18
+ date: 2011-01-12 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -24,20 +24,36 @@ dependencies:
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ">="
27
+ - - ~>
28
28
  - !ruby/object:Gem::Version
29
- hash: 13
29
+ hash: 15
30
30
  segments:
31
- - 1
32
31
  - 2
33
- - 9
34
- version: 1.2.9
32
+ - 0
33
+ - 0
34
+ version: 2.0.0
35
35
  type: :development
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: sqlite3-ruby
38
+ name: rails
39
39
  prerelease: false
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 7
46
+ segments:
47
+ - 3
48
+ - 0
49
+ - 0
50
+ version: 3.0.0
51
+ type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: sqlite3-ruby
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
41
57
  none: false
42
58
  requirements:
43
59
  - - ">="
@@ -47,11 +63,11 @@ dependencies:
47
63
  - 0
48
64
  version: "0"
49
65
  type: :development
50
- version_requirements: *id002
66
+ version_requirements: *id003
51
67
  - !ruby/object:Gem::Dependency
52
68
  name: rails
53
69
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
70
+ requirement: &id004 !ruby/object:Gem::Requirement
55
71
  none: false
56
72
  requirements:
57
73
  - - ">="
@@ -63,7 +79,7 @@ dependencies:
63
79
  - 0
64
80
  version: 2.3.0
65
81
  type: :runtime
66
- version_requirements: *id003
82
+ version_requirements: *id004
67
83
  description: Adds 'sudo' methods to update protected ActiveRecord attributes with mass assignment
68
84
  email: github@lette.us
69
85
  executables: []