| Class | DynamicView |
| In: |
app/models/dynamic_view.rb
|
| Parent: | ActiveRecord::Base |
# File app/models/dynamic_view.rb, line 45
45: def self.base_path
46: File.join(Rails.root, "tmp", "views")
47: end
# File app/models/dynamic_view.rb, line 41
41: def self.find_by_file_name(file_name)
42: with_file_name(file_name).first
43: end
# File app/models/dynamic_view.rb, line 15
15: def self.inherited(subclass)
16: super if defined? super
17: ensure
18: subclass.class_eval do
19: flush_cache_on_change
20: is_publishable
21: uses_soft_delete
22: is_userstamped
23: is_versioned :version_foreign_key => "dynamic_view_id"
24:
25: before_validation :set_publish_on_save
26:
27: validates_presence_of :name, :format, :handler
28: validates_uniqueness_of :name, :scope => [:format, :handler],
29: :message => "Must have a unique combination of name, format and handler"
30:
31: after_save :write_file_to_disk
32: before_destroy :remove_file_from_disk
33:
34: end
35: end
# File app/models/dynamic_view.rb, line 37
37: def self.new_with_defaults(options={})
38: new({:format => "html", :handler => "erb", :body => default_body}.merge(options))
39: end
# File app/models/dynamic_view.rb, line 64
64: def self.write_all_to_disk!
65: all(:conditions => {:deleted => false}).each{|v| v.write_file_to_disk }
66: end
# File app/models/dynamic_view.rb, line 53
53: def display_name
54: self.class.display_name(file_name)
55: end
# File app/models/dynamic_view.rb, line 49
49: def file_name
50: "#{name}.#{format}.#{handler}"
51: end
# File app/models/dynamic_view.rb, line 68
68: def remove_file_from_disk
69: if respond_to?(:file_path) && File.exists?(file_path)
70: File.delete(file_path)
71: end
72: end
# File app/models/dynamic_view.rb, line 78
78: def set_publish_on_save
79: self.publish_on_save = true
80: end