canard 0.3.5 → 0.3.6

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/.gitignore CHANGED
@@ -5,4 +5,5 @@ pkg/*
5
5
  .rvmrc
6
6
  Gemfile.lock
7
7
  *.sqlite3
8
- *.log
8
+ *.log
9
+ .tm_properties
data/TODO CHANGED
@@ -1,5 +1,4 @@
1
1
  0.4.0
2
- * Make the roles_attribute_name configureable in UserModel.
3
2
  * Make the Ability user referece configureable in Ability.
4
3
  * Test the generators.
5
4
  * Test the railtie (currently implicity tested in dummy app).
@@ -7,7 +6,6 @@
7
6
  * Remove old definition syntax and therefore deprecations.
8
7
  * Remove ActiveSupport runtime dependency (which is just used for deprecation warnings).
9
8
  0.5.0
10
- * Abstract out the ActiveRecord extensions into a model adapter to become framework independent.
11
9
  * Expand the generated tests to produce all the standard abilities: index,show,read,new,create,edit,update,destroy.
12
10
  * Add test unit generator.
13
11
  * Add install generator to allow overriding of the default tests.
data/lib/canard.rb CHANGED
@@ -7,4 +7,5 @@ require "canard/find_abilities"
7
7
  require "ability"
8
8
 
9
9
  require 'canard/railtie' if defined?(Rails) && Rails::VERSION::MAJOR >= 3
10
+ require 'canard/adapters/active_record' if defined?(ActiveRecord)
10
11
 
@@ -0,0 +1,56 @@
1
+ module Canard
2
+ module Adapters
3
+ module ActiveRecord
4
+
5
+ private
6
+
7
+ def add_role_scopes
8
+ if active_record_table?
9
+ valid_roles.each do |role|
10
+ define_scopes_for_role role
11
+ end
12
+
13
+ define_scope_method(:with_any_role) do |*roles|
14
+ where("#{role_mask_column} & :role_mask > 0", { :role_mask => mask_for(*roles) })
15
+ end
16
+
17
+ define_scope_method(:with_all_roles) do |*roles|
18
+ where("#{role_mask_column} & :role_mask = :role_mask", { :role_mask => mask_for(*roles) })
19
+ end
20
+ end
21
+ end
22
+
23
+ def active_record_table?
24
+ respond_to?(:table_exists?) && table_exists?
25
+ end
26
+
27
+ def has_roles_mask_accessors?
28
+ active_record_table? && column_names.include?(roles_attribute_name.to_s) || super
29
+ end
30
+
31
+ def define_scopes_for_role(role)
32
+ include_scope = role.to_s.pluralize
33
+ exclude_scope = "non_#{include_scope}"
34
+
35
+ define_scope_method(include_scope) do
36
+ where("#{role_mask_column} & :role_mask > 0", { :role_mask => mask_for(role) })
37
+ end
38
+
39
+ define_scope_method(exclude_scope) do
40
+ where("#{role_mask_column} & :role_mask = 0 or #{role_mask_column} is null", { :role_mask => mask_for(role) })
41
+ end
42
+ end
43
+
44
+ def define_scope_method(method, &block)
45
+ (class << self; self end).class_eval do
46
+ define_method(method, block)
47
+ end
48
+ end
49
+
50
+ def role_mask_column
51
+ "#{quoted_table_name}.#{connection.quote_column_name roles_attribute_name}"
52
+ end
53
+
54
+ end
55
+ end
56
+ end
@@ -7,7 +7,7 @@ module Canard
7
7
  attr_writer :abilities_path
8
8
 
9
9
  def abilities_path
10
- @abilities_path ||= File.expand_path('abilities', Rails.root)
10
+ @abilities_path ||= 'abilities'
11
11
  end
12
12
 
13
13
  def ability_definitions
@@ -22,7 +22,7 @@ module Canard
22
22
  end
23
23
 
24
24
  def self.load_paths
25
- Abilities.definition_paths.map { |path| File.join(Rails.root, path) }
25
+ Abilities.definition_paths.map { |path| File.expand_path(path) }
26
26
  end
27
27
 
28
28
  # TODO remove at version 0.4.0
@@ -14,6 +14,7 @@ module Canard
14
14
 
15
15
  initializer "canard.active_record" do |app|
16
16
  ActiveSupport.on_load :active_record do
17
+ Canard::Abilities.default_path = File.expand_path('app/abilities', Rails.root)
17
18
  extend Canard::UserModel
18
19
  Canard.find_abilities
19
20
  end
@@ -1,5 +1,4 @@
1
1
  module Canard
2
-
3
2
  module UserModel
4
3
 
5
4
  # Canard applies roles to a model using the acts_as_user class method. The following User model
@@ -7,7 +6,7 @@ module Canard
7
6
  #
8
7
  # class User < ActiveRecord::Base
9
8
  #
10
- # acts_as_user :roles => :manager, :admin
9
+ # acts_as_user :roles => [:manager, :admin]
11
10
  #
12
11
  # end
13
12
  #
@@ -20,14 +19,19 @@ module Canard
20
19
  #
21
20
  # attr_accessor :roles_mask
22
21
  #
23
- # acts_as_user :roles => :manager, :admin
22
+ # acts_as_user :roles => [:manager, :admin]
24
23
  #
25
24
  # end
26
25
  #
26
+ # You can choose the attribute used for the roles_mask by specifying :roles_mask. If no
27
+ # roles_mask is specified it uses RoleModel's default of 'roles_mask'
28
+ #
29
+ # acts_as_user :roles_mask => :my_roles_mask, :roles => [:manager, :admin]
30
+ #
27
31
  # == Scopes
28
32
  #
29
- # Beyond applying the roles to model acts_as_user also creates some useful scopes on the User
30
- # model for ActiveRecord models;
33
+ # Beyond applying the roles to the model, acts_as_user also creates some useful scopes for
34
+ # ActiveRecord models;
31
35
  #
32
36
  # User.with_any_role(:manager, :admin)
33
37
  #
@@ -54,66 +58,26 @@ module Canard
54
58
  # returns all the users who don't have the manager role.
55
59
  def acts_as_user(*args)
56
60
  include RoleModel
61
+ extend Adapters::ActiveRecord if defined?(ActiveRecord) && self < ActiveRecord::Base
57
62
 
58
- options = args.extract_options!.symbolize_keys
63
+ options = args.last.is_a?(Hash) ? args.pop : {}
59
64
 
60
- roles options[:roles] if options.has_key?(:roles) && has_roles_mask_attribute? || has_roles_mask_accessors?
65
+ roles_attribute options[:roles_mask] if options.has_key?(:roles_mask)
66
+
67
+ roles options[:roles] if options.has_key?(:roles) && has_roles_mask_accessors?
61
68
 
62
- if active_record_table?
63
- valid_roles.each do |role|
64
- define_scopes_for_role role
65
- end
66
-
67
- define_scope_method(:with_any_role) do |*roles|
68
- where("#{role_mask_column} & :role_mask > 0", { :role_mask => mask_for(*roles) })
69
- end
70
-
71
- define_scope_method(:with_all_roles) do |*roles|
72
- where("#{role_mask_column} & :role_mask = :role_mask", { :role_mask => mask_for(*roles) })
73
- end
74
- end
69
+ add_role_scopes if respond_to?(:add_role_scopes, true)
75
70
  end
76
71
 
77
72
  private
78
73
 
79
- def active_record_table?
80
- respond_to?(:table_exists?) && table_exists?
81
- end
82
-
74
+ # This is overridden by the ActiveRecord adapter as the attribute accessors
75
+ # don't show up in instance_methods.
83
76
  def has_roles_mask_accessors?
84
77
  instance_method_names = instance_methods.map { |method_name| method_name.to_s }
85
78
  [roles_attribute_name.to_s, "#{roles_attribute_name}="].all? do |accessor|
86
79
  instance_method_names.include?(accessor)
87
80
  end
88
81
  end
89
-
90
- def has_roles_mask_attribute?
91
- active_record_table? && column_names.include?(roles_attribute_name.to_s)
92
- end
93
-
94
- def define_scopes_for_role(role)
95
- include_scope = role.to_s.pluralize
96
- exclude_scope = "non_#{include_scope}"
97
-
98
- define_scope_method(include_scope) do
99
- where("#{role_mask_column} & :role_mask > 0", { :role_mask => mask_for(role) })
100
- end
101
-
102
- define_scope_method(exclude_scope) do
103
- where("#{role_mask_column} & :role_mask = 0 or #{role_mask_column} is null", { :role_mask => mask_for(role) })
104
- end
105
- end
106
-
107
- def define_scope_method(method, &block)
108
- (class << self; self end).class_eval do
109
- define_method(method, block)
110
- end
111
- end
112
-
113
- def role_mask_column
114
- %{"#{table_name}"."#{roles_attribute_name}"}
115
- end
116
-
117
82
  end
118
-
119
83
  end
@@ -1,3 +1,3 @@
1
1
  module Canard
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
@@ -3,6 +3,7 @@ require 'test_helper'
3
3
  describe Ability do
4
4
 
5
5
  before do
6
+ Canard::Abilities.default_path = File.expand_path('../../dummy/app/abilities', __FILE__)
6
7
  # reload abilities because the reloader will have removed them after the railtie ran
7
8
  Canard.find_abilities
8
9
  end
@@ -1,92 +1,68 @@
1
1
  require 'test_helper'
2
- require 'canard'
3
2
 
4
- describe Canard::UserModel do
5
-
6
- before do
7
- Canard.abilities_path = 'abilities'
8
- end
9
-
10
- # Sanity test
11
- it "must be an user" do
12
- user = User.new
13
- user.must_be_instance_of User
14
- user = UserWithoutRole.new
15
- user.must_be_instance_of UserWithoutRole
16
- user = UserWithoutRoleMask.new
17
- user.must_be_instance_of UserWithoutRoleMask
18
- end
3
+ describe Canard::Adapters::ActiveRecord do
19
4
 
20
5
  describe 'acts_as_user' do
21
6
 
22
- it 'adds role_model to the class' do
23
- User.included_modules.must_include RoleModel
24
- User.must_respond_to :roles
25
- end
26
-
27
- describe "on an ActiveRecord model" do
7
+ describe 'with a role_mask' do
28
8
 
29
- describe 'with a role_mask' do
9
+ describe 'and :roles => [] specified' do
10
+
11
+ it 'sets the valid_roles for the class' do
12
+ User.valid_roles.must_equal [:viewer, :author, :admin]
13
+ end
30
14
 
31
- describe 'and :roles => [] specified' do
15
+ end
32
16
 
33
- it 'sets the valid_roles for the class' do
34
- User.valid_roles.must_equal [:viewer, :author, :admin]
35
- end
17
+ describe 'and no :roles => [] specified' do
36
18
 
19
+ it 'sets no roles' do
20
+ UserWithoutRole.valid_roles.must_equal []
37
21
  end
22
+ end
38
23
 
39
- describe 'and no :roles => [] specified' do
24
+ end
40
25
 
41
- it 'sets no roles' do
42
- UserWithoutRole.valid_roles.must_equal []
43
- end
44
- end
26
+ describe 'with no roles_mask' do
45
27
 
28
+ before do
29
+ UserWithoutRoleMask.acts_as_user :roles => [:viewer, :admin]
46
30
  end
47
31
 
48
- describe 'with no roles_mask' do
49
-
50
- it 'sets no roles' do
51
- UserWithoutRole.valid_roles.must_equal []
52
- end
32
+ it 'sets no roles' do
33
+ UserWithoutRoleMask.valid_roles.must_equal []
53
34
  end
35
+ end
54
36
 
55
- describe "with no table" do
37
+ describe "with no table" do
56
38
 
57
- subject { Class.new(ActiveRecord::Base) }
39
+ subject { Class.new(ActiveRecord::Base) }
58
40
 
59
- it "sets no roles" do
60
- subject.class_eval { acts_as_user :roles => [:admin] }
61
- subject.valid_roles.must_equal []
62
- end
41
+ it "sets no roles" do
42
+ subject.class_eval { acts_as_user :roles => [:admin] }
43
+ subject.valid_roles.must_equal []
44
+ end
63
45
 
64
- it "does not raise any errors" do
65
- proc { subject.class_eval { acts_as_user :roles => [:admin] } }.must_be_silent
66
- end
46
+ it "does not raise any errors" do
47
+ proc { subject.class_eval { acts_as_user :roles => [:admin] } }.must_be_silent
48
+ end
67
49
 
68
- it "returns nil" do
69
- subject.class_eval { acts_as_user :roles => [:admin] }.must_be_nil
70
- end
50
+ it "returns nil" do
51
+ subject.class_eval { acts_as_user :roles => [:admin] }.must_be_nil
71
52
  end
72
53
  end
73
54
 
74
- describe "on a regular Ruby class" do
75
-
76
- describe "with a roles_mask" do
55
+ describe 'with an alternative roles_mask specified' do
77
56
 
78
- it "assigns the roles" do
79
- PlainRubyUser.valid_roles.must_equal [:viewer, :author, :admin]
80
- end
57
+ before do
58
+ UserWithoutRoleMask.acts_as_user :roles_mask => :my_roles_mask, :roles => [:viewer, :admin]
81
59
  end
82
60
 
83
- describe "with no roles_mask" do
84
-
85
- it "sets no roles" do
86
- PlainRubyNonUser.valid_roles.must_equal []
87
- end
61
+ it 'sets no roles' do
62
+ UserWithoutRoleMask.valid_roles.must_equal [:viewer, :admin]
88
63
  end
89
64
  end
65
+
90
66
  end
91
67
 
92
68
  describe "scopes" do
@@ -461,24 +437,6 @@ describe Canard::UserModel do
461
437
  end
462
438
 
463
439
  end
464
-
465
- describe "on a plain Ruby class" do
466
-
467
- subject { PlainRubyUser }
468
-
469
- it "creates no scope methods" do
470
- subject.wont_respond_to :admins
471
- subject.wont_respond_to :authors
472
- subject.wont_respond_to :viewers
473
- subject.wont_respond_to :non_admins
474
- subject.wont_respond_to :non_authors
475
- subject.wont_respond_to :non_viewers
476
- subject.wont_respond_to :with_any_role
477
- subject.wont_respond_to :with_all_roles
478
- end
479
-
480
- end
481
-
482
440
  end
483
441
 
484
442
  end
File without changes
@@ -9,6 +9,7 @@ describe Canard do
9
9
  # Stop the deprecation warnings coming to stderr for these tests.
10
10
  ActiveSupport::Deprecation.behavior = :notify
11
11
 
12
+ Canard::Abilities.default_path = File.expand_path('../../dummy/app/abilities', __FILE__)
12
13
  Canard.abilities_path = File.expand_path('../abilities', __FILE__)
13
14
  end
14
15
 
@@ -0,0 +1,91 @@
1
+ require 'test_helper'
2
+
3
+ describe Canard::UserModel do
4
+
5
+ describe 'acts_as_user' do
6
+
7
+ describe "integrating RoleModel" do
8
+
9
+ before do
10
+ PlainRubyUser.acts_as_user
11
+ end
12
+
13
+ it 'adds role_model to the class' do
14
+ PlainRubyUser.included_modules.must_include RoleModel
15
+ PlainRubyUser.must_respond_to :roles
16
+ end
17
+ end
18
+
19
+ describe "with a roles_mask" do
20
+
21
+ describe 'and :roles => [] specified' do
22
+
23
+ before do
24
+ PlainRubyUser.acts_as_user :roles => [:viewer, :author, :admin]
25
+ end
26
+
27
+ it 'sets the valid_roles for the class' do
28
+ PlainRubyUser.valid_roles.must_equal [:viewer, :author, :admin]
29
+ end
30
+ end
31
+
32
+ describe 'and no :roles => [] specified' do
33
+
34
+ before do
35
+ PlainRubyUser.acts_as_user
36
+ end
37
+
38
+ it 'sets no roles' do
39
+ PlainRubyUser.valid_roles.must_equal []
40
+ end
41
+ end
42
+ end
43
+
44
+ describe "with no roles_mask" do
45
+
46
+ before do
47
+ PlainRubyNonUser.acts_as_user :roles => [:viewer, :author, :admin]
48
+ end
49
+
50
+ it "sets no roles" do
51
+ PlainRubyNonUser.valid_roles.must_equal []
52
+ end
53
+ end
54
+
55
+ describe "setting the role_mask" do
56
+
57
+ before do
58
+ PlainRubyNonUser.send :attr_accessor, :my_roles
59
+ PlainRubyNonUser.acts_as_user :roles => [:viewer, :author], :roles_mask => :my_roles
60
+ end
61
+
62
+ it 'sets the valid_roles for the class' do
63
+ PlainRubyNonUser.valid_roles.must_equal [:viewer, :author]
64
+ end
65
+ end
66
+ end
67
+
68
+ describe "scopes" do
69
+
70
+ before do
71
+ PlainRubyUser.acts_as_user :roles => [:viewer, :author, :admin]
72
+ end
73
+
74
+ describe "on a plain Ruby class" do
75
+
76
+ subject { PlainRubyUser }
77
+
78
+ it "creates no scope methods" do
79
+ subject.wont_respond_to :admins
80
+ subject.wont_respond_to :authors
81
+ subject.wont_respond_to :viewers
82
+ subject.wont_respond_to :non_admins
83
+ subject.wont_respond_to :non_authors
84
+ subject.wont_respond_to :non_viewers
85
+ subject.wont_respond_to :with_any_role
86
+ subject.wont_respond_to :with_all_roles
87
+ end
88
+ end
89
+ end
90
+
91
+ end
@@ -2,6 +2,4 @@ class PlainRubyNonUser
2
2
 
3
3
  extend Canard::UserModel
4
4
 
5
- acts_as_user :roles => [:viewer, :author, :admin]
6
-
7
5
  end
@@ -4,6 +4,4 @@ class PlainRubyUser
4
4
 
5
5
  attr_accessor :roles_mask
6
6
 
7
- acts_as_user :roles => [:viewer, :author, :admin]
8
-
9
7
  end
@@ -1,6 +1,5 @@
1
1
  class UserWithoutRoleMask < ActiveRecord::Base
2
2
 
3
- acts_as_user
4
-
5
3
  attr_accessible :roles
4
+
6
5
  end
@@ -8,6 +8,7 @@ class InitializeDb < ActiveRecord::Migration
8
8
  t.integer :roles_mask
9
9
  end
10
10
  create_table :user_without_role_masks, :force => true do |t|
11
+ t.integer :my_roles_mask
11
12
  end
12
13
 
13
14
  create_table :members, :force => true do |t|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-25 00:00:00.000000000Z
12
+ date: 2012-06-06 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
16
- requirement: &2152467160 !ruby/object:Gem::Requirement
16
+ requirement: &2152663460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '2'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2152467160
24
+ version_requirements: *2152663460
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sqlite3
27
- requirement: &2152466380 !ruby/object:Gem::Requirement
27
+ requirement: &2152663000 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2152466380
35
+ version_requirements: *2152663000
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rails
38
- requirement: &2152464940 !ruby/object:Gem::Requirement
38
+ requirement: &2152662380 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 3.2.3
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2152464940
46
+ version_requirements: *2152662380
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &2152463940 !ruby/object:Gem::Requirement
49
+ requirement: &2152661900 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2152463940
57
+ version_requirements: *2152661900
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: cancan
60
- requirement: &2152463060 !ruby/object:Gem::Requirement
60
+ requirement: &2152661320 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2152463060
68
+ version_requirements: *2152661320
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: role_model
71
- requirement: &2152462240 !ruby/object:Gem::Requirement
71
+ requirement: &2152660780 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2152462240
79
+ version_requirements: *2152660780
80
80
  description: Wraps CanCan and RoleModel up to make role based authorisation really
81
81
  easy in Rails 3.x.
82
82
  email:
@@ -95,6 +95,7 @@ files:
95
95
  - lib/ability.rb
96
96
  - lib/canard.rb
97
97
  - lib/canard/abilities.rb
98
+ - lib/canard/adapters/active_record.rb
98
99
  - lib/canard/find_abilities.rb
99
100
  - lib/canard/railtie.rb
100
101
  - lib/canard/user_model.rb
@@ -106,9 +107,12 @@ files:
106
107
  - lib/generators/rspec/ability/ability_generator.rb
107
108
  - lib/generators/rspec/ability/templates/abilities_spec.rb.erb
108
109
  - test/abilities/admins.rb
109
- - test/abilities_test.rb
110
- - test/ability_test.rb
111
- - test/canard_test.rb
110
+ - test/canard/abilities_test.rb
111
+ - test/canard/ability_test.rb
112
+ - test/canard/adapters/active_record_test.rb
113
+ - test/canard/canard_test.rb
114
+ - test/canard/find_abilities_test.rb
115
+ - test/canard/user_model_test.rb
112
116
  - test/dummy/Rakefile
113
117
  - test/dummy/app/abilities/admins.rb
114
118
  - test/dummy/app/abilities/authors.rb
@@ -139,10 +143,8 @@ files:
139
143
  - test/dummy/db/schema.rb
140
144
  - test/dummy/log/.gitkeep
141
145
  - test/dummy/script/rails
142
- - test/find_abilities_test.rb
143
146
  - test/support/reloadable.rb
144
147
  - test/test_helper.rb
145
- - test/user_model_test.rb
146
148
  homepage: https://github.com/james2m/canard
147
149
  licenses: []
148
150
  post_install_message:
@@ -169,9 +171,12 @@ specification_version: 3
169
171
  summary: Adds role based authorisation to Rails by combining RoleModel and CanCan.
170
172
  test_files:
171
173
  - test/abilities/admins.rb
172
- - test/abilities_test.rb
173
- - test/ability_test.rb
174
- - test/canard_test.rb
174
+ - test/canard/abilities_test.rb
175
+ - test/canard/ability_test.rb
176
+ - test/canard/adapters/active_record_test.rb
177
+ - test/canard/canard_test.rb
178
+ - test/canard/find_abilities_test.rb
179
+ - test/canard/user_model_test.rb
175
180
  - test/dummy/Rakefile
176
181
  - test/dummy/app/abilities/admins.rb
177
182
  - test/dummy/app/abilities/authors.rb
@@ -202,7 +207,5 @@ test_files:
202
207
  - test/dummy/db/schema.rb
203
208
  - test/dummy/log/.gitkeep
204
209
  - test/dummy/script/rails
205
- - test/find_abilities_test.rb
206
210
  - test/support/reloadable.rb
207
211
  - test/test_helper.rb
208
- - test/user_model_test.rb