third-prestige-rolify 3.3.0.rc5
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.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.travis.yml +17 -0
- data/CHANGELOG.rdoc +157 -0
- data/Gemfile +21 -0
- data/LICENSE +20 -0
- data/README.md +220 -0
- data/Rakefile +34 -0
- data/UPGRADE.rdoc +44 -0
- data/gemfiles/Gemfile.rails-3.2 +21 -0
- data/gemfiles/Gemfile.rails-4.0 +27 -0
- data/lib/generators/active_record/rolify_generator.rb +50 -0
- data/lib/generators/active_record/templates/README +8 -0
- data/lib/generators/active_record/templates/migration.rb +19 -0
- data/lib/generators/mongoid/rolify_generator.rb +51 -0
- data/lib/generators/mongoid/templates/README-mongoid +4 -0
- data/lib/generators/rolify/rolify_generator.rb +35 -0
- data/lib/generators/rolify/templates/README +13 -0
- data/lib/generators/rolify/templates/initializer.rb +8 -0
- data/lib/generators/rolify/templates/role-active_record.rb +11 -0
- data/lib/generators/rolify/templates/role-mongoid.rb +17 -0
- data/lib/generators/rolify/user_generator.rb +39 -0
- data/lib/rolify.rb +57 -0
- data/lib/rolify/adapters/active_record/resource_adapter.rb +26 -0
- data/lib/rolify/adapters/active_record/role_adapter.rb +86 -0
- data/lib/rolify/adapters/active_record/scopes.rb +27 -0
- data/lib/rolify/adapters/base.rb +60 -0
- data/lib/rolify/adapters/mongoid/resource_adapter.rb +27 -0
- data/lib/rolify/adapters/mongoid/role_adapter.rb +89 -0
- data/lib/rolify/adapters/mongoid/scopes.rb +27 -0
- data/lib/rolify/configure.rb +56 -0
- data/lib/rolify/dynamic.rb +21 -0
- data/lib/rolify/finders.rb +40 -0
- data/lib/rolify/matchers.rb +13 -0
- data/lib/rolify/railtie.rb +20 -0
- data/lib/rolify/resource.rb +31 -0
- data/lib/rolify/role.rb +85 -0
- data/lib/rolify/utils.rb +10 -0
- data/lib/rolify/version.rb +3 -0
- data/rolify.gemspec +30 -0
- data/spec/README.rdoc +24 -0
- data/spec/generators/rolify/rolify_activerecord_generator_spec.rb +163 -0
- data/spec/generators/rolify/rolify_mongoid_generator_spec.rb +112 -0
- data/spec/generators_helper.rb +21 -0
- data/spec/rolify/config_spec.rb +191 -0
- data/spec/rolify/custom_spec.rb +20 -0
- data/spec/rolify/matchers_spec.rb +24 -0
- data/spec/rolify/namespace_spec.rb +24 -0
- data/spec/rolify/resource_spec.rb +389 -0
- data/spec/rolify/resourcifed_and_rolifed_spec.rb +24 -0
- data/spec/rolify/role_spec.rb +20 -0
- data/spec/rolify/shared_contexts.rb +92 -0
- data/spec/rolify/shared_examples/shared_examples_for_add_role.rb +92 -0
- data/spec/rolify/shared_examples/shared_examples_for_callbacks.rb +65 -0
- data/spec/rolify/shared_examples/shared_examples_for_dynamic.rb +151 -0
- data/spec/rolify/shared_examples/shared_examples_for_finders.rb +77 -0
- data/spec/rolify/shared_examples/shared_examples_for_has_all_roles.rb +71 -0
- data/spec/rolify/shared_examples/shared_examples_for_has_any_role.rb +71 -0
- data/spec/rolify/shared_examples/shared_examples_for_has_role.rb +135 -0
- data/spec/rolify/shared_examples/shared_examples_for_only_has_role.rb +174 -0
- data/spec/rolify/shared_examples/shared_examples_for_remove_role.rb +121 -0
- data/spec/rolify/shared_examples/shared_examples_for_roles.rb +102 -0
- data/spec/rolify/shared_examples/shared_examples_for_scopes.rb +38 -0
- data/spec/spec_helper.rb +30 -0
- data/spec/support/adapters/active_record.rb +76 -0
- data/spec/support/adapters/mongoid.rb +143 -0
- data/spec/support/adapters/mongoid.yml +6 -0
- data/spec/support/data.rb +25 -0
- data/spec/support/schema.rb +52 -0
- metadata +254 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "Resourcify and rolify on the same model" do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
reset_defaults
|
7
|
+
Role.delete_all
|
8
|
+
HumanResource.delete_all
|
9
|
+
end
|
10
|
+
|
11
|
+
let!(:user) do
|
12
|
+
user = HumanResource.new login: 'Samer'
|
13
|
+
user.save
|
14
|
+
user
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should add the role to the user" do
|
18
|
+
expect { user.add_role :admin }.to change { user.roles.count }.by(1)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should create a role to the roles collection" do
|
22
|
+
expect { user.add_role :moderator }.to change { Role.count }.by(1)
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "rolify/shared_examples/shared_examples_for_roles"
|
3
|
+
require "rolify/shared_examples/shared_examples_for_dynamic"
|
4
|
+
require "rolify/shared_examples/shared_examples_for_scopes"
|
5
|
+
require "rolify/shared_examples/shared_examples_for_callbacks"
|
6
|
+
|
7
|
+
describe Rolify do
|
8
|
+
def user_class
|
9
|
+
User
|
10
|
+
end
|
11
|
+
|
12
|
+
def role_class
|
13
|
+
Role
|
14
|
+
end
|
15
|
+
|
16
|
+
it_behaves_like Rolify::Role
|
17
|
+
it_behaves_like "Role.scopes"
|
18
|
+
it_behaves_like Rolify::Dynamic
|
19
|
+
it_behaves_like "Rolify.callbacks"
|
20
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
shared_context "global role", :scope => :global do
|
2
|
+
subject { admin }
|
3
|
+
|
4
|
+
def admin
|
5
|
+
user_class.first
|
6
|
+
end
|
7
|
+
|
8
|
+
before(:all) do
|
9
|
+
load_roles
|
10
|
+
create_other_roles
|
11
|
+
end
|
12
|
+
|
13
|
+
def load_roles
|
14
|
+
role_class.destroy_all
|
15
|
+
admin.roles = []
|
16
|
+
admin.add_role :admin
|
17
|
+
admin.add_role :staff
|
18
|
+
admin.add_role :manager, Group
|
19
|
+
admin.add_role :player, Forum
|
20
|
+
admin.add_role :moderator, Forum.last
|
21
|
+
admin.add_role :moderator, Group.last
|
22
|
+
admin.add_role :anonymous, Forum.first
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
shared_context "class scoped role", :scope => :class do
|
27
|
+
subject { manager }
|
28
|
+
|
29
|
+
before(:all) do
|
30
|
+
load_roles
|
31
|
+
create_other_roles
|
32
|
+
end
|
33
|
+
|
34
|
+
def manager
|
35
|
+
user_class.where(:login => "moderator").first
|
36
|
+
end
|
37
|
+
|
38
|
+
def load_roles
|
39
|
+
role_class.destroy_all
|
40
|
+
manager.roles = []
|
41
|
+
manager.add_role :manager, Forum
|
42
|
+
manager.add_role :player, Forum
|
43
|
+
manager.add_role :warrior
|
44
|
+
manager.add_role :moderator, Forum.last
|
45
|
+
manager.add_role :moderator, Group.last
|
46
|
+
manager.add_role :anonymous, Forum.first
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
shared_context "instance scoped role", :scope => :instance do
|
51
|
+
subject { moderator }
|
52
|
+
|
53
|
+
before(:all) do
|
54
|
+
load_roles
|
55
|
+
create_other_roles
|
56
|
+
end
|
57
|
+
|
58
|
+
def moderator
|
59
|
+
user_class.where(:login => "god").first
|
60
|
+
end
|
61
|
+
|
62
|
+
def load_roles
|
63
|
+
role_class.destroy_all
|
64
|
+
moderator.roles = []
|
65
|
+
moderator.add_role :moderator, Forum.first
|
66
|
+
moderator.add_role :anonymous, Forum.last
|
67
|
+
moderator.add_role :visitor, Forum
|
68
|
+
moderator.add_role :soldier
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
shared_context "mixed scoped roles", :scope => :mixed do
|
73
|
+
subject { user_class }
|
74
|
+
|
75
|
+
before(:all) do
|
76
|
+
role_class.destroy_all
|
77
|
+
end
|
78
|
+
|
79
|
+
let!(:root) { provision_user(user_class.first, [ :admin, :staff, [ :moderator, Group ], [ :visitor, Forum.last ] ]) }
|
80
|
+
let!(:modo) { provision_user(user_class.where(:login => "moderator").first, [[ :moderator, Forum ], [ :manager, Group ], [ :visitor, Group.first ]])}
|
81
|
+
let!(:visitor) { provision_user(user_class.last, [[ :visitor, Forum.last ]]) }
|
82
|
+
end
|
83
|
+
|
84
|
+
def create_other_roles
|
85
|
+
role_class.create :name => "superhero"
|
86
|
+
role_class.create :name => "admin", :resource_type => "Group"
|
87
|
+
role_class.create :name => "admin", :resource => Forum.first
|
88
|
+
role_class.create :name => "VIP", :resource_type => "Forum"
|
89
|
+
role_class.create :name => "manager", :resource => Forum.last
|
90
|
+
role_class.create :name => "roomate", :resource => Forum.first
|
91
|
+
role_class.create :name => "moderator", :resource => Group.first
|
92
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
shared_examples_for "#add_role_examples" do |param_name, param_method|
|
2
|
+
context "using #{param_name} as parameter" do
|
3
|
+
context "with a global role", :scope => :global do
|
4
|
+
it "should add the role to the user" do
|
5
|
+
expect { subject.add_role "root".send(param_method) }.to change { subject.roles.count }.by(1)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should create a role to the roles table" do
|
9
|
+
expect { subject.add_role "moderator".send(param_method) }.to change { role_class.count }.by(1)
|
10
|
+
end
|
11
|
+
|
12
|
+
context "considering a new global role" do
|
13
|
+
subject { role_class.last }
|
14
|
+
|
15
|
+
its(:name) { should eq("moderator") }
|
16
|
+
its(:resource_type) { should be(nil) }
|
17
|
+
its(:resource_id) { should be(nil) }
|
18
|
+
end
|
19
|
+
|
20
|
+
context "should not create another role" do
|
21
|
+
it "if the role was already assigned to the user" do
|
22
|
+
subject.add_role "manager".send(param_method)
|
23
|
+
expect { subject.add_role "manager".send(param_method) }.not_to change { subject.roles.size }
|
24
|
+
end
|
25
|
+
|
26
|
+
it "if the role already exists in the db" do
|
27
|
+
role_class.create :name => "god"
|
28
|
+
expect { subject.add_role "god".send(param_method) }.not_to change { role_class.count }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "with a class scoped role", :scope => :class do
|
34
|
+
it "should add the role to the user" do
|
35
|
+
expect { subject.add_role "supervisor".send(param_method), Forum }.to change { subject.roles.count }.by(1)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should create a role in the roles table" do
|
39
|
+
expect { subject.add_role "moderator".send(param_method), Forum }.to change { role_class.count }.by(1)
|
40
|
+
end
|
41
|
+
|
42
|
+
context "considering a new class scoped role" do
|
43
|
+
subject { role_class.last }
|
44
|
+
|
45
|
+
its(:name) { should eq("moderator") }
|
46
|
+
its(:resource_type) { should eq(Forum.to_s) }
|
47
|
+
its(:resource_id) { should be(nil) }
|
48
|
+
end
|
49
|
+
|
50
|
+
context "should not create another role" do
|
51
|
+
it "if the role was already assigned to the user" do
|
52
|
+
subject.add_role "warrior".send(param_method), Forum
|
53
|
+
expect { subject.add_role "warrior".send(param_method), Forum }.not_to change { subject.roles.count }
|
54
|
+
end
|
55
|
+
|
56
|
+
it "if already existing in the database" do
|
57
|
+
role_class.create :name => "hacker", :resource_type => "Forum"
|
58
|
+
expect { subject.add_role "hacker".send(param_method), Forum }.not_to change { role_class.count }
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
context "with an instance scoped role", :scope => :instance do
|
64
|
+
it "should add the role to the user" do
|
65
|
+
expect { subject.add_role "visitor".send(param_method), Forum.last }.to change { subject.roles.count }.by(1)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should create a role in the roles table" do
|
69
|
+
expect { subject.add_role "member".send(param_method), Forum.last }.to change { role_class.count }.by(1)
|
70
|
+
end
|
71
|
+
|
72
|
+
context "considering a new class scoped role" do
|
73
|
+
subject { role_class.last }
|
74
|
+
|
75
|
+
its(:name) { should eq("member") }
|
76
|
+
its(:resource) { should eq(Forum.last) }
|
77
|
+
end
|
78
|
+
|
79
|
+
context "should not create another role" do
|
80
|
+
it "if the role was already assigned to the user" do
|
81
|
+
subject.add_role "anonymous".send(param_method), Forum.first
|
82
|
+
expect { subject.add_role "anonymous".send(param_method), Forum.first }.not_to change { subject.roles.size }
|
83
|
+
end
|
84
|
+
|
85
|
+
it "if already existing in the database" do
|
86
|
+
role_class.create :name => "ghost", :resource_type => "Forum", :resource_id => Forum.first.id
|
87
|
+
expect { subject.add_role "ghost".send(param_method), Forum.first }.not_to change { role_class.count }
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
shared_examples_for "Rolify.callbacks" do
|
2
|
+
before(:all) do
|
3
|
+
reset_defaults
|
4
|
+
Rolify.dynamic_shortcuts = false
|
5
|
+
role_class.destroy_all
|
6
|
+
end
|
7
|
+
|
8
|
+
after :each do
|
9
|
+
@user.roles.destroy_all
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "rolify association callbacks", :if => (Rolify.orm == "active_record") do
|
13
|
+
describe "before_add" do
|
14
|
+
it "should receive callback" do
|
15
|
+
rolify_options = { :role_cname => role_class.to_s, :before_add => :role_callback }
|
16
|
+
rolify_options[:role_join_table_name] = join_table if defined? join_table
|
17
|
+
user_class.rolify rolify_options
|
18
|
+
@user = user_class.first
|
19
|
+
@user.stub(:role_callback)
|
20
|
+
@user.should_receive(:role_callback)
|
21
|
+
@user.add_role :admin
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "after_add" do
|
26
|
+
it "should receive callback" do
|
27
|
+
rolify_options = { :role_cname => role_class.to_s, :after_add => :role_callback }
|
28
|
+
rolify_options[:role_join_table_name] = join_table if defined? join_table
|
29
|
+
user_class.rolify rolify_options
|
30
|
+
@user = user_class.first
|
31
|
+
@user.stub(:role_callback)
|
32
|
+
@user.should_receive(:role_callback)
|
33
|
+
@user.add_role :admin
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "before_remove" do
|
38
|
+
it "should receive callback" do
|
39
|
+
rolify_options = { :role_cname => role_class.to_s, :before_remove => :role_callback }
|
40
|
+
rolify_options[:role_join_table_name] = join_table if defined? join_table
|
41
|
+
user_class.rolify rolify_options
|
42
|
+
@user = user_class.first
|
43
|
+
@user.add_role :admin
|
44
|
+
@user.stub(:role_callback)
|
45
|
+
|
46
|
+
@user.should_receive(:role_callback)
|
47
|
+
@user.remove_role :admin
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "after_remove" do
|
52
|
+
it "should receive callback" do
|
53
|
+
rolify_options = { :role_cname => role_class.to_s, :after_remove => :role_callback }
|
54
|
+
rolify_options[:role_join_table_name] = join_table if defined? join_table
|
55
|
+
user_class.rolify rolify_options
|
56
|
+
@user = user_class.first
|
57
|
+
@user.add_role :admin
|
58
|
+
@user.stub(:role_callback)
|
59
|
+
|
60
|
+
@user.should_receive(:role_callback)
|
61
|
+
@user.remove_role :admin
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
shared_examples_for Rolify::Dynamic do
|
2
|
+
before(:all) do
|
3
|
+
Rolify.dynamic_shortcuts = true
|
4
|
+
role_class.destroy_all
|
5
|
+
rolify_options = { :role_cname => role_class.to_s }
|
6
|
+
rolify_options[:role_join_table_name] = join_table if defined? join_table
|
7
|
+
user_class.rolify rolify_options
|
8
|
+
Forum.resourcify :roles, :role_cname => role_class.to_s
|
9
|
+
Group.resourcify :roles, :role_cname => role_class.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
context "using a global role" do
|
13
|
+
subject do
|
14
|
+
admin = user_class.first
|
15
|
+
admin.add_role :admin
|
16
|
+
admin.add_role :moderator, Forum.first
|
17
|
+
admin.add_role :solo
|
18
|
+
admin
|
19
|
+
end
|
20
|
+
|
21
|
+
it { should respond_to(:is_admin?).with(0).arguments }
|
22
|
+
it { should respond_to(:is_moderator_of?).with(1).arguments }
|
23
|
+
it { should_not respond_to(:is_god?) }
|
24
|
+
|
25
|
+
it { subject.is_admin?.should be(true) }
|
26
|
+
it { subject.is_admin?.should be(true) }
|
27
|
+
it { subject.is_admin?.should be(true) }
|
28
|
+
|
29
|
+
context "removing the role on the last user having it" do
|
30
|
+
before do
|
31
|
+
subject.remove_role :solo
|
32
|
+
end
|
33
|
+
|
34
|
+
it { should_not respond_to(:is_solo?) }
|
35
|
+
it { subject.is_solo?.should be(false) }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "using a resource scoped role" do
|
40
|
+
subject do
|
41
|
+
moderator = user_class.where(:login => "moderator").first
|
42
|
+
moderator.add_role :moderator, Forum.first
|
43
|
+
moderator.add_role :sole_mio, Forum.last
|
44
|
+
moderator
|
45
|
+
end
|
46
|
+
|
47
|
+
it { should respond_to(:is_admin?).with(0).arguments }
|
48
|
+
it { should respond_to(:is_moderator?).with(0).arguments }
|
49
|
+
it { should respond_to(:is_moderator_of?).with(1).arguments }
|
50
|
+
it { should_not respond_to(:is_god?) }
|
51
|
+
it { should_not respond_to(:is_god_of?) }
|
52
|
+
|
53
|
+
it { subject.is_moderator?.should be(false) }
|
54
|
+
it { subject.is_moderator_of?(Forum).should be(false) }
|
55
|
+
it { subject.is_moderator_of?(Forum.first).should be(true) }
|
56
|
+
it { subject.is_moderator_of?(Forum.last).should be(false) }
|
57
|
+
it { subject.is_moderator_of?(Group).should be(false) }
|
58
|
+
it { subject.is_moderator_of?(Group.first).should be(false) }
|
59
|
+
it { subject.is_moderator_of?(Group.last).should be(false) }
|
60
|
+
|
61
|
+
context "removing the role on the last user having it" do
|
62
|
+
before do
|
63
|
+
subject.remove_role :sole_mio, Forum.last
|
64
|
+
end
|
65
|
+
|
66
|
+
it { should_not respond_to(:is_sole_mio?) }
|
67
|
+
it { subject.is_sole_mio?.should be(false) }
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context "using a class scoped role" do
|
72
|
+
subject do
|
73
|
+
manager = user_class.where(:login => "god").first
|
74
|
+
manager.add_role :manager, Forum
|
75
|
+
manager.add_role :only_me, Forum
|
76
|
+
manager
|
77
|
+
end
|
78
|
+
|
79
|
+
it { should respond_to(:is_admin?).with(0).arguments }
|
80
|
+
it { should respond_to(:is_moderator?).with(0).arguments }
|
81
|
+
it { should respond_to(:is_moderator_of?).with(1).arguments }
|
82
|
+
it { should respond_to(:is_manager?).with(0).arguments }
|
83
|
+
it { should respond_to(:is_manager_of?).with(1).arguments }
|
84
|
+
it { should_not respond_to(:is_god?) }
|
85
|
+
it { should_not respond_to(:is_god_of?) }
|
86
|
+
|
87
|
+
it { subject.is_manager?.should be(false) }
|
88
|
+
it { subject.is_manager_of?(Forum).should be(true) }
|
89
|
+
it { subject.is_manager_of?(Forum.first).should be(true) }
|
90
|
+
it { subject.is_manager_of?(Forum.last).should be(true) }
|
91
|
+
it { subject.is_manager_of?(Group).should be(false) }
|
92
|
+
it { subject.is_manager_of?(Group.first).should be(false) }
|
93
|
+
it { subject.is_manager_of?(Group.last).should be(false) }
|
94
|
+
|
95
|
+
context "removing the role on the last user having it" do
|
96
|
+
before do
|
97
|
+
subject.remove_role :only_me, Forum
|
98
|
+
end
|
99
|
+
|
100
|
+
it { should_not respond_to(:is_only_me?) }
|
101
|
+
it { subject.is_only_me?.should be(false) }
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context "if the role doesn't exist in the database" do
|
106
|
+
|
107
|
+
subject { user_class.first }
|
108
|
+
|
109
|
+
context "using a global role" do
|
110
|
+
before(:all) do
|
111
|
+
other_guy = user_class.last
|
112
|
+
other_guy.add_role :superman
|
113
|
+
end
|
114
|
+
|
115
|
+
it { should respond_to(:is_superman?).with(0).arguments }
|
116
|
+
it { should_not respond_to(:is_superman_of?) }
|
117
|
+
it { should_not respond_to(:is_god?) }
|
118
|
+
|
119
|
+
it { subject.is_superman?.should be(false) }
|
120
|
+
it { subject.is_god?.should be(false) }
|
121
|
+
end
|
122
|
+
|
123
|
+
context "using a resource scope role" do
|
124
|
+
before(:all) do
|
125
|
+
other_guy = user_class.last
|
126
|
+
other_guy.add_role :batman, Forum.first
|
127
|
+
end
|
128
|
+
|
129
|
+
it { should respond_to(:is_batman?).with(0).arguments }
|
130
|
+
it { should respond_to(:is_batman_of?).with(1).arguments }
|
131
|
+
it { should_not respond_to(:is_god?) }
|
132
|
+
it { should_not respond_to(:is_god_of?) }
|
133
|
+
|
134
|
+
it { subject.is_batman?.should be(false) }
|
135
|
+
it { subject.is_batman_of?(Forum).should be(false) }
|
136
|
+
it { subject.is_batman_of?(Forum.first).should be(false) }
|
137
|
+
it { subject.is_batman_of?(Forum.last).should be(false) }
|
138
|
+
it { subject.is_batman_of?(Group).should be(false) }
|
139
|
+
it { subject.is_batman_of?(Group.first).should be(false) }
|
140
|
+
it { subject.is_batman_of?(Group.last).should be(false) }
|
141
|
+
|
142
|
+
it { subject.is_god?.should be(false) }
|
143
|
+
it { subject.is_god_of?(Forum).should be(false) }
|
144
|
+
it { subject.is_god_of?(Forum.first).should be(false) }
|
145
|
+
it { subject.is_god_of?(Forum.last).should be(false) }
|
146
|
+
it { subject.is_god_of?(Group).should be(false) }
|
147
|
+
it { subject.is_god_of?(Group.first).should be(false) }
|
148
|
+
it { subject.is_god_of?(Group.last).should be(false) }
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|