acts_as_role 0.2.0 → 0.3.1

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