canard 0.2.2 → 0.2.3

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.
@@ -16,18 +16,18 @@ A User model with :admin and :manger roles would be defined:
16
16
  Lets generate some abilities for the User.
17
17
 
18
18
  $ rails g canard:ability user can:[read,create]:[account,statement] cannot:destroy:account
19
- create abilities/users.rb
19
+ create app/abilities/users.rb
20
20
  invoke rspec
21
21
  create spec/abilities/user_spec.rb
22
22
 
23
23
  Generates an ability folder in Rails root and an associated spec;
24
24
 
25
- abilities/
25
+ app.abilities/
26
26
  users.rb
27
27
  spec/abilities/
28
28
  users_spec.rb
29
29
 
30
- The resulting abilities/users.rb will look something like this;
30
+ The resulting app/abilities/users.rb will look something like this;
31
31
 
32
32
  abilities_for(:user) do
33
33
 
data/Rakefile CHANGED
@@ -7,3 +7,5 @@ Rake::TestTask.new do |t|
7
7
  t.pattern = 'test/*_test.rb'
8
8
  t.verbose = true
9
9
  end
10
+
11
+ task :default => ["test"]
@@ -1,15 +1,21 @@
1
1
  module Canard
2
2
  class Abilities
3
3
 
4
- @definitions = {}
5
- @definition_paths = ['app/abilities']
4
+ @definitions = {}
5
+ @default_path = 'app/abilities'
6
6
 
7
7
  class << self
8
8
 
9
- attr_accessor :definition_paths
9
+ attr_accessor :default_path
10
+
11
+ attr_writer :definition_paths
10
12
 
11
13
  attr_reader :definitions
12
14
 
15
+ def definition_paths
16
+ @definition_paths ||= [@default_path]
17
+ end
18
+
13
19
  def for(name, &block)
14
20
  raise ArgumentError.new('No block of ability definitions given') unless block_given?
15
21
  @definitions[name.to_sym] = block
@@ -19,4 +25,4 @@ module Canard
19
25
 
20
26
  end
21
27
 
22
- end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module Canard
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -7,7 +7,7 @@ module Canard
7
7
  argument :ability_definitions, :type => :array, :default => [], :banner => "can:[read,update]:[user,account] cannot:[create,destroy]:user"
8
8
 
9
9
  def generate_ability
10
- template "abilities.rb.erb", Canard.abilities_path + "/#{file_name.pluralize}.rb"
10
+ template "abilities.rb.erb", Abilities.default_path + "/#{file_name.pluralize}.rb"
11
11
  end
12
12
 
13
13
  hook_for :test_framework, :as => 'ability'
@@ -1,4 +1,4 @@
1
- abilities_for(<%= ":#{name}" -%>) do
1
+ Canard::Abilities.for(<%= ":#{name}" -%>) do
2
2
 
3
3
  <% if ability_definitions.empty? -%>
4
4
  # Define abilities for the user role here. For example:
@@ -24,6 +24,21 @@ describe 'Canard::Abilities' do
24
24
 
25
25
  end
26
26
 
27
+ describe "default_path" do
28
+
29
+ it "defaults to app/abilities" do
30
+ subject.default_path.must_equal 'app/abilities'
31
+ end
32
+
33
+ it "can be changhed" do
34
+ subject.default_path = 'other_abilities'
35
+
36
+ subject.default_path.must_equal 'other_abilities'
37
+ end
38
+
39
+
40
+ end
41
+
27
42
  describe "define" do
28
43
 
29
44
  it "adds the block to the definitions" do
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.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-12 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
16
- requirement: &2156167760 !ruby/object:Gem::Requirement
16
+ requirement: &2157009700 !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: *2156167760
24
+ version_requirements: *2157009700
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sqlite3
27
- requirement: &2156166640 !ruby/object:Gem::Requirement
27
+ requirement: &2157009160 !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: *2156166640
35
+ version_requirements: *2157009160
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activerecord
38
- requirement: &2156165600 !ruby/object:Gem::Requirement
38
+ requirement: &2157008240 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2156165600
46
+ version_requirements: *2157008240
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &2156164620 !ruby/object:Gem::Requirement
49
+ requirement: &2157007780 !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: *2156164620
57
+ version_requirements: *2157007780
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: cancan
60
- requirement: &2156156800 !ruby/object:Gem::Requirement
60
+ requirement: &2157007360 !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: *2156156800
68
+ version_requirements: *2157007360
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: role_model
71
- requirement: &2156155940 !ruby/object:Gem::Requirement
71
+ requirement: &2156992120 !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: *2156155940
79
+ version_requirements: *2156992120
80
80
  description: Wraps CanCan and RoleModel up to make role based authorisation really
81
81
  easy in Rails 3.x.
82
82
  email: