Class: DynamicView
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- DynamicView
show all
- Defined in:
- app/models/dynamic_view.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.base_path ⇒ Object
40
41
42
|
# File 'app/models/dynamic_view.rb', line 40
def self.base_path
File.join(Rails.root, "tmp", "views")
end
|
.default_body ⇒ Object
69
70
71
|
# File 'app/models/dynamic_view.rb', line 69
def self.default_body
""
end
|
.find_by_file_name(file_name) ⇒ Object
36
37
38
|
# File 'app/models/dynamic_view.rb', line 36
def self.find_by_file_name(file_name)
with_file_name(file_name).first
end
|
.inherited(subclass) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'app/models/dynamic_view.rb', line 13
def self.inherited(subclass)
super if defined? super
ensure
subclass.class_eval do
flush_cache_on_change
uses_soft_delete
is_userstamped
is_versioned :version_foreign_key => "dynamic_view_id"
validates_presence_of :name, :format, :handler
validates_uniqueness_of :name, :scope => [:format, :handler],
:message => "Must have a unique combination of name, format and handler"
after_save :write_file_to_disk
before_destroy :remove_file_from_disk
end
end
|
.new_with_defaults(options = {}) ⇒ Object
32
33
34
|
# File 'app/models/dynamic_view.rb', line 32
def self.new_with_defaults(options={})
new({:format => "html", :handler => "erb", :body => default_body}.merge(options))
end
|
.write_all_to_disk! ⇒ Object
59
60
61
|
# File 'app/models/dynamic_view.rb', line 59
def self.write_all_to_disk!
all.each{|v| v.write_file_to_disk }
end
|
Instance Method Details
#display_name ⇒ Object
48
49
50
|
# File 'app/models/dynamic_view.rb', line 48
def display_name
self.class.display_name(file_name)
end
|
#file_name ⇒ Object
44
45
46
|
# File 'app/models/dynamic_view.rb', line 44
def file_name
"#{name}.#{format}.#{handler}"
end
|
#remove_file_from_disk ⇒ Object
63
64
65
66
67
|
# File 'app/models/dynamic_view.rb', line 63
def remove_file_from_disk
if respond_to?(:file_path) && File.exists?(file_path)
File.delete(file_path)
end
end
|
#write_file_to_disk ⇒ Object
52
53
54
55
56
57
|
# File 'app/models/dynamic_view.rb', line 52
def write_file_to_disk
if respond_to?(:file_path) && !file_path.blank?
FileUtils.mkpath(File.dirname(file_path))
open(file_path, 'w'){|f| f << body}
end
end
|