roles_mongo_mapper 0.3.1 → 0.3.2

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.3.2
@@ -3,32 +3,43 @@ require 'logging_assist'
3
3
 
4
4
  module MongoMapper
5
5
  module Generators
6
- class RolesGenerator < Rails::Generators::NamedBase
7
- desc "Add role strategy to a model"
6
+ class RolesGenerator < Rails::Generators::Base
7
+ desc "Add role strategy to a MongoMapper User model"
8
+
9
+ argument :user_class, :type => :string, :default => 'User', :desc => "User class name"
8
10
 
9
- class_option :strategy, :type => :string, :default => 'role_string',
11
+ class_option :strategy, :type => :string, :aliases => "-s", :default => 'role_string',
10
12
  :desc => "Role strategy to use (admin_flag, role_string, roles_string, role_strings, one_role, many_roles, roles_mask)"
11
13
 
12
- class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location"
13
- class_option :roles, :type => :array, :default => [], :desc => "Valid roles"
14
- class_option :role_class, :type => :string, :aliases => "-rc", :default => 'Role', :desc => "Role class"
14
+
15
+ class_option :roles, :type => :array, :aliases => "-r", :default => [], :desc => "Valid roles"
16
+ class_option :role_class, :type => :string, :aliases => "-rc", :default => 'Role', :desc => "Role class"
17
+
18
+ class_option :logfile, :type => :string, :aliases => "-l", :default => nil, :desc => "Logfile location"
15
19
 
16
20
  def apply_role_strategy
17
21
  logger.add_logfile :logfile => logfile if logfile
18
- logger.debug "apply_role_strategy for : #{strategy} in model #{name}"
22
+ logger.debug "apply_role_strategy for : #{strategy} in model #{user_class}"
19
23
 
20
24
  if !valid_strategy?
21
25
  say "Strategy '#{strategy}' is not valid. The valid strategies are: #{valid_strategies.join(', ')}", :red
22
26
  return
23
27
  end
24
28
 
25
- if !has_model_file?(user_model_name)
26
- say "User model #{user_model_name} not found", :red
29
+ if !has_model_file?(user_class)
30
+ say "User model #{user_class} not found", :red
27
31
  return
28
32
  end
29
33
 
34
+ if !is_mongo_mapper_model?(user_class)
35
+ say "User model #{user_class} is not a Mongo Mapper Document", :red
36
+ return
37
+ end
38
+
30
39
  begin
31
- insert_into_model user_model_name, :after => /include MongoMapper::\w+/ do
40
+ logger.debug "Trying to insert roles code into #{user_class}"
41
+
42
+ insert_into_model user_class, :after => /include MongoMapper::\w+/ do
32
43
  insertion_text
33
44
  end
34
45
  rescue Exception => e
@@ -45,6 +56,10 @@ module MongoMapper
45
56
 
46
57
  use_orm :mongo_mapper
47
58
 
59
+ def is_mongo_mapper_model? name
60
+ read_model(name) =~ /include MongoMapper::\w+/
61
+ end
62
+
48
63
  def role_class_strategy?
49
64
  # :embed_one_role, :embed_many_roles
50
65
  [:one_role, :many_roles].include? strategy.to_sym
@@ -69,10 +84,6 @@ module MongoMapper
69
84
  options[:logfile]
70
85
  end
71
86
 
72
- def user_model_name
73
- name || 'User'
74
- end
75
-
76
87
  def orm
77
88
  :mongo_mapper
78
89
  end
@@ -108,7 +119,7 @@ module MongoMapper
108
119
  end
109
120
 
110
121
  def has_valid_roles_statement?
111
- !(read_model(user_model_name) =~ /valid_roles_are/).nil?
122
+ !(read_model(user_class) =~ /valid_roles_are/).nil?
112
123
  end
113
124
 
114
125
  def insertion_text
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{roles_mongo_mapper}
8
- s.version = "0.3.1"
8
+ s.version = "0.3.2"
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{2011-01-01}
12
+ s.date = %q{2011-01-06}
13
13
  s.description = %q{Makes it easy to set a role strategy on your User model in MongoMapper}
14
14
  s.email = %q{kmandrup@gmail.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 1
9
- version: 0.3.1
8
+ - 2
9
+ version: 0.3.2
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: 2011-01-01 00:00:00 +01:00
17
+ date: 2011-01-06 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency