bitroles 0.1.1 → 0.2.0

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.
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: []