Changeset 191
- Timestamp:
- 12/30/05 03:46:37 (3 years ago)
- Files:
-
- wiki_engine/branches/JGA-entry_version_back_to_version/app/controllers/versions_controller.rb (modified) (1 diff)
- wiki_engine/branches/JGA-entry_version_back_to_version/app/models/author.rb (modified) (1 diff)
- wiki_engine/branches/JGA-entry_version_back_to_version/app/models/book.rb (modified) (2 diffs)
- wiki_engine/branches/JGA-entry_version_back_to_version/app/models/page.rb (modified) (3 diffs)
- wiki_engine/branches/JGA-entry_version_back_to_version/app/models/version.rb (modified) (1 diff)
- wiki_engine/branches/JGA-entry_version_back_to_version/app/views/books/feed.rxml (modified) (1 diff)
- wiki_engine/branches/JGA-entry_version_back_to_version/app/views/pages/show.rhtml (modified) (2 diffs)
- wiki_engine/branches/JGA-entry_version_back_to_version/db/migrate/5_page_updated_at.rb (modified) (1 diff)
- wiki_engine/branches/JGA-entry_version_back_to_version/lib/tasks/instiki_importer.rake (modified) (1 diff)
- wiki_engine/branches/JGA-entry_version_back_to_version/test/functional/versions_controller_test.rb (modified) (1 diff)
- wiki_engine/branches/JGA-entry_version_back_to_version/test/unit/book_test.rb (modified) (1 diff)
- wiki_engine/branches/JGA-entry_version_back_to_version/test/unit/version_test.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
wiki_engine/branches/JGA-entry_version_back_to_version/app/controllers/versions_controller.rb
r98 r191 6 6 def show 7 7 @page = @book.pages.find_by_title(params[:page_title]) 8 @version = @page. entry_versions[params[:version_number].to_i - 1]8 @version = @page.versions[params[:version_number].to_i - 1] 9 9 end 10 10 wiki_engine/branches/JGA-entry_version_back_to_version/app/models/author.rb
r98 r191 1 1 class Author < ActiveRecord::Base 2 2 belongs_to :book 3 has_many : entry_versions3 has_many :versions 4 4 5 5 def to_param wiki_engine/branches/JGA-entry_version_back_to_version/app/models/book.rb
r98 r191 2 2 has_many :authors, :dependent => true 3 3 has_many :pages, :dependent => true 4 has_many : entry_versions, :order => "entry_versions.created_at DESC"4 has_many :versions, :order => "versions.created_at DESC" 5 5 6 6 after_create :create_home_page … … 30 30 def create_home_page 31 31 page = pages.create(:title => "Home Page") 32 version = page. entry_versions.build(:body => "Welcome to i2!")32 version = page.versions.build(:body => "Welcome to i2!") 33 33 author = version.create_author(:name => "i2", :ip => "127.0.0.1", :book => self) 34 34 version.save! wiki_engine/branches/JGA-entry_version_back_to_version/app/models/page.rb
r189 r191 2 2 belongs_to :book 3 3 4 has_many : entry_versions, :order => "created_at", :dependent => true4 has_many :versions, :order => "created_at", :dependent => true 5 5 has_one :current_version, :class_name => "Version", :order => "created_at DESC" 6 6 … … 10 10 11 11 def find_or_build_version(number = nil) 12 number ? entry_versions[number.to_i - 1] : entry_versions.build(:body => body)12 number ? versions[number.to_i - 1] : versions.build(:body => body) 13 13 end 14 14 … … 36 36 version.body = options[:body] 37 37 else 38 version = self. entry_versions.build(options)38 version = self.versions.build(options) 39 39 version.author = author 40 40 end wiki_engine/branches/JGA-entry_version_back_to_version/app/models/version.rb
r189 r191 34 34 35 35 def versions 36 page. entry_versions36 page.versions 37 37 end 38 38 wiki_engine/branches/JGA-entry_version_back_to_version/app/views/books/feed.rxml
r98 r191 8 8 xml.ttl "40" 9 9 10 @book. entry_versions.find(:all, :limit => 25, :include => :page).each do |version|10 @book.versions.find(:all, :limit => 25, :include => :page).each do |version| 11 11 xml.item do 12 12 xml.title(version.page.title) wiki_engine/branches/JGA-entry_version_back_to_version/app/views/pages/show.rhtml
r98 r191 4 4 5 5 <div class="byline"> 6 <%= @page. entry_versions.size == 1 ? "Created" : "Updated" %>6 <%= @page.versions.size == 1 ? "Created" : "Updated" %> 7 7 on <%= @page.current_version.created_at.to_s(:long) %> 8 8 by <%= link_to_author(@page.current_version.author) %> … … 12 12 <%= link_to("Edit", :controller => "versions", :action => "new") %> 13 13 14 <% if @page. entry_versions.length > 1 %>14 <% if @page.versions.length > 1 %> 15 15 | 16 16 <%= link_to("Back in time", 17 version_url(:page_title => @page.title, :version_number => @page. entry_versions.size - 1),17 version_url(:page_title => @page.title, :version_number => @page.versions.size - 1), 18 18 :class => 'navlink') %> 19 <small>(<%= @page. entry_versions.size - 1 %> older versions)</small>19 <small>(<%= @page.versions.size - 1 %> older versions)</small> 20 20 <% end %> 21 21 </div> wiki_engine/branches/JGA-entry_version_back_to_version/db/migrate/5_page_updated_at.rb
r98 r191 2 2 def self.up 3 3 add_column :pages, :updated_at, :datetime 4 Page.find(:all).each { |page| page.updated_at = page. entry_versions.first.updated_at }4 Page.find(:all).each { |page| page.updated_at = page.versions.first.updated_at } 5 5 end 6 6 wiki_engine/branches/JGA-entry_version_back_to_version/lib/tasks/instiki_importer.rake
r98 r191 18 18 Book.transaction do 19 19 page = book.find_or_create_page(:title => title) 20 version = page. entry_versions.build(:body => convert_wiki_words(content))20 version = page.versions.build(:body => convert_wiki_words(content)) 21 21 version.author = import_author 22 22 version.save wiki_engine/branches/JGA-entry_version_back_to_version/test/functional/versions_controller_test.rb
r98 r191 25 25 assert_response :redirect 26 26 assert_not_nil page = books(:stories).pages.detect { |page| page.title == "A brave new world" } 27 assert_equal "So wonderful!", page. entry_versions.first.body28 assert_equal authors(:david), page. entry_versions.first.author27 assert_equal "So wonderful!", page.versions.first.body 28 assert_equal authors(:david), page.versions.first.author 29 29 end 30 30 wiki_engine/branches/JGA-entry_version_back_to_version/test/unit/book_test.rb
r98 r191 8 8 assert_equal 1, book.pages.size 9 9 assert book.reload.existing_page_titles.include?("Home Page") 10 assert_equal "Welcome to i2!", book.pages.first. entry_versions.first.body11 assert_equal "i2", book.pages.first. entry_versions.first.author.name10 assert_equal "Welcome to i2!", book.pages.first.versions.first.body 11 assert_equal "i2", book.pages.first.versions.first.author.name 12 12 end 13 13 end wiki_engine/branches/JGA-entry_version_back_to_version/test/unit/version_test.rb
r98 r191 9 9 10 10 def test_belonging_to_book 11 version = pages(:pretty_cats). entry_versions.create(:body => "Lovely voices!")11 version = pages(:pretty_cats).versions.create(:body => "Lovely voices!") 12 12 assert_equal books(:stories), version.book 13 13 end … … 15 15 def test_updating_of_page 16 16 updated_at_before = pages(:pretty_cats).updated_at 17 pages(:pretty_cats). entry_versions.create(:body => "Lovely voices!")17 pages(:pretty_cats).versions.create(:body => "Lovely voices!") 18 18 assert updated_at_before < pages(:pretty_cats, :refresh).updated_at 19 19 end
