roles_generic 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/.rspec +1 -0
  4. data/LICENSE +20 -0
  5. data/README.markdown +308 -0
  6. data/Rakefile +45 -0
  7. data/VERSION +1 -0
  8. data/lib/generators/roles_model/roles/roles_generator.rb +65 -0
  9. data/lib/roles_generic/admin_flag.rb +40 -0
  10. data/lib/roles_generic/base.rb +45 -0
  11. data/lib/roles_generic/extensions/core_ext.rb +19 -0
  12. data/lib/roles_generic/generic/class_methods.rb +33 -0
  13. data/lib/roles_generic/generic/implementation.rb +26 -0
  14. data/lib/roles_generic/generic/util.rb +39 -0
  15. data/lib/roles_generic/generic.rb +77 -0
  16. data/lib/roles_generic/many_roles.rb +39 -0
  17. data/lib/roles_generic/one_role.rb +40 -0
  18. data/lib/roles_generic/role/class_methods.rb +20 -0
  19. data/lib/roles_generic/role_string.rb +29 -0
  20. data/lib/roles_generic/role_strings.rb +23 -0
  21. data/lib/roles_generic/roles_mask.rb +48 -0
  22. data/lib/roles_generic/roles_string.rb +26 -0
  23. data/lib/roles_generic.rb +2 -0
  24. data/spec/generator_spec_helper.rb +12 -0
  25. data/spec/generators/admin_flag_generator_spec.rb +77 -0
  26. data/spec/generators/many_roles_generator_spec.rb +39 -0
  27. data/spec/generators/one_role_generator_spec.rb +39 -0
  28. data/spec/generators/role_string_generator_spec.rb +39 -0
  29. data/spec/generators/role_strings_generator_spec.rb +39 -0
  30. data/spec/generators/roles_mask_generator_spec.rb +39 -0
  31. data/spec/generators/roles_string_generator_spec.rb +39 -0
  32. data/spec/model/role.rb +26 -0
  33. data/spec/roles_generic/admin_flag_spec.rb +66 -0
  34. data/spec/roles_generic/many_roles_spec.rb +63 -0
  35. data/spec/roles_generic/one_role_spec.rb +70 -0
  36. data/spec/roles_generic/role_string_spec.rb +65 -0
  37. data/spec/roles_generic/role_strings_spec.rb +58 -0
  38. data/spec/roles_generic/roles_mask_spec.rb +57 -0
  39. data/spec/roles_generic/roles_string_spec.rb +58 -0
  40. data/spec/spec_helper.rb +9 -0
  41. metadata +182 -0
@@ -0,0 +1,66 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'roles_generic/admin_flag'
3
+
4
+ class User
5
+ include RoleModels::Generic
6
+
7
+ attr_accessor :name, :admin_flag
8
+
9
+ role_strategy :admin_flag, :default
10
+
11
+ roles :admin, :user
12
+
13
+ def initialize name, *new_roles
14
+ self.name = name
15
+ self.roles = new_roles
16
+ end
17
+ end
18
+
19
+ describe "Generic AdminFlag role strategy" do
20
+ context "default setup" do
21
+
22
+ before :each do
23
+ @admin_user = User.new 'Admin user', :admin
24
+ @user = User.new 'User', :user
25
+ end
26
+
27
+ it "should have admin user role to :admin" do
28
+ @admin_user.role.should == :admin
29
+ @admin_user.roles.should == [:admin]
30
+ @admin_user.admin?.should be_true
31
+
32
+ @admin_user.class.valid_roles.should == [:admin, :user]
33
+
34
+ @admin_user.has_role?(:user).should be_false
35
+
36
+ @admin_user.has_role?(:admin).should be_true
37
+ @admin_user.is?(:admin).should be_true
38
+ @admin_user.has_roles?(:admin).should be_true
39
+ @admin_user.has?(:admin).should be_true
40
+ end
41
+
42
+ it "should have user role to :user" do
43
+ @user.roles.should == [:user]
44
+ @user.admin?.should be_false
45
+
46
+ @user.has_role?(:user).should be_true
47
+ @user.has_role?(:admin).should be_false
48
+ @user.is?(:admin).should be_false
49
+
50
+ @user.has_roles?(:user).should be_true
51
+ @user.has?(:admin).should be_false
52
+ end
53
+
54
+ it "should set user role to :admin using =" do
55
+ @user.roles = :admin
56
+ @user.role.should == :admin
57
+ @user.has_role?(:admin).should be_true
58
+ end
59
+
60
+ it "should set user role to :admin using <<" do
61
+ @user.role = :admin
62
+ @user.role.should == :admin
63
+ @user.has_role?(:admin).should be_true
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,63 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'roles_generic/many_roles'
3
+ require 'model/role'
4
+
5
+ class User
6
+ include RoleModels::Generic
7
+ role_strategy :many_roles, :default
8
+
9
+ role_class :role
10
+
11
+ attr_accessor :name, :many_roles
12
+
13
+ roles :admin, :user
14
+
15
+ def initialize name, *new_roles
16
+ self.name = name
17
+ self.roles = new_roles
18
+ end
19
+ end
20
+
21
+
22
+ describe "Generic ManyRoles role strategy" do
23
+ context "default setup" do
24
+
25
+ before :each do
26
+ Role.new :user
27
+ Role.new :admin
28
+
29
+ @admin_user = User.new 'Admin user', :admin
30
+ @user = User.new 'User', :user
31
+ end
32
+
33
+ it "should have admin user role to :admin" do
34
+ @admin_user.roles_list.first.should == :admin
35
+ @admin_user.admin?.should be_true
36
+
37
+ @admin_user.has_role?(:user).should be_false
38
+
39
+ @admin_user.has_role?(:admin).should be_true
40
+ @admin_user.is?(:admin).should be_true
41
+ @admin_user.has_roles?(:admin).should be_true
42
+ @admin_user.has?(:admin).should be_true
43
+ end
44
+
45
+ it "should have user role to :user" do
46
+ @user.roles_list.first.should == :user
47
+ @user.admin?.should be_false
48
+
49
+ @user.has_role?(:user).should be_true
50
+ @user.has_role?(:admin).should be_false
51
+ @user.is?(:admin).should be_false
52
+
53
+ @user.has_roles?(:admin).should be_false
54
+ @user.has?(:admin).should be_false
55
+ end
56
+
57
+ it "should set user role to :admin using roles=" do
58
+ @user.roles = :admin
59
+ @user.roles_list.first.should == :admin
60
+ @user.has_role?(:admin).should be_true
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,70 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'roles_generic/one_role'
3
+ require 'model/role'
4
+
5
+ class User
6
+ include RoleModels::Generic
7
+ role_strategy :one_role, :default
8
+
9
+ role_class :role
10
+
11
+ attr_accessor :name, :one_role
12
+
13
+ roles :admin, :user
14
+
15
+ def initialize name, *new_roles
16
+ self.name = name
17
+ self.roles = new_roles
18
+ end
19
+ end
20
+
21
+
22
+ describe "Generic OneRole role strategy" do
23
+ context "default setup" do
24
+
25
+ before :each do
26
+ Role.new :user
27
+ Role.new :admin
28
+
29
+ @admin_user = User.new 'Admin user', :admin
30
+ @user = User.new 'User', :user
31
+ end
32
+
33
+ it "should have admin user role to :admin" do
34
+ @admin_user.role.should == :admin
35
+ @admin_user.roles.should == [:admin]
36
+ @admin_user.admin?.should be_true
37
+
38
+ @admin_user.has_role?(:user).should be_false
39
+
40
+ @admin_user.has_role?(:admin).should be_true
41
+ @admin_user.is?(:admin).should be_true
42
+ @admin_user.has_roles?(:admin).should be_true
43
+ @admin_user.has?(:admin).should be_true
44
+ end
45
+
46
+ # it "should have user role to :user" do
47
+ # @user.roles.should == [:user]
48
+ # @user.admin?.should be_false
49
+ #
50
+ # @user.has_role?(:user).should be_true
51
+ # @user.has_role?(:admin).should be_false
52
+ # @user.is?(:admin).should be_false
53
+ #
54
+ # @user.has_roles?(:admin).should be_false
55
+ # @user.has?(:admin).should be_false
56
+ # end
57
+ #
58
+ # it "should set user role to :admin using roles=" do
59
+ # @user.roles = :admin
60
+ # @user.role.should == :admin
61
+ # @user.has_role?(:admin).should be_true
62
+ # end
63
+ #
64
+ # it "should set user role to :admin using role=" do
65
+ # @user.roles = :admin
66
+ # @user.role.should == :admin
67
+ # @user.has_role?(:admin).should be_true
68
+ # end
69
+ end
70
+ end
@@ -0,0 +1,65 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'roles_generic/role_string'
3
+
4
+ class User
5
+ include RoleModels::Generic
6
+
7
+ attr_accessor :name, :role_string
8
+
9
+ role_strategy :role_string, :default
10
+
11
+ roles :admin, :user
12
+
13
+ def initialize name, *new_roles
14
+ self.name = name
15
+ self.roles = new_roles
16
+ end
17
+ end
18
+
19
+
20
+ describe "Generic RoleString role strategy" do
21
+ context "default setup" do
22
+
23
+ before :each do
24
+ @admin_user = User.new 'Admin user', :admin
25
+ @user = User.new 'User', :user
26
+ end
27
+
28
+ it "should have admin user role to :admin" do
29
+ @admin_user.role.should == :admin
30
+ @admin_user.roles.should == [:admin]
31
+ @admin_user.admin?.should be_true
32
+
33
+ @admin_user.has_role?(:user).should be_false
34
+
35
+ @admin_user.has_role?(:admin).should be_true
36
+ @admin_user.is?(:admin).should be_true
37
+ @admin_user.has_roles?(:admin).should be_true
38
+ @admin_user.has?(:admin).should be_true
39
+ end
40
+
41
+ it "should have user role to :user" do
42
+ @user.roles.should == [:user]
43
+ @user.admin?.should be_false
44
+
45
+ @user.has_role?(:user).should be_true
46
+ @user.has_role?(:admin).should be_false
47
+ @user.is?(:admin).should be_false
48
+
49
+ @user.has_roles?(:admin).should be_false
50
+ @user.has?(:admin).should be_false
51
+ end
52
+
53
+ it "should set user role to :admin using roles=" do
54
+ @user.roles = :admin
55
+ @user.role.should == :admin
56
+ @user.has_role?(:admin).should be_true
57
+ end
58
+
59
+ it "should set user role to :admin using role=" do
60
+ @user.role = :admin
61
+ @user.role.should == :admin
62
+ @user.has_role?(:admin).should be_true
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,58 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'roles_generic/role_strings'
3
+
4
+ class User
5
+ include RoleModels::Generic
6
+
7
+ attr_accessor :name, :role_strings
8
+
9
+ role_strategy :role_strings, :default
10
+
11
+ roles :admin, :user
12
+
13
+ def initialize name, *new_roles
14
+ self.name = name
15
+ self.roles = new_roles
16
+ end
17
+ end
18
+
19
+
20
+ describe "Generic RoleStrings role strategy" do
21
+ context "default setup" do
22
+
23
+ before :each do
24
+ @admin_user = User.new 'Admin user', :admin
25
+ @user = User.new 'User', :user
26
+ end
27
+
28
+ it "should have admin user role to :admin" do
29
+ @admin_user.roles.first.should == :admin
30
+ @admin_user.admin?.should be_true
31
+
32
+ @admin_user.has_role?(:user).should be_false
33
+
34
+ @admin_user.has_role?(:admin).should be_true
35
+ @admin_user.is?(:admin).should be_true
36
+ @admin_user.has_roles?(:admin).should be_true
37
+ @admin_user.has?(:admin).should be_true
38
+ end
39
+
40
+ it "should have user role to :user" do
41
+ @user.roles.first.should == :user
42
+ @user.admin?.should be_false
43
+
44
+ @user.has_role?(:user).should be_true
45
+ @user.has_role?(:admin).should be_false
46
+ @user.is?(:admin).should be_false
47
+
48
+ @user.has_roles?(:admin).should be_false
49
+ @user.has?(:admin).should be_false
50
+ end
51
+
52
+ it "should set user role to :admin using roles=" do
53
+ @user.roles = :admin
54
+ @user.roles.first.should == :admin
55
+ @user.has_role?(:admin).should be_true
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,57 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'roles_generic/roles_mask'
3
+
4
+ class User
5
+ include RoleModels::Generic
6
+
7
+ attr_accessor :name, :roles_mask
8
+
9
+ role_strategy :roles_mask, :default
10
+
11
+ roles :admin, :user
12
+
13
+ def initialize name, *new_roles
14
+ self.name = name
15
+ self.roles = new_roles
16
+ end
17
+ end
18
+
19
+ describe "Generic RolesMask role strategy" do
20
+ context "default setup" do
21
+
22
+ before :each do
23
+ @admin_user = User.new 'Admin user', :admin
24
+ @user = User.new 'User', :user
25
+ end
26
+
27
+ it "should have admin user role to :admin" do
28
+ @admin_user.roles_list.first.should == :admin
29
+ @admin_user.admin?.should be_true
30
+
31
+ @admin_user.has_role?(:user).should be_false
32
+
33
+ @admin_user.has_role?(:admin).should be_true
34
+ @admin_user.is?(:admin).should be_true
35
+ @admin_user.has_roles?(:admin).should be_true
36
+ @admin_user.has?(:admin).should be_true
37
+ end
38
+
39
+ it "should have user role to :user" do
40
+ @user.roles_list.first.should == :user
41
+ @user.admin?.should be_false
42
+
43
+ @user.has_role?(:user).should be_true
44
+ @user.has_role?(:admin).should be_false
45
+ @user.is?(:admin).should be_false
46
+
47
+ @user.has_roles?(:admin).should be_false
48
+ @user.has?(:admin).should be_false
49
+ end
50
+
51
+ it "should set user role to :admin using roles=" do
52
+ @user.roles = :admin
53
+ @user.roles_list.first.should == :admin
54
+ @user.has_role?(:admin).should be_true
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,58 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'roles_generic/roles_string'
3
+
4
+ class User
5
+ include RoleModels::Generic
6
+
7
+ attr_accessor :name, :roles_string
8
+
9
+ role_strategy :roles_string, :default
10
+
11
+ roles :admin, :user
12
+
13
+ def initialize name, *new_roles
14
+ self.name = name
15
+ self.roles = new_roles
16
+ end
17
+ end
18
+
19
+
20
+ describe "Generic RoleStrings role strategy" do
21
+ context "default setup" do
22
+
23
+ before :each do
24
+ @admin_user = User.new 'Admin user', :admin
25
+ @user = User.new 'User', :user
26
+ end
27
+
28
+ it "should have admin user role to :admin" do
29
+ @admin_user.roles.first.should == :admin
30
+ @admin_user.admin?.should be_true
31
+
32
+ @admin_user.has_role?(:user).should be_false
33
+
34
+ @admin_user.has_role?(:admin).should be_true
35
+ @admin_user.is?(:admin).should be_true
36
+ @admin_user.has_roles?(:admin).should be_true
37
+ @admin_user.has?(:admin).should be_true
38
+ end
39
+
40
+ it "should have user role to :user" do
41
+ @user.roles.first.should == :user
42
+ @user.admin?.should be_false
43
+
44
+ @user.has_role?(:user).should be_true
45
+ @user.has_role?(:admin).should be_false
46
+ @user.is?(:admin).should be_false
47
+
48
+ @user.has_roles?(:admin).should be_false
49
+ @user.has?(:admin).should be_false
50
+ end
51
+
52
+ it "should set user role to :admin using roles=" do
53
+ @user.roles = :admin
54
+ @user.roles.first.should == :admin
55
+ @user.has_role?(:admin).should be_true
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,9 @@
1
+ require 'rspec'
2
+ require 'rspec/autorun'
3
+ require 'roles_generic'
4
+
5
+ RSpec.configure do |config|
6
+
7
+ end
8
+
9
+
metadata ADDED
@@ -0,0 +1,182 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roles_generic
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 1
9
+ version: 0.1.1
10
+ platform: ruby
11
+ authors:
12
+ - Kristian Mandrup
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-08-14 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rspec
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 2
30
+ - 0
31
+ - 0
32
+ - beta
33
+ - 19
34
+ version: 2.0.0.beta.19
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: generator-spec
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ segments:
46
+ - 0
47
+ - 5
48
+ - 1
49
+ version: 0.5.1
50
+ type: :development
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: require_all
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ segments:
61
+ - 1
62
+ - 1
63
+ - 0
64
+ version: 1.1.0
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: activesupport
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ segments:
76
+ - 3
77
+ - 0
78
+ - 0
79
+ - rc
80
+ version: 3.0.0.rc
81
+ type: :runtime
82
+ version_requirements: *id004
83
+ description: Generic role strategies sharing the same API. Easy to insert in any model
84
+ email: kmandrup@gmail.com
85
+ executables: []
86
+
87
+ extensions: []
88
+
89
+ extra_rdoc_files:
90
+ - LICENSE
91
+ - README.markdown
92
+ files:
93
+ - .document
94
+ - .gitignore
95
+ - .rspec
96
+ - LICENSE
97
+ - README.markdown
98
+ - Rakefile
99
+ - VERSION
100
+ - lib/generators/roles_model/roles/roles_generator.rb
101
+ - lib/roles_generic.rb
102
+ - lib/roles_generic/admin_flag.rb
103
+ - lib/roles_generic/base.rb
104
+ - lib/roles_generic/extensions/core_ext.rb
105
+ - lib/roles_generic/generic.rb
106
+ - lib/roles_generic/generic/class_methods.rb
107
+ - lib/roles_generic/generic/implementation.rb
108
+ - lib/roles_generic/generic/util.rb
109
+ - lib/roles_generic/many_roles.rb
110
+ - lib/roles_generic/one_role.rb
111
+ - lib/roles_generic/role/class_methods.rb
112
+ - lib/roles_generic/role_string.rb
113
+ - lib/roles_generic/role_strings.rb
114
+ - lib/roles_generic/roles_mask.rb
115
+ - lib/roles_generic/roles_string.rb
116
+ - spec/generator_spec_helper.rb
117
+ - spec/generators/admin_flag_generator_spec.rb
118
+ - spec/generators/many_roles_generator_spec.rb
119
+ - spec/generators/one_role_generator_spec.rb
120
+ - spec/generators/role_string_generator_spec.rb
121
+ - spec/generators/role_strings_generator_spec.rb
122
+ - spec/generators/roles_mask_generator_spec.rb
123
+ - spec/generators/roles_string_generator_spec.rb
124
+ - spec/model/role.rb
125
+ - spec/roles_generic/admin_flag_spec.rb
126
+ - spec/roles_generic/many_roles_spec.rb
127
+ - spec/roles_generic/one_role_spec.rb
128
+ - spec/roles_generic/role_string_spec.rb
129
+ - spec/roles_generic/role_strings_spec.rb
130
+ - spec/roles_generic/roles_mask_spec.rb
131
+ - spec/roles_generic/roles_string_spec.rb
132
+ - spec/spec_helper.rb
133
+ has_rdoc: true
134
+ homepage: http://github.com/kristianmandrup/roles_for_mm
135
+ licenses: []
136
+
137
+ post_install_message:
138
+ rdoc_options:
139
+ - --charset=UTF-8
140
+ require_paths:
141
+ - lib
142
+ required_ruby_version: !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ segments:
148
+ - 0
149
+ version: "0"
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ segments:
156
+ - 0
157
+ version: "0"
158
+ requirements: []
159
+
160
+ rubyforge_project:
161
+ rubygems_version: 1.3.7
162
+ signing_key:
163
+ specification_version: 3
164
+ summary: Generic role strategies sharing the same API
165
+ test_files:
166
+ - spec/generator_spec_helper.rb
167
+ - spec/generators/admin_flag_generator_spec.rb
168
+ - spec/generators/many_roles_generator_spec.rb
169
+ - spec/generators/one_role_generator_spec.rb
170
+ - spec/generators/role_string_generator_spec.rb
171
+ - spec/generators/role_strings_generator_spec.rb
172
+ - spec/generators/roles_mask_generator_spec.rb
173
+ - spec/generators/roles_string_generator_spec.rb
174
+ - spec/model/role.rb
175
+ - spec/roles_generic/admin_flag_spec.rb
176
+ - spec/roles_generic/many_roles_spec.rb
177
+ - spec/roles_generic/one_role_spec.rb
178
+ - spec/roles_generic/role_string_spec.rb
179
+ - spec/roles_generic/role_strings_spec.rb
180
+ - spec/roles_generic/roles_mask_spec.rb
181
+ - spec/roles_generic/roles_string_spec.rb
182
+ - spec/spec_helper.rb