# Dynamic Methods
- def self._content?
- self.my_manifest.content_model
- end
-
- def self._owner_type
- self.my_manifest.owner_type
- end
-
- def self._owner_model
- t = self.my_manifest.tree['owner']
- return nil unless t
- t.parent_model
- end
-
- def self._owner_column
- self.owner_type.to_s + '_id'
- end
-
def self.load_manifest
super
+ return nil if self._skip_load?
# Class Methods
- f = self._content?
+ ct = self.my_manifest.content_model
define_singleton_method("content?") do
- f
+ ct
end
- t = self._owner_type
+ ot = self.my_manifest.owner_type
define_singleton_method("owner_type") do
- t
+ ot
end
- m = self._owner_model
+ om = self.parent_model
define_singleton_method("owner_model") do
- m
+ om
end
- o = self._owner_column
+ oc = self.owner_type.to_s + '_id'
define_singleton_method("owner_column") do
- o
+ oc
end
# Instance Methods
- define_method("elements") do |tree_name|
- self.my_manifest.child_element_names(tree_name).map {|element_name|
- self.__send__ element_name
- }
- end
end
# Class Methods
raise ActiveRecord::Forbidden unless content.own?(operators)
content
end
+
# Instance Methods
def owner_model
self.class.owner_model ? self.__send__(self.class.owner_model.item_name) : self
end
+ # super return if my item
def visible? operators
super
- return true if owner_model.own?(operators)
+ return nil if owner_model.own?(operators)
true
end