roles_generic 0.2.6 → 0.2.7

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/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