diff --git a/app/models/page.rb b/app/models/page.rb index c0794678..bc094c75 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -2,7 +2,7 @@ class Page < ActiveRecord::Base belongs_to :web has_many :revisions, :order => 'id' has_one :current_revision, :class_name => 'Revision', :order => 'id DESC' - + def revise(content, time, author) revisions_size = new_record? ? 0 : revisions.size if (revisions_size > 0) and content == current_revision.content @@ -13,7 +13,8 @@ class Page < ActiveRecord::Base author = Author.new(author.to_s) unless author.is_a?(Author) # Try to render content to make sure that markup engine can take it, - Revision.new(:page => self, :content => content, :author => author, :revised_at => time).force_rendering + r = Revision.new(:page => self, :content => content, :author => author, :revised_at => time) + PageRenderer.new(r).force_rendering # A user may change a page, look at it and make some more changes - several times. # Not to record every such iteration as a new revision, if the previous revision was done diff --git a/app/models/revision.rb b/app/models/revision.rb index a05e04ae..3af2384d 100644 --- a/app/models/revision.rb +++ b/app/models/revision.rb @@ -1,12 +1,4 @@ -require 'diff' class Revision < ActiveRecord::Base belongs_to :page composed_of :author, :mapping => [ %w(author name), %w(ip ip) ] - - after_create :force_rendering - - def force_rendering - PageRenderer.new(self).force_rendering - end - end diff --git a/lib/page_renderer.rb b/lib/page_renderer.rb index c9887404..63794300 100644 --- a/lib/page_renderer.rb +++ b/lib/page_renderer.rb @@ -1,3 +1,4 @@ +require 'diff' # Temporary class containing all rendering stuff from a Revision # I want to shift all rendering loguc to the controller eventually