bitroles 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/bitroles/version.rb +1 -1
  2. data/lib/bitroles.rb +20 -16
  3. metadata +3 -3
@@ -1,3 +1,3 @@
1
1
  module Bitroles
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/bitroles.rb CHANGED
@@ -15,9 +15,28 @@ module Bitroles
15
15
  end
16
16
  roles = args.map(&:to_s)
17
17
 
18
+ class_eval <<-EVAL, __FILE__, __LINE__
19
+ def self.roles
20
+ #{roles}
21
+ end
22
+
23
+ def roles=(roles)
24
+ roles = (roles.map(&:to_s) & #{roles}).map { |r| 2**#{roles}.index(r) }.sum
25
+ self.#{roles_mask} = roles
26
+ end
27
+
28
+ def roles
29
+ #{roles}.reject { |r| ((#{roles_mask} || 0) & 2**#{roles}.index(r)).zero? }
30
+ end
31
+
32
+ def has_role?(role)
33
+ roles.include? role.to_s
34
+ end
35
+ EVAL
36
+
18
37
  roles.each do |role|
19
38
  class_eval <<-EVAL, __FILE__, __LINE__
20
- scope :with_role, -> role { where(["#{roles_mask} & ? > 0", 2**#{roles}.index(role.to_s)]) }
39
+ scope :#{role.pluralize}, -> { where(['#{roles_mask} & ? > 0', 2**#{roles}.index('#{role}')]) }
21
40
 
22
41
  def is_#{role}?
23
42
  role? role
@@ -32,21 +51,6 @@ module Bitroles
32
51
  end
33
52
  EVAL
34
53
  end
35
-
36
- class_eval <<-EVAL, __FILE__, __LINE__
37
- def roles=(roles)
38
- roles = (roles.map(&:to_s) & #{roles}).map { |r| 2**#{roles}.index(r) }.sum
39
- self.#{roles_mask} = roles
40
- end
41
-
42
- def roles
43
- #{roles}.reject { |r| ((#{roles_mask} || 0) & 2**#{roles}.index(r)).zero? }
44
- end
45
-
46
- def has_role?(role)
47
- roles.include? role.to_s
48
- end
49
- EVAL
50
54
  end
51
55
  end
52
56
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitroles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-07 00:00:00.000000000 Z
12
+ date: 2012-05-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -65,5 +65,5 @@ rubyforge_project:
65
65
  rubygems_version: 1.8.24
66
66
  signing_key:
67
67
  specification_version: 3
68
- summary: Bitroles gem v0.1.1
68
+ summary: Bitroles gem v0.2.0
69
69
  test_files: []