can_play 0.1.6 → 0.1.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3fbbcdcfbceff8da3ea0f8d1a8484d73bc814894
4
- data.tar.gz: 04b2983c9fc11afab1c095f471999c42bf2b07df
3
+ metadata.gz: 8db571961dec8a0961cbf0dd67df32594d359bea
4
+ data.tar.gz: ac36569098a265b085976a90ba0cc6e94bd87807
5
5
  SHA512:
6
- metadata.gz: d1b74feb74f1f6241033a43b4389b3cfcf77dcb83b25b2b4a68677ecc684a7be4de3d9ad7a5ed27c2857e7e85f753f54f977e8ca92386e81ca171fc50a7ff19e
7
- data.tar.gz: 3d84f0d8b560f66e7272017bed18157dfba01d8d212d1f14c54f6ac4a3f927c84a882b2657f1c93055c2f65b307dc6ff054bcf236e78e57304447054fdbb72bf
6
+ metadata.gz: 0b16d85c6c569228fe69503ee4136b9ccc4b3cb16825080465290289086a2ce8b21e5079b2fa5a21652dc5f3b93737e219e0d27af9da698e5d52e6545ec92984
7
+ data.tar.gz: e0ffd71bda7a7caa0644ce655cd079692af1f5d2b6325359e7bb945123d0e3c50ab4a17e1d212e7e4b3db5a8e2be926a2331daecd3cec495428908785d94a3a1
@@ -7,7 +7,7 @@ class Ability
7
7
  CanPlay::Config.role_class_name.constantize.all.each do |role|
8
8
  next unless user.role?(role.name)
9
9
  role.send(CanPlay::Config.role_resources_middle_class_name.underscore.pluralize).each do |role_resource|
10
- resource = CanPlay::Config.resource_class_name.constantize.find_by_name(role_resource.resource_name)
10
+ resource = CanPlay.find_by_name(role_resource.resource_name)
11
11
  next unless resource
12
12
  if resource[:type] == 'collection'
13
13
  if resource[:behavior]
@@ -1,3 +1,3 @@
1
1
  module CanPlay
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
data/lib/can_play.rb CHANGED
@@ -7,27 +7,60 @@ require "can_play/ability"
7
7
  require "can_play/controller"
8
8
 
9
9
  module CanPlay
10
+ mattr_accessor :resources
11
+ @@resources = []
12
+
13
+ class << self
14
+ def included(base)
15
+ base.class_eval do
16
+ @groups = []
17
+ @current_group = nil
18
+ end
19
+ base.extend ClassMethods
20
+ end
10
21
 
11
- extend ActiveSupport::Concern
22
+ def find_by_name(name)
23
+ CanPlay.resources.find { |r| r[:name] == name }
24
+ end
25
+
26
+ def grouped_resources
27
+ @grouped_resources ||= CanPlay.resources.group_by { |i| i[:group] }
28
+ end
12
29
 
13
- included do
14
- @groups = []
15
- @current_group = nil
16
- @resources = []
30
+ def my_resources
31
+ CanPlay.resources
32
+ end
33
+
34
+ def grouped_resources_with_chinese_desc
35
+ grouped_resources.tap do |i|
36
+ i.each do |group, resources|
37
+ group[:chinese_desc] = begin
38
+ name = I18n.t("can_play.class_name.#{group[:name].singularize}", default: '')
39
+ name = group[:klass].model_name.human if name.blank?
40
+ name
41
+ end
42
+ resources.each do |resource|
43
+ resource[:chinese_desc] = I18n.t("can_play.authority_name.#{group[:name].singularize}.#{resource[:verb]}", default: '').presence || I18n.t("can_play.authority_name.common.#{resource[:verb]}")
44
+ end
45
+ end
46
+ i.rehash
47
+ end
48
+ end
17
49
  end
18
50
 
19
51
  module Config
20
- mattr_accessor :user_class_name, :role_class_name, :role_resources_middle_class_name, :resource_class_name
52
+ mattr_accessor :user_class_name, :role_class_name, :role_resources_middle_class_name
21
53
  @@user_class_name = 'User'
22
54
  @@role_class_name = 'Role'
23
55
  @@role_resources_middle_class_name = 'RoleResource'
24
- @@resource_class_name = 'Resource'
25
56
 
26
57
  def self.setup
27
58
  yield self
28
59
  end
29
60
  end
30
61
 
62
+
63
+
31
64
  module ClassMethods
32
65
 
33
66
  # 为每个 resource 添加一个 group, 方便管理
@@ -110,36 +143,8 @@ module CanPlay
110
143
  type: type,
111
144
  behavior: behavior
112
145
  }.with_indifferent_access
113
- @resources.keep_if { |i| i[:name] != name }
114
- @resources << resource
115
- end
116
-
117
- def find_by_name(name)
118
- @resources.find { |r| r[:name] == name }
119
- end
120
-
121
- def grouped_resources
122
- @grouped_resources ||= @resources.group_by { |i| i[:group] }
123
- end
124
-
125
- def my_resources
126
- @resources
127
- end
128
-
129
- def grouped_resources_with_chinese_desc
130
- grouped_resources.tap do |i|
131
- i.each do |group, resources|
132
- group[:chinese_desc] = begin
133
- name = I18n.t("can_play.class_name.#{group[:name].singularize}", default: '')
134
- name = group[:klass].model_name.human if name.blank?
135
- name
136
- end
137
- resources.each do |resource|
138
- resource[:chinese_desc] = I18n.t("can_play.authority_name.#{group[:name].singularize}.#{resource[:verb]}", default: '').presence || I18n.t("can_play.authority_name.common.#{resource[:verb]}")
139
- end
140
- end
141
- i.rehash
142
- end
146
+ CanPlay.resources.keep_if { |i| i[:name] != name }
147
+ CanPlay.resources << resource
143
148
  end
144
149
  end
145
150
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: can_play
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - happyming9527
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  version: '0'
124
124
  requirements: []
125
125
  rubyforge_project:
126
- rubygems_version: 2.4.6
126
+ rubygems_version: 2.4.8
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: a permission system.