roles_generic 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.
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