objectreload-roles 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,2 @@
1
- *.gemspec
2
1
  *.log
3
2
  pkg/
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.4
data/init.rb CHANGED
@@ -1,9 +1 @@
1
- require 'role'
2
-
3
- if Role.table_exists?
4
- require 'action_filters'
5
- ActiveRecord::Base.send(:include, ActiveRecord::Aggregations::HasRoles)
6
- ActionController::Base.send(:extend, Roles::ActionFilters)
7
- else
8
- ActiveRecord::Base.class_eval { def self.has_roles; end }
9
- end
1
+ require "rails/init"
@@ -4,11 +4,13 @@ module ActiveRecord
4
4
  def self.included(base)
5
5
  base.extend Macro
6
6
  end
7
-
7
+
8
8
  module Macro
9
9
  def has_roles(options = {})
10
+ return unless Role.table_exists?
11
+
10
12
  write_inheritable_attribute :privileges_table_name, options[:join_table] || "privileges"
11
-
13
+
12
14
  has_and_belongs_to_many :roles, :join_table => read_inheritable_attribute(:privileges_table_name), :uniq => true
13
15
 
14
16
  include InstanceMethods
@@ -16,34 +18,34 @@ module ActiveRecord
16
18
 
17
19
  Role.all.each do |role|
18
20
  define_method("#{role}?") do
19
- is?(role.to_s)
21
+ is?(role.to_s)
20
22
  end
21
23
  end
22
-
24
+
23
25
  Role.instance_eval <<-TXT
24
26
  has_and_belongs_to_many :#{class_name.downcase.pluralize}, :join_table => :#{read_inheritable_attribute(:privileges_table_name)}, :uniq => true
25
27
  TXT
26
28
  end
27
29
  end
28
-
30
+
29
31
  module ClassMethods
30
32
  def self.extended(base)
31
33
  Role.all.each do |role|
32
34
  base.named_scope role.to_s.pluralize.to_sym, :include => :roles, :conditions => ["roles.id = ?", role.id]
33
35
  end
34
36
  end
35
-
37
+
36
38
  def roles
37
39
  Role.all
38
40
  end
39
-
41
+
40
42
  def find_with_role(*role_names)
41
43
  find(:all, :include => :roles, :conditions => ["roles.name IN (?)", role_names.map(&:to_s)]).uniq
42
44
  end
43
45
  end
44
-
46
+
45
47
  module InstanceMethods
46
- # returns true
48
+ # returns true
47
49
  # - when user has administrator role
48
50
  # - when user has one of the supplied roles
49
51
  def is?(*role_names)
@@ -51,7 +53,7 @@ module ActiveRecord
51
53
  return true if roles.include?(Role[:administrator])
52
54
  Array(role_names).any? { |name| roles.include?(Role[name]) }
53
55
  end
54
-
56
+
55
57
  def is_not?(*role_names)
56
58
  not is?(*role_names)
57
59
  end
@@ -1,9 +1,3 @@
1
- require 'role'
2
-
3
- if Role.table_exists?
4
- require 'action_filters'
5
- ActiveRecord::Base.send(:include, ActiveRecord::Aggregations::HasRoles)
6
- ActionController::Base.send(:extend, Roles::ActionFilters)
7
- else
8
- ActiveRecord::Base.class_eval { def self.has_roles; end }
9
- end
1
+ require "role"
2
+ require "action_filters"
3
+ require "active_record/aggregations/has_roles"
@@ -0,0 +1,73 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{objectreload-roles}
8
+ s.version = "0.1.4"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Mariusz Pietrzyk", "Mateusz Drozdzynski"]
12
+ s.date = %q{2010-03-24}
13
+ s.email = %q{gems@objectreload.com}
14
+ s.extra_rdoc_files = [
15
+ "README"
16
+ ]
17
+ s.files = [
18
+ ".gitignore",
19
+ "MIT-LICENSE",
20
+ "README",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "init.rb",
24
+ "install.rb",
25
+ "lib/action_filters.rb",
26
+ "lib/active_record/aggregations/has_roles.rb",
27
+ "lib/role.rb",
28
+ "lib/roles.rb",
29
+ "objectreload-roles.gemspec",
30
+ "rails/init.rb",
31
+ "tasks/roles_tasks.rake",
32
+ "test/blueprints.rb",
33
+ "test/config/boot.rb",
34
+ "test/config/database.yml",
35
+ "test/config/environment.rb",
36
+ "test/config/environments/test.rb",
37
+ "test/config/routes.rb",
38
+ "test/models/user.rb",
39
+ "test/role_test.rb",
40
+ "test/schema.rb",
41
+ "test/test_helper.rb",
42
+ "test/user_test.rb",
43
+ "uninstall.rb"
44
+ ]
45
+ s.homepage = %q{http://github.com/objectreload/roles}
46
+ s.rdoc_options = ["--charset=UTF-8"]
47
+ s.require_paths = ["lib"]
48
+ s.rubygems_version = %q{1.3.6}
49
+ s.summary = %q{Simple way to create roles for users.}
50
+ s.test_files = [
51
+ "test/blueprints.rb",
52
+ "test/config/boot.rb",
53
+ "test/config/environment.rb",
54
+ "test/config/environments/test.rb",
55
+ "test/config/routes.rb",
56
+ "test/models/user.rb",
57
+ "test/role_test.rb",
58
+ "test/schema.rb",
59
+ "test/test_helper.rb",
60
+ "test/user_test.rb"
61
+ ]
62
+
63
+ if s.respond_to? :specification_version then
64
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
65
+ s.specification_version = 3
66
+
67
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
68
+ else
69
+ end
70
+ else
71
+ end
72
+ end
73
+
@@ -0,0 +1,2 @@
1
+ ActiveRecord::Base.send(:include, ActiveRecord::Aggregations::HasRoles)
2
+ ActionController::Base.send(:extend, Roles::ActionFilters)
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: objectreload-roles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 4
9
+ version: 0.1.4
5
10
  platform: ruby
6
11
  authors:
7
12
  - Mariusz Pietrzyk
@@ -10,7 +15,7 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2010-01-12 00:00:00 +00:00
18
+ date: 2010-03-24 00:00:00 +01:00
14
19
  default_executable:
15
20
  dependencies: []
16
21
 
@@ -34,6 +39,8 @@ files:
34
39
  - lib/active_record/aggregations/has_roles.rb
35
40
  - lib/role.rb
36
41
  - lib/roles.rb
42
+ - objectreload-roles.gemspec
43
+ - rails/init.rb
37
44
  - tasks/roles_tasks.rake
38
45
  - test/blueprints.rb
39
46
  - test/config/boot.rb
@@ -60,18 +67,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
60
67
  requirements:
61
68
  - - ">="
62
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
63
72
  version: "0"
64
- version:
65
73
  required_rubygems_version: !ruby/object:Gem::Requirement
66
74
  requirements:
67
75
  - - ">="
68
76
  - !ruby/object:Gem::Version
77
+ segments:
78
+ - 0
69
79
  version: "0"
70
- version:
71
80
  requirements: []
72
81
 
73
82
  rubyforge_project:
74
- rubygems_version: 1.3.5
83
+ rubygems_version: 1.3.6
75
84
  signing_key:
76
85
  specification_version: 3
77
86
  summary: Simple way to create roles for users.