OSDN Git Service

fic picture publishing
[pettanr/pettanr.git] / lib / peta / system_resource.rb
1 module Peta
2   class SystemResource < Item
3     self.abstract_class = true
4     
5     # Dynamic ClassMethods
6     
7     # ClassMethods
8     
9     def self.enable_list
10       self.find(:all).delete_if {|system_resource|
11         system_resource.enable? == false
12       }
13     end
14     
15     def self.edit system_resource_id, operators
16       system_resource = self.find system_resource_id, self.show_opt
17       raise ActiveRecord::Forbidden unless system_resource.own?(operators)
18       system_resource
19     end
20     
21     def my_engine_resource
22       Manifest.manifest.system_resources.engine_resources[self.table_name]
23     end
24     
25     def enable?
26       return false unless er = self.my_engine_resource
27       er.resource_items.include? self.classname
28     end
29     
30     def my_engine_name
31       self.my_engine_resource.resource_items[self.classname]
32     end
33     
34     def my_engine
35       Object.const_get self.classname
36     end
37     
38     def own? operators
39       operators.admin?
40     end
41     
42   end
43 end