can_play 0.2.6 → 0.2.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: bffbc9843de69ebd8720ee793bd41aaa11891134
4
- data.tar.gz: c841a03382c818458f1f6b2e0b52daf404b11527
3
+ metadata.gz: 9fd62b816fcaf89f3a9b08af34ffb0319f162901
4
+ data.tar.gz: ee11cda4ba4c8cbc4885acff43ac1b000a846eaa
5
5
  SHA512:
6
- metadata.gz: 05b2ff862ad23c979c357d940aea2bdb7d38dca8d8c67783c78273008c9f1307cb1c0bc4c2ef2403448c34a6aa4a99facbeaa350108f133b87e7233840a9546e
7
- data.tar.gz: afa43502a9fde559dfeff5da14a783a0857bb2c9451f520d3c28256a63aace729f17f4e5ed7866ea4c0a31e3ae91483b051703e05b624c39715bb3fa734697cf
6
+ metadata.gz: 740264f9348de73902ad021f27e4d347d849cc7102c1aceb7442c3c25347e9233c369a539e748073cec06c348b225cdca0358c806b992c6407837340ccfef744
7
+ data.tar.gz: a4e2f01374e35124bf2f61675e9f28bd49da9df9f7b169ab80e5566fafce3bb87573092c88bf9eb82ec561d2fc3a887d7a266dc8d84de001697a8bc7f149f155
@@ -1,3 +1,3 @@
1
1
  module CanPlay
2
- VERSION = "0.2.6"
2
+ VERSION = "0.2.7"
3
3
  end
data/lib/can_play.rb CHANGED
@@ -25,23 +25,23 @@ module CanPlay
25
25
  resource || CanPlay.resources.find { |r| r.name.to_s == name.to_s }
26
26
  end
27
27
 
28
- def conjunct_resources(block=nil)
28
+ def conjunct_resources(&block)
29
29
  resources = CanPlay.override_resources[CanPlay.override_code].p2a + CanPlay.resources
30
30
  resources = resources.uniq { |i| i.name }
31
31
  resources = resources.select(&block) if block
32
32
  resources
33
33
  end
34
34
 
35
- def grouped_resources(block=nil)
35
+ def grouped_resources(&block)
36
36
  conjunct_resources(block).multi_group_by(:module_name, :group)
37
37
  end
38
38
 
39
- def splat_grouped_resources(block=nil)
40
- conjunct_resources(block).multi_group_by(:group)
39
+ def splat_grouped_resources(&block)
40
+ conjunct_resources(&block).multi_group_by(:group)
41
41
  end
42
42
 
43
43
  def grouped_resources_with_chinese_desc(&block)
44
- grouped_resources(block).tap do |e|
44
+ grouped_resources(&block).tap do |e|
45
45
  e.each do |i, v|
46
46
  v.each do |group, resources|
47
47
  group.chinese_desc = begin
@@ -59,7 +59,7 @@ module CanPlay
59
59
  end
60
60
 
61
61
  def splat_grouped_resources_with_chinese_desc(&block)
62
- splat_grouped_resources(block).tap do |i|
62
+ splat_grouped_resources(&block).tap do |i|
63
63
  i.each do |group, resources|
64
64
  group[:chinese_desc] = begin
65
65
  name = I18n.t("can_play.class_name.#{group.name.singularize}", default: '')
@@ -97,16 +97,19 @@ module CanPlay
97
97
  end
98
98
 
99
99
  # 为每个 resource 添加一个 group, 方便管理
100
- def group(opts, &block)
101
- if opts.is_a?(Hash)
100
+ def group(*args, &block)
101
+ opts = args.extract_options!.with_indifferent_access
102
+ clazz = args.first
103
+ if clazz.is_a?(Module)
104
+ name = clazz.try(:table_name).presence || clazz.to_s.underscore.gsub('/', '_').pluralize
105
+ group = NameImportantOpenStruct.new(name: name, klass: clazz)
106
+ elsif clazz.blank? && opts.key?(:name)
102
107
  opts = opts.with_indifferent_access
103
108
  group = NameImportantOpenStruct.new(name: opts.delete(:name).to_s, klass: opts.delete(:klass))
104
- elsif opts.is_a?(Module)
105
- name = opts.try(:table_name).presence || opts.to_s.underscore.gsub('/', '_').pluralize
106
- group = NameImportantOpenStruct.new(name: name, klass: opts)
107
109
  else
108
- # do nothing
110
+ raise "group klass need set"
109
111
  end
112
+ group.opts = OpenStruct.new opts
110
113
  self.groups << group
111
114
  self.groups = groups.uniq(&:name)
112
115
  self.current_group = group
@@ -119,8 +122,9 @@ module CanPlay
119
122
  CanPlay::Power.power(name||current_group.name, &block)
120
123
  end
121
124
 
122
- def collection(verb_or_verbs, opts={}.with_indifferent_access, &block)
125
+ def collection(verb_or_verbs, opts={}, &block)
123
126
  raise "Need define group first" if current_group.nil?
127
+ opts = OpenStruct.new opts
124
128
  group = current_group
125
129
  behavior = nil
126
130
  if block
@@ -141,8 +145,9 @@ module CanPlay
141
145
  end
142
146
  end
143
147
 
144
- def member(verb_or_verbs, opts={}.with_indifferent_access, &block)
148
+ def member(verb_or_verbs, opts={}, &block)
145
149
  raise "Need define group first" if current_group.nil?
150
+ opts = OpenStruct.new opts
146
151
  group = current_group
147
152
  behavior = nil
148
153
  if block
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: can_play
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - happyming9527
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-09-17 00:00:00.000000000 Z
11
+ date: 2015-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  version: '0'
138
138
  requirements: []
139
139
  rubyforge_project:
140
- rubygems_version: 2.4.8
140
+ rubygems_version: 2.4.6
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: a permission system.