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

Methods

Public Class methods

[Source]

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

[Source]

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

[Source]

    # File app/models/dynamic_view.rb, line 39
39:   def self.find_by_file_name(file_name)
40:     with_file_name(file_name).first
41:   end

[Source]

    # File app/models/dynamic_view.rb, line 16
16:   def self.inherited(subclass)
17:     super if defined? super
18:   ensure
19:     subclass.class_eval do
20:       flush_cache_on_change
21:       is_publishable
22:       uses_soft_delete
23:       is_userstamped
24:       is_versioned :version_foreign_key => "dynamic_view_id"
25: 
26:       before_validation :set_publish_on_save
27: 
28:       validates_presence_of :name, :format, :handler
29:       validates_uniqueness_of :name, :scope => [:format, :handler],
30:         :message => "Must have a unique combination of name, format and handler"
31:                   
32:     end 
33:   end

[Source]

    # File app/models/dynamic_view.rb, line 35
35:   def self.new_with_defaults(options={})
36:     new({:format => "html", :handler => "erb", :body => default_body}.merge(options))    
37:   end

[Source]

    # File app/models/dynamic_view.rb, line 62
62:   def self.write_all_to_disk!
63:     all(:conditions => {:deleted => false}).each{|v| v.write_file_to_disk }
64:   end

Public Instance methods

[Source]

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

[Source]

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

[Source]

    # File app/models/dynamic_view.rb, line 66
66:   def remove_file_from_disk
67:     if respond_to?(:file_path) && File.exists?(file_path)
68:       File.delete(file_path)
69:     end
70:   end

[Source]

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

[Source]

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

[Validate]