acts_as_role 0.2.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -3,11 +3,11 @@ source "http://rubygems.org"
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
- gem "rails", ">= 3.0.0"
7
6
 
8
7
  # Add dependencies to develop your gem here.
9
8
  # Include everything needed to run rake, tests, features, etc.
10
9
  group :development do
10
+ gem "rails", "~> 3.1.0.rc4"
11
11
  gem "rspec-rails"
12
12
  gem "sqlite3"
13
13
  gem "bundler", "~> 1.0.0"
@@ -107,7 +107,7 @@ PLATFORMS
107
107
  DEPENDENCIES
108
108
  bundler (~> 1.0.0)
109
109
  jeweler (~> 1.5.2)
110
- rails (>= 3.0.0)
110
+ rails (~> 3.1.0.rc4)
111
111
  rcov
112
112
  rspec-rails
113
113
  sqlite3
@@ -9,7 +9,7 @@ This is a minimalist implementation of roles using a database column to store th
9
9
  Use role field to store the user roles.
10
10
 
11
11
  user = User.new
12
- user.role = "user"
12
+ user.role => "user"
13
13
  user.has_role?(:user) => true
14
14
 
15
15
  Test roles using has_#{role_column.singularize}? or has_#{role_column.pluralize}?
@@ -19,7 +19,7 @@ Test roles using has_#{role_column.singularize}? or has_#{role_column.pluralize}
19
19
  user.add_roles :owner
20
20
  user.has_roles?(:user, :owner) => true
21
21
 
22
- Roles are stores using text
22
+ Roles are stored using plain text
23
23
 
24
24
  user.roles => "user_owner"
25
25
 
@@ -27,7 +27,7 @@ Roles are stores using text
27
27
  user.has_role?(:user) => false
28
28
  user.roles => "owner"
29
29
 
30
- Validation - internally there is a roles validator
30
+ Validation - internally there is a roles validator, you can add a :message to customize the validation message
31
31
 
32
32
  user.add_roles :not_specified
33
33
  user.valid? => false
@@ -40,7 +40,7 @@ You can use a different field with different syntax
40
40
  end
41
41
 
42
42
  access = Access.new
43
- access.flag => nil
43
+ access.flag => "" (no default role specified)
44
44
  access.add_flags(:owner)
45
45
  access.has_flag?(:owner) => true
46
46
  access.add_flags(:manager)
@@ -50,7 +50,20 @@ You can use a different field with different syntax
50
50
  access.valid? => false
51
51
  access.errors[:flag] => "invalid role"
52
52
 
53
- == Contributing to has_roles
53
+ Also you can use is_role to query a custom role
54
+
55
+ user = User.new
56
+ user.is_user? => true
57
+ user.is_admin? => false
58
+
59
+ access = Access.new
60
+ access.is_owner? => false
61
+ access.is_manager? => false
62
+ access.add_roles :manager
63
+ access.is_manager? => true
64
+
65
+
66
+ == Contributing to acts_as_roles
54
67
 
55
68
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
56
69
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{acts_as_role}
8
- s.version = "0.2.0"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Carlos Segura"]
12
- s.date = %q{2011-07-25}
12
+ s.date = %q{2011-07-26}
13
13
  s.description = %q{Use a field to store plain-text roles and manage them easily}
14
14
  s.email = %q{csegura@ideseg.com}
15
15
  s.extra_rdoc_files = [
@@ -26,8 +26,8 @@ Gem::Specification.new do |s|
26
26
  "Rakefile",
27
27
  "VERSION",
28
28
  "acts_as_role.gemspec",
29
+ "lib/active_model/validations/roles_validator.rb",
29
30
  "lib/acts_as_role.rb",
30
- "lib/roles_validator.rb",
31
31
  "spec/access_spec.rb",
32
32
  "spec/models/access.rb",
33
33
  "spec/models/user.rb",
@@ -53,14 +53,14 @@ Gem::Specification.new do |s|
53
53
  s.specification_version = 3
54
54
 
55
55
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
56
- s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
56
+ s.add_development_dependency(%q<rails>, ["~> 3.1.0.rc4"])
57
57
  s.add_development_dependency(%q<rspec-rails>, [">= 0"])
58
58
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
59
59
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
60
60
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
61
61
  s.add_development_dependency(%q<rcov>, [">= 0"])
62
62
  else
63
- s.add_dependency(%q<rails>, [">= 3.0.0"])
63
+ s.add_dependency(%q<rails>, ["~> 3.1.0.rc4"])
64
64
  s.add_dependency(%q<rspec-rails>, [">= 0"])
65
65
  s.add_dependency(%q<sqlite3>, [">= 0"])
66
66
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -68,7 +68,7 @@ Gem::Specification.new do |s|
68
68
  s.add_dependency(%q<rcov>, [">= 0"])
69
69
  end
70
70
  else
71
- s.add_dependency(%q<rails>, [">= 3.0.0"])
71
+ s.add_dependency(%q<rails>, ["~> 3.1.0.rc4"])
72
72
  s.add_dependency(%q<rspec-rails>, [">= 0"])
73
73
  s.add_dependency(%q<sqlite3>, [">= 0"])
74
74
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -0,0 +1,23 @@
1
+ require 'active_model/validations'
2
+
3
+ module ActiveModel
4
+ module Validations
5
+ extend ActiveSupport::Autoload
6
+
7
+ autoload 'RolesValidator'
8
+
9
+ class RolesValidator < ActiveModel::EachValidator
10
+ def initialize(options)
11
+ @roles = options[:roles]
12
+ super
13
+ end
14
+ def validate_each(record, attribute, value)
15
+ unless value.split("_").all? {|x| @roles.include?(x) }
16
+ record.errors[attribute] << (options[:message] || "contains an invalid role")
17
+ end
18
+ end
19
+ end
20
+ end
21
+ module HelperMethods
22
+ end
23
+ end
@@ -1,3 +1,5 @@
1
+ require 'active_model/validations/roles_validator'
2
+
1
3
  module ActsAsRole
2
4
 
3
5
  module Role
@@ -7,6 +7,7 @@ describe Access do
7
7
  end
8
8
  it "should have default role :Access" do
9
9
  @access.flag.should be_empty
10
+ @access.flag.should_not be_nil
10
11
  end
11
12
  end
12
13
 
@@ -7,7 +7,6 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
7
  require 'rspec'
8
8
  require 'rails/all'
9
9
  require 'acts_as_role'
10
- require 'roles_validator'
11
10
 
12
11
  # Requires supporting files with custom matchers and macros, etc,
13
12
  # in ./support/ and its subdirectories.
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: acts_as_role
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.0
5
+ version: 0.3.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Carlos Segura
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-25 00:00:00 +02:00
13
+ date: 2011-07-26 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -18,10 +18,10 @@ dependencies:
18
18
  requirement: &id001 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
- - - ">="
21
+ - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: 3.0.0
24
- type: :runtime
23
+ version: 3.1.0.rc4
24
+ type: :development
25
25
  prerelease: false
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
@@ -98,8 +98,8 @@ files:
98
98
  - Rakefile
99
99
  - VERSION
100
100
  - acts_as_role.gemspec
101
+ - lib/active_model/validations/roles_validator.rb
101
102
  - lib/acts_as_role.rb
102
- - lib/roles_validator.rb
103
103
  - spec/access_spec.rb
104
104
  - spec/models/access.rb
105
105
  - spec/models/user.rb
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - ">="
122
122
  - !ruby/object:Gem::Version
123
- hash: -3469102273411357801
123
+ hash: 1760841836674811335
124
124
  segments:
125
125
  - 0
126
126
  version: "0"
@@ -1,12 +0,0 @@
1
-
2
- class RolesValidator < ActiveModel::EachValidator
3
- def initialize(options)
4
- @roles = options[:roles]
5
- super
6
- end
7
- def validate_each(record, attribute, value)
8
- unless value.split("_").all? {|x| @roles.include?(x) }
9
- record.errors[attribute] << (options[:message] || "contains an invalid role")
10
- end
11
- end
12
- end