roles_generic 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -8,41 +8,15 @@ begin
8
8
  gem.homepage = "http://github.com/kristianmandrup/roles_for_mm"
9
9
  gem.authors = ["Kristian Mandrup"]
10
10
  gem.add_development_dependency "rspec", "~> 2.0.0.beta.22"
11
- gem.add_development_dependency "generator-spec", "~> 0.6.1"
11
+ gem.add_development_dependency "generator-spec", "~> 0.6.5"
12
12
 
13
- gem.add_dependency "require_all", "~> 1.1.0"
13
+ gem.add_dependency "require_all", "~> 1.2.0"
14
14
  gem.add_dependency "activesupport", "~> 3.0.0"
15
- gem.add_dependency 'sugar-high', "~> 0.2.5"
16
- gem.add_dependency 'rails3_artifactor', '~> 0.1.4'
15
+ gem.add_dependency 'sugar-high', "~> 0.2.10"
16
+ gem.add_dependency 'rails3_artifactor', '~> 0.2.5'
17
17
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
18
18
  end
19
19
  Jeweler::GemcutterTasks.new
20
20
  rescue LoadError
21
21
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
22
22
  end
23
-
24
- # require 'spec/rake/spectask'
25
- # Spec::Rake::SpecTask.new(:spec) do |spec|
26
- # spec.libs << 'lib' << 'spec'
27
- # spec.spec_files = FileList['spec/**/*_spec.rb']
28
- # end
29
- #
30
- # Spec::Rake::SpecTask.new(:rcov) do |spec|
31
- # spec.libs << 'lib' << 'spec'
32
- # spec.pattern = 'spec/**/*_spec.rb'
33
- # spec.rcov = true
34
- # end
35
- #
36
- # task :spec => :check_dependencies
37
- #
38
- # task :default => :spec
39
- #
40
- # require 'rake/rdoctask'
41
- # Rake::RDocTask.new do |rdoc|
42
- # version = File.exist?('VERSION') ? File.read('VERSION') : ""
43
- #
44
- # rdoc.rdoc_dir = 'rdoc'
45
- # rdoc.title = "roles_for_mm #{version}"
46
- # rdoc.rdoc_files.include('README*')
47
- # rdoc.rdoc_files.include('lib/**/*.rb')
48
- # end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.6
1
+ 0.2.7
@@ -2,7 +2,21 @@ module Roles::Generic::Role
2
2
  module InstanceMethods
3
3
  def role_class
4
4
  self.class.role_class_name
5
- end
5
+ end
6
+
7
+ def get_roles _roles
8
+ raise "Role class #{role_class} does not have a #find_role(role) method" if !role_class.respond_to? :find_role
9
+ _roles = _roles.flatten.compact
10
+ _roles = _roles.select{|role| role.kind_of?(role_class) || role.kind_of_label?}
11
+ _roles.map! do |role|
12
+ case role
13
+ when role_class
14
+ role.name
15
+ else
16
+ role.to_s
17
+ end
18
+ end
19
+ end
6
20
  end
7
21
 
8
22
  module ClassMethods
@@ -26,7 +26,6 @@ module Roles::Generic::User
26
26
  #
27
27
  # declare valid roles
28
28
  def roles(*roles)
29
- puts "role_class: #{role_class_name}"
30
29
  self.valid_roles = Array[*roles].flatten.map { |r| r.to_sym }
31
30
  end
32
31
  end
@@ -14,13 +14,13 @@ class Role
14
14
 
15
15
  def self.find_role role_name
16
16
  roles.to_a.select do |r|
17
- r.name == role_name
17
+ r.name.to_sym == role_name.to_sym
18
18
  end.first
19
19
  end
20
20
 
21
21
  def self.find_roles *role_names
22
22
  result = Set.new
23
- role_names.flatten.each do |role_name|
23
+ role_names.to_symbols.each do |role_name|
24
24
  found_role = find_role(role_name)
25
25
  result << found_role if found_role
26
26
  end
@@ -6,10 +6,10 @@ module RoleStrategy::Generic
6
6
 
7
7
  module Implementation
8
8
  # assign roles
9
- def roles=(*roles)
10
- raise "Role class #{role_class} does not have a #find_role(role) method" if !role_class.respond_to? :find_role
11
-
12
- role_relations = role_class.find_roles(*roles)
9
+ def roles=(*_roles)
10
+ _roles = get_roles(_roles)
11
+ return nil if !_roles || _roles.empty?
12
+ role_relations = role_class.find_roles(_roles)
13
13
  role_relations.each do |role_relation|
14
14
  self.send("#{role_attribute}=", role_relation) if role_relation.kind_of?(role_class)
15
15
  end
@@ -20,8 +20,10 @@ module RoleStrategy::Generic
20
20
  self.send(role_attribute)
21
21
  end
22
22
 
23
- def roles_list
24
- [roles].flatten.map{|r| r.name }.compact
23
+ def roles_list
24
+ _roles = [roles].flatten.compact
25
+ return [] if _roles.empty?
26
+ _roles.map{|r| r.name }.compact
25
27
  end
26
28
  end
27
29
 
@@ -6,10 +6,11 @@ module RoleStrategy::Generic
6
6
 
7
7
  module Implementation
8
8
  # assign roles
9
- def roles=(*roles)
10
- raise "Role class #{role_class} does not have a #find_role(role) method" if !role_class.respond_to? :find_role
9
+ def roles=(*_roles)
10
+ _roles = get_roles(_roles)
11
+ return nil if !_roles || _roles.empty?
11
12
 
12
- first_role = roles.flatten.first
13
+ first_role = _roles.flatten.first
13
14
  role_relation = role_class.find_role(first_role)
14
15
  if role_relation && role_relation.kind_of?(role_class)
15
16
  self.send("#{role_attribute}=", role_relation)
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{roles_generic}
8
- s.version = "0.2.6"
8
+ s.version = "0.2.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
12
- s.date = %q{2010-09-13}
12
+ s.date = %q{2010-09-23}
13
13
  s.description = %q{Generic role strategies sharing the same API. Easy to insert in any model}
14
14
  s.email = %q{kmandrup@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -99,26 +99,26 @@ Gem::Specification.new do |s|
99
99
 
100
100
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
101
101
  s.add_development_dependency(%q<rspec>, ["~> 2.0.0.beta.22"])
102
- s.add_development_dependency(%q<generator-spec>, ["~> 0.6.1"])
103
- s.add_runtime_dependency(%q<require_all>, ["~> 1.1.0"])
102
+ s.add_development_dependency(%q<generator-spec>, ["~> 0.6.5"])
103
+ s.add_runtime_dependency(%q<require_all>, ["~> 1.2.0"])
104
104
  s.add_runtime_dependency(%q<activesupport>, ["~> 3.0.0"])
105
- s.add_runtime_dependency(%q<sugar-high>, ["~> 0.2.5"])
106
- s.add_runtime_dependency(%q<rails3_artifactor>, ["~> 0.1.4"])
105
+ s.add_runtime_dependency(%q<sugar-high>, ["~> 0.2.10"])
106
+ s.add_runtime_dependency(%q<rails3_artifactor>, ["~> 0.2.5"])
107
107
  else
108
108
  s.add_dependency(%q<rspec>, ["~> 2.0.0.beta.22"])
109
- s.add_dependency(%q<generator-spec>, ["~> 0.6.1"])
110
- s.add_dependency(%q<require_all>, ["~> 1.1.0"])
109
+ s.add_dependency(%q<generator-spec>, ["~> 0.6.5"])
110
+ s.add_dependency(%q<require_all>, ["~> 1.2.0"])
111
111
  s.add_dependency(%q<activesupport>, ["~> 3.0.0"])
112
- s.add_dependency(%q<sugar-high>, ["~> 0.2.5"])
113
- s.add_dependency(%q<rails3_artifactor>, ["~> 0.1.4"])
112
+ s.add_dependency(%q<sugar-high>, ["~> 0.2.10"])
113
+ s.add_dependency(%q<rails3_artifactor>, ["~> 0.2.5"])
114
114
  end
115
115
  else
116
116
  s.add_dependency(%q<rspec>, ["~> 2.0.0.beta.22"])
117
- s.add_dependency(%q<generator-spec>, ["~> 0.6.1"])
118
- s.add_dependency(%q<require_all>, ["~> 1.1.0"])
117
+ s.add_dependency(%q<generator-spec>, ["~> 0.6.5"])
118
+ s.add_dependency(%q<require_all>, ["~> 1.2.0"])
119
119
  s.add_dependency(%q<activesupport>, ["~> 3.0.0"])
120
- s.add_dependency(%q<sugar-high>, ["~> 0.2.5"])
121
- s.add_dependency(%q<rails3_artifactor>, ["~> 0.1.4"])
120
+ s.add_dependency(%q<sugar-high>, ["~> 0.2.10"])
121
+ s.add_dependency(%q<rails3_artifactor>, ["~> 0.2.5"])
122
122
  end
123
123
  end
124
124
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 6
9
- version: 0.2.6
8
+ - 7
9
+ version: 0.2.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kristian Mandrup
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-13 00:00:00 +02:00
17
+ date: 2010-09-23 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -45,8 +45,8 @@ dependencies:
45
45
  segments:
46
46
  - 0
47
47
  - 6
48
- - 1
49
- version: 0.6.1
48
+ - 5
49
+ version: 0.6.5
50
50
  type: :development
51
51
  version_requirements: *id002
52
52
  - !ruby/object:Gem::Dependency
@@ -59,9 +59,9 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  segments:
61
61
  - 1
62
- - 1
62
+ - 2
63
63
  - 0
64
- version: 1.1.0
64
+ version: 1.2.0
65
65
  type: :runtime
66
66
  version_requirements: *id003
67
67
  - !ruby/object:Gem::Dependency
@@ -90,8 +90,8 @@ dependencies:
90
90
  segments:
91
91
  - 0
92
92
  - 2
93
- - 5
94
- version: 0.2.5
93
+ - 10
94
+ version: 0.2.10
95
95
  type: :runtime
96
96
  version_requirements: *id005
97
97
  - !ruby/object:Gem::Dependency
@@ -104,9 +104,9 @@ dependencies:
104
104
  - !ruby/object:Gem::Version
105
105
  segments:
106
106
  - 0
107
- - 1
108
- - 4
109
- version: 0.1.4
107
+ - 2
108
+ - 5
109
+ version: 0.2.5
110
110
  type: :runtime
111
111
  version_requirements: *id006
112
112
  description: Generic role strategies sharing the same API. Easy to insert in any model