# Dynamic ClassMethods
- def self._valid_encode_columns
- self.my_manifest.valid_encode_columns
+ def self._dev?
+ Rails.env == "development"
+ end
+
+ def self._skip_load?
+ if self._dev?
+ return true unless self.my_manifest
+ return true unless Manifest.manifest.items
+ return true unless Manifest.manifest.models
+ end
+ false
end
def self.load_manifest
- return nil unless self.my_manifest
- r = self._valid_encode_columns
+ return nil if self._skip_load?
+ vc = self.my_manifest.valid_encode_columns
define_singleton_method("valid_encode_columns") do
- r
+ vc
end
- r = self.my_manifest.child_models
+ cm = self.my_manifest.child_models
define_singleton_method("child_models") do
- r
+ cm
end
- r = self.my_manifest.child_element_names
+ cen = self.my_manifest.child_element_names
define_singleton_method("child_element_names") do
- r
+ cen
end
# Instance Methods
end
before_validation :valid_encode
def self.my_peta
+ return nil unless Manifest.manifest.items
Manifest.manifest.items[self.item_name]
end
def self.my_manifest
+ return nil unless Manifest.manifest.models
Manifest.manifest.models[self.item_name]
end
self.my_peta.extend_column? column_name
end
- def self.visible_count_options
- nil
- end
-
def self.list_where
''
end
def self.list_order
- ''
+ self.table_name + '.updated_at desc'
end
def self.list_opt
opt.merge!(self.show_opt)
item = self.find(item_id, opt)
item.boosts 'read'
- raise ActiveRecord::Forbidden unless item.visible?(operators)
+ raise ActiveRecord::Forbidden if item.visible?(operators) == false
item
end
{}
end
- def self.fold_extend_settings params
+ def self.fold_extend_settings attr
self.my_peta.boost.each do |name, manifest|
- my_settings = params[self.item_name][manifest.settings_column_name]
+ my_settings = attr[manifest.settings_column_name]
if my_settings.is_a?(Hash)
- params[self.item_name][manifest.settings_column_name] = my_settings.to_json
+ attr[manifest.settings_column_name] = my_settings.to_json
end
end
- self.child_models.each do |child_model|
- child_model.fold_extend_settings params
- end
end
#InstanceMethods
def valid_encode
self.class.valid_encode_columns.each do |a|
next if attributes[a] == nil
- raise Pettanr::BadRequest unless attributes[a].valid_encoding?
+ raise Pettanr::BadRequest unless self.attributes[a].valid_encoding?
end
end
def boosts level
self.class.my_peta.boost.each do |boost_name, boost_manifest|
- next unless boost_manifest.level == level
+ next if level == 'read' and boost_manifest.level == 'post'
self.boost boost_manifest
end
end
def boost boost_manifest
@boosters ||= {}
- @boosters[boost_manifest.name] = Locmare::Booster.new(boost_manifest, self)
+ @boosters[boost_manifest.name] ||= Locmare::Booster.new(boost_manifest, self)
+ end
+
+ def boosters
+ @boosters
end
def extend_column? column_name
end
def overwrite
+ self.class.my_peta.overwrites self
end
- def visible? operators
+ def user_visible? operators
if Manifest.manifest.magic_numbers['run_mode'] == 0
return false unless operators.guest?
else
true
end
+ def visible? operators
+ return false unless self.user_visible? operators
+ true
+ end
+
def editize?
self.respond_to? :editor
end