privileged 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/Gemfile CHANGED
@@ -1,13 +1,8 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
3
  group :development do
9
- gem "shoulda", ">= 0"
4
+ gem "rspec", "~> 2.3.0"
10
5
  gem "bundler", "~> 1.0.0"
11
- gem "jeweler", "~> 1.5.1"
6
+ gem "jeweler", "~> 1.6.0"
12
7
  gem "rcov", ">= 0"
13
- end
8
+ end
@@ -1,20 +1,28 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ diff-lcs (1.1.2)
4
5
  git (1.2.5)
5
- jeweler (1.5.1)
6
+ jeweler (1.6.0)
6
7
  bundler (~> 1.0.0)
7
8
  git (>= 1.2.5)
8
9
  rake
9
10
  rake (0.8.7)
10
11
  rcov (0.9.9)
11
- shoulda (2.11.3)
12
+ rspec (2.3.0)
13
+ rspec-core (~> 2.3.0)
14
+ rspec-expectations (~> 2.3.0)
15
+ rspec-mocks (~> 2.3.0)
16
+ rspec-core (2.3.1)
17
+ rspec-expectations (2.3.0)
18
+ diff-lcs (~> 1.1.2)
19
+ rspec-mocks (2.3.0)
12
20
 
13
21
  PLATFORMS
14
22
  ruby
15
23
 
16
24
  DEPENDENCIES
17
25
  bundler (~> 1.0.0)
18
- jeweler (~> 1.5.1)
26
+ jeweler (~> 1.6.0)
19
27
  rcov
20
- shoulda
28
+ rspec (~> 2.3.0)
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'rubygems'
2
4
  require 'bundler'
3
5
  begin
@@ -10,37 +12,33 @@ end
10
12
  require 'rake'
11
13
 
12
14
  require 'jeweler'
15
+ require './lib/privileged/version.rb'
13
16
  Jeweler::Tasks.new do |gem|
14
17
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
18
  gem.name = "privileged"
19
+ gem.version = Privileged::VERSION
16
20
  gem.homepage = "http://github.com/baldwindavid/privileged"
17
21
  gem.license = "MIT"
18
- gem.summary = %Q{ Simple, explicit permissions/authorization - supports Devise multiple role structure}
19
- gem.description = %Q{ Simple, explicit permissions/authorization - also supports Devise multiple role structure}
22
+ gem.summary = %Q{Simple, explicit permissions/authorization - supports Devise multiple role structure}
23
+ gem.description = %Q{Simple, explicit permissions/authorization}
20
24
  gem.email = "baldwindavid@gmail.com"
21
25
  gem.authors = ["David Baldwin"]
22
- # Include your dependencies below. Runtime dependencies are required when using your gem,
23
- # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
- # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
- # gem.add_development_dependency 'rspec', '> 1.2.3'
26
+ # dependencies defined in Gemfile
26
27
  end
27
28
  Jeweler::RubygemsDotOrgTasks.new
28
29
 
29
- require 'rake/testtask'
30
- Rake::TestTask.new(:test) do |test|
31
- test.libs << 'lib' << 'test'
32
- test.pattern = 'test/**/test_*.rb'
33
- test.verbose = true
30
+ require 'rspec/core'
31
+ require 'rspec/core/rake_task'
32
+ RSpec::Core::RakeTask.new(:spec) do |spec|
33
+ spec.pattern = FileList['spec/**/*_spec.rb']
34
34
  end
35
35
 
36
- require 'rcov/rcovtask'
37
- Rcov::RcovTask.new do |test|
38
- test.libs << 'test'
39
- test.pattern = 'test/**/test_*.rb'
40
- test.verbose = true
36
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
37
+ spec.pattern = 'spec/**/*_spec.rb'
38
+ spec.rcov = true
41
39
  end
42
40
 
43
- task :default => :test
41
+ task :default => :spec
44
42
 
45
43
  require 'rake/rdoctask'
46
44
  Rake::RDocTask.new do |rdoc|
@@ -50,4 +48,4 @@ Rake::RDocTask.new do |rdoc|
50
48
  rdoc.title = "privileged #{version}"
51
49
  rdoc.rdoc_files.include('README*')
52
50
  rdoc.rdoc_files.include('lib/**/*.rb')
53
- end
51
+ end
@@ -0,0 +1,3 @@
1
+ module Privileged
2
+ VERSION = "0.1.1"
3
+ end
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{privileged}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David Baldwin"]
12
- s.date = %q{2010-12-18}
13
- s.description = %q{ Simple, explicit permissions/authorization - also supports Devise multiple role structure}
12
+ s.date = %q{2011-05-16}
13
+ s.description = %q{Simple, explicit permissions/authorization}
14
14
  s.email = %q{baldwindavid@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
@@ -23,41 +23,37 @@ Gem::Specification.new do |s|
23
23
  "LICENSE.txt",
24
24
  "README.rdoc",
25
25
  "Rakefile",
26
- "VERSION",
27
26
  "lib/privileged.rb",
27
+ "lib/privileged/version.rb",
28
28
  "privileged.gemspec",
29
- "test/helper.rb",
30
- "test/test_privileged.rb"
29
+ "spec/actor_spec.rb",
30
+ "spec/spec_helper.rb"
31
31
  ]
32
32
  s.homepage = %q{http://github.com/baldwindavid/privileged}
33
33
  s.licenses = ["MIT"]
34
34
  s.require_paths = ["lib"]
35
35
  s.rubygems_version = %q{1.3.7}
36
36
  s.summary = %q{Simple, explicit permissions/authorization - supports Devise multiple role structure}
37
- s.test_files = [
38
- "test/helper.rb",
39
- "test/test_privileged.rb"
40
- ]
41
37
 
42
38
  if s.respond_to? :specification_version then
43
39
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
44
40
  s.specification_version = 3
45
41
 
46
42
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
47
- s.add_development_dependency(%q<shoulda>, [">= 0"])
43
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
48
44
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
49
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
45
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
50
46
  s.add_development_dependency(%q<rcov>, [">= 0"])
51
47
  else
52
- s.add_dependency(%q<shoulda>, [">= 0"])
48
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
53
49
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
54
- s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
50
+ s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
55
51
  s.add_dependency(%q<rcov>, [">= 0"])
56
52
  end
57
53
  else
58
- s.add_dependency(%q<shoulda>, [">= 0"])
54
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
59
55
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
60
- s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
56
+ s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
61
57
  s.add_dependency(%q<rcov>, [">= 0"])
62
58
  end
63
59
  end
@@ -0,0 +1,118 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "User" do
4
+
5
+ context "with the default privilege (false)" do
6
+
7
+ before :each do
8
+
9
+ class User
10
+ extend Privileged::Actor
11
+ privilege :can_view?, :viewable_by?
12
+ end
13
+
14
+ class Page
15
+ end
16
+
17
+ @user = User.new
18
+ @page = Page.new
19
+
20
+ end
21
+
22
+ it "should not be able to view the page object" do
23
+ @user.can_view?(@page).should be_false
24
+ end
25
+
26
+ it "should respond to the can_view? method" do
27
+ @user.respond_to?("can_view?").should be_true
28
+ end
29
+
30
+ end
31
+
32
+
33
+ context "with a default privilege manually set to true" do
34
+
35
+ before :each do
36
+
37
+ class User
38
+ extend Privileged::Actor
39
+ privilege :can_view?, :viewable_by?, :default => true
40
+ end
41
+
42
+ class Page
43
+ end
44
+
45
+ @user = User.new
46
+ @page = Page.new
47
+
48
+ end
49
+
50
+ it "should be able to view the page object" do
51
+ @user.can_view?(@page).should be_true
52
+ end
53
+
54
+ end
55
+
56
+
57
+ context "with a default privilege manually set to true, but overriden to false on the Page class" do
58
+
59
+ before :each do
60
+
61
+ class User
62
+ extend Privileged::Actor
63
+ privilege :can_view?, :viewable_by?, :default => true
64
+ end
65
+
66
+ class Page
67
+ def viewable_by?(user)
68
+ false
69
+ end
70
+ end
71
+
72
+ @user = User.new
73
+ @page = Page.new
74
+
75
+ end
76
+
77
+ it "should not be able to view the page object" do
78
+ @user.can_view?(@page).should be_false
79
+ end
80
+
81
+ end
82
+
83
+
84
+ context "with the default privilege overriden by a method on the Page class" do
85
+
86
+ before :each do
87
+
88
+ class User
89
+ extend Privileged::Actor
90
+ privilege :can_view?, :viewable_by?
91
+ attr_accessor :admin
92
+ end
93
+
94
+ class Page
95
+ def viewable_by?(user)
96
+ user.admin
97
+ end
98
+ end
99
+
100
+ @admin = User.new
101
+ @admin.admin = true
102
+ @non_admin = User.new
103
+ @non_admin.admin = false
104
+ @page = Page.new
105
+
106
+ end
107
+
108
+ it "should not be able to view the page if not an admin" do
109
+ @non_admin.can_view?(@page).should be_false
110
+ end
111
+
112
+ it "should be able to view the page if an admin" do
113
+ @admin.can_view?(@page).should be_true
114
+ end
115
+
116
+ end
117
+
118
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'privileged'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: privileged
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Baldwin
@@ -15,21 +15,23 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-18 00:00:00 -05:00
18
+ date: 2011-05-16 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  requirement: &id001 !ruby/object:Gem::Requirement
23
23
  none: false
24
24
  requirements:
25
- - - ">="
25
+ - - ~>
26
26
  - !ruby/object:Gem::Version
27
27
  hash: 3
28
28
  segments:
29
+ - 2
30
+ - 3
29
31
  - 0
30
- version: "0"
32
+ version: 2.3.0
31
33
  type: :development
32
- name: shoulda
34
+ name: rspec
33
35
  prerelease: false
34
36
  version_requirements: *id001
35
37
  - !ruby/object:Gem::Dependency
@@ -54,12 +56,12 @@ dependencies:
54
56
  requirements:
55
57
  - - ~>
56
58
  - !ruby/object:Gem::Version
57
- hash: 1
59
+ hash: 15
58
60
  segments:
59
61
  - 1
60
- - 5
61
- - 1
62
- version: 1.5.1
62
+ - 6
63
+ - 0
64
+ version: 1.6.0
63
65
  type: :development
64
66
  name: jeweler
65
67
  prerelease: false
@@ -78,7 +80,7 @@ dependencies:
78
80
  name: rcov
79
81
  prerelease: false
80
82
  version_requirements: *id004
81
- description: " Simple, explicit permissions/authorization - also supports Devise multiple role structure"
83
+ description: Simple, explicit permissions/authorization
82
84
  email: baldwindavid@gmail.com
83
85
  executables: []
84
86
 
@@ -94,11 +96,11 @@ files:
94
96
  - LICENSE.txt
95
97
  - README.rdoc
96
98
  - Rakefile
97
- - VERSION
98
99
  - lib/privileged.rb
100
+ - lib/privileged/version.rb
99
101
  - privileged.gemspec
100
- - test/helper.rb
101
- - test/test_privileged.rb
102
+ - spec/actor_spec.rb
103
+ - spec/spec_helper.rb
102
104
  has_rdoc: true
103
105
  homepage: http://github.com/baldwindavid/privileged
104
106
  licenses:
@@ -133,6 +135,5 @@ rubygems_version: 1.3.7
133
135
  signing_key:
134
136
  specification_version: 3
135
137
  summary: Simple, explicit permissions/authorization - supports Devise multiple role structure
136
- test_files:
137
- - test/helper.rb
138
- - test/test_privileged.rb
138
+ test_files: []
139
+
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.0
@@ -1,18 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'test/unit'
11
- require 'shoulda'
12
-
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'privileged'
16
-
17
- class Test::Unit::TestCase
18
- end
@@ -1,7 +0,0 @@
1
- require 'helper'
2
-
3
- class TestPrivileged < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end