Module: CanPlay

Defined in:
lib/can_play.rb,
lib/can_play/power.rb,
lib/can_play/config.rb,
lib/can_play/version.rb,
lib/can_play/resource.rb,
lib/can_play/class_method.rb,
lib/generators/can_play/install_generator.rb

Defined Under Namespace

Modules: ClassMethods, Config, Generators Classes: AbstractResource, NameImportantGroup, Power, Resource, ResourceOverride, ResourcePermission

Constant Summary collapse

VERSION =
"0.4.0"

Class Method Summary collapse

Class Method Details

.conjunct_resources(&block) ⇒ Object



30
31
32
33
34
35
# File 'lib/can_play.rb', line 30

def conjunct_resources(&block)
  resources = CanPlay.override_resources[CanPlay.override_code].p2a + CanPlay.resources
  resources = resources.uniq { |i| i.name }
  resources = resources.select(&block) if block
  resources
end

.find_by_name_and_code(name, code) ⇒ Object



25
26
27
28
# File 'lib/can_play.rb', line 25

def find_by_name_and_code(name, code)
  resource = CanPlay.override_resources[code].p2a.find { |r| r.name.to_s == name.to_s }
  resource || CanPlay.resources.find { |r| r.name.to_s == name.to_s }
end

.grouped_resources(&block) ⇒ Object



37
38
39
# File 'lib/can_play.rb', line 37

def grouped_resources(&block)
  conjunct_resources(&block).multi_group_by(:my_module_name, :group)
end

.grouped_resources_with_chinese_desc(&block) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/can_play.rb', line 45

def grouped_resources_with_chinese_desc(&block)
  grouped_resources(&block).tap do |e|
    e.each do |i, v|
      v.each do |group, resources|
        group.chinese_desc = begin
          name = I18n.t("can_play.class_name.#{group.name.to_s.singularize}", default: '')
          name = group.klass.model_name.human if name.blank?
          name
        end
        resources.each do |resource|
          resource.chinese_desc = I18n.t("can_play.authority_name.#{group.name.to_s.singularize}.#{resource.verb}", default: '').presence || I18n.t("can_play.authority_name.common.#{resource.verb}")
        end
      end
      v.rehash
    end
  end
end

.included(base) ⇒ Object



21
22
23
# File 'lib/can_play.rb', line 21

def included(base)
  base.extend ClassMethods
end

.splat_grouped_resources(&block) ⇒ Object



41
42
43
# File 'lib/can_play.rb', line 41

def splat_grouped_resources(&block)
  conjunct_resources(&block).group_by(:group)
end

.splat_grouped_resources_with_chinese_desc(&block) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/can_play.rb', line 63

def splat_grouped_resources_with_chinese_desc(&block)
  splat_grouped_resources(&block).tap do |i|
    i.each do |group, resources|
      group[:chinese_desc] = begin
        name = I18n.t("can_play.class_name.#{group.name.singularize}", default: '')
        name = group.klass.model_name.human if name.blank?
        name
      end
      resources.each do |resource|
        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]}")
      end
    end
    i.rehash
  end
end