Class DynamicView
In: app/models/dynamic_view.rb
Parent: ActiveRecord::Base

Methods

Public Class methods

[Source]

    # File app/models/dynamic_view.rb, line 45
45:   def self.base_path
46:     File.join(Rails.root, "tmp", "views")
47:   end

[Source]

    # File app/models/dynamic_view.rb, line 74
74:   def self.default_body
75:     ""
76:   end

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

Public Instance methods

[Source]

    # File app/models/dynamic_view.rb, line 53
53:   def display_name
54:     self.class.display_name(file_name)
55:   end

[Source]

    # File app/models/dynamic_view.rb, line 49
49:   def file_name
50:     "#{name}.#{format}.#{handler}"
51:   end

[Source]

    # 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

[Source]

    # File app/models/dynamic_view.rb, line 78
78:   def set_publish_on_save
79:     self.publish_on_save = true
80:   end

[Source]

    # File app/models/dynamic_view.rb, line 57
57:   def write_file_to_disk
58:     if respond_to?(:file_path) && !file_path.blank?
59:       FileUtils.mkpath(File.dirname(file_path))
60:       open(file_path, 'w'){|f| f << body}
61:     end
62:   end

[Validate]