objectreload-roles 0.1.2 → 0.1.4

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