[Logilogi-svn] SF.net SVN: logilogi:[1612] trunk
Status: Beta
Brought to you by:
wybow
|
From: <wy...@us...> - 2009-10-04 22:11:23
|
Revision: 1612
http://logilogi.svn.sourceforge.net/logilogi/?rev=1612&view=rev
Author: wybow
Date: 2009-10-04 22:10:55 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
LogLog alerts working now
Modified Paths:
--------------
trunk/app/models/logi.rb
trunk/app/models/logi_version.rb
trunk/test/unit/logi_test.rb
trunk/test/unit/logi_version_test.rb
Modified: trunk/app/models/logi.rb
===================================================================
--- trunk/app/models/logi.rb 2009-10-04 22:04:37 UTC (rev 1611)
+++ trunk/app/models/logi.rb 2009-10-04 22:10:55 UTC (rev 1612)
@@ -196,10 +196,9 @@
:user_group => options[:user_group],
:restriction => options[:restriction],
:kind => options[:kind])
- logi_version = LogiVersion.new(:logi => logi,
+ logi.logi_versions.build(:logi => logi,
:title => options[:title], :body => options[:body],
:text => options[:text], :editor => options[:creator])
- logi.logi_versions << logi_version
return logi
end
@@ -514,19 +513,27 @@
#
def log_save_to_log_log
if GlobalConfig.use_log_log
- if self.current_logi_version.nr == 1
- what = "Create"
+ if self.text_stack_changed?
+ if self.current_logi_version.nr == 1
+ change = "Create"
+ else
+ change = "Edit"
+ end
+ elsif self.tags_string_changed?
+ change = "Tagging"
else
- what = "Edit"
+ change = nil
end
- m = LogLogMessage.new(
- :kind => what,
- :channel_name => 'changes',
- :author => self.creator.name,
- :title => self.current_title,
- :text => 'Current version: ' + self.current_logi_version.nr.to_s,
- :url => GlobalConfig.site_url + self.link.to_s)
- m.save
+ if change
+ m = LogLogMessage.new(
+ :kind => change,
+ :channel_name => 'changes',
+ :author => self.creator.name,
+ :title => self.current_title,
+ :text => 'Current version: ' + self.current_logi_version.nr.to_s,
+ :url => GlobalConfig.site_url + self.link.to_s)
+ m.save
+ end
end
end
Modified: trunk/app/models/logi_version.rb
===================================================================
--- trunk/app/models/logi_version.rb 2009-10-04 22:04:37 UTC (rev 1611)
+++ trunk/app/models/logi_version.rb 2009-10-04 22:10:55 UTC (rev 1612)
@@ -220,8 +220,10 @@
new_text, :separator => DiffLCS::WordSplitArray::SEPARATOR)
new_matches = diff_hash[:remaining_new].stack_adjacent(:space => 1).translate!(
self.logi.text_stack.size + 1)
- self.logi.text_stack += DiffLCS::WordSplitArray::SEPARATOR +
- added_text
+ if !added_text.empty?
+ self.logi.text_stack += DiffLCS::WordSplitArray::SEPARATOR +
+ added_text
+ end
self.position_ranges = matched_old.insert_at_ranges!(new_matches,
diff_hash[:remaining_new])
end
Modified: trunk/test/unit/logi_test.rb
===================================================================
--- trunk/test/unit/logi_test.rb 2009-10-04 22:04:37 UTC (rev 1611)
+++ trunk/test/unit/logi_test.rb 2009-10-04 22:10:55 UTC (rev 1612)
@@ -374,16 +374,19 @@
:editor => u)
# No change
+ l_id = l.id
+ l_text_stack_size = l.text_stack.size
l_v_size = l.logi_versions.size
l.update_if_changed(l_v)
- l.reload
+ l = Logi.find(l_id)
+ assert_equal l_text_stack_size, l.text_stack.size
assert_equal l_v_size, l.logi_versions.size
# Only the link changed
- l_id = l.id
l.tag_with_link(Link.new_from_s("Babooba/Soha"))
l.update_if_changed(l_v)
l = Logi.find(l_id)
+ assert_equal l_text_stack_size, l.text_stack.size
assert_equal l_v_size, l.logi_versions.size
assert_equal [Tag.from_s('Babooba'), Tag.from_s('Soha')], l.tags
@@ -395,6 +398,27 @@
l.update_if_changed(l_v2)
l = Logi.find(l_id)
assert_equal l_v_size + 1, l.logi_versions.size
+
+ # New, small logi
+ l = Logi.new_with(:creator => u,
+ :text => "<h1>min</h1> <p>three words</p>",
+ :user_group => u.default_prefs_profile.user_group)
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck'))
+ l.save
+ l_id = l.id
+ l = Logi.find(l_id)
+ c_l_v = l.current_logi_version
+ l_text_stack_size = l.text_stack.size
+ l_v_size = l.logi_versions.size
+ l_v = LogiVersion.new(:logi => l,
+ :title => c_l_v.title,
+ :body => c_l_v.body,
+ :editor => u)
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck/Tale'))
+ l.update_if_changed(l_v)
+ l = Logi.find(l_id)
+ assert_equal l_text_stack_size, l.text_stack.size
+ assert_equal l_v_size, l.logi_versions.size
end
def test_tag_with_link
Modified: trunk/test/unit/logi_version_test.rb
===================================================================
--- trunk/test/unit/logi_version_test.rb 2009-10-04 22:04:37 UTC (rev 1611)
+++ trunk/test/unit/logi_version_test.rb 2009-10-04 22:10:55 UTC (rev 1612)
@@ -382,6 +382,20 @@
assert_equal({:matched_old => target_matched_old,
:remaining_new => target_remaining_new},
l_v.diff_new_text(new_text))
+
+ # small, new logi
+ john = users(:john_johnson)
+ l = Logi.new_with(:creator => john,
+ :text => "<h1>min</h1> <p>three words</p>",
+ :user_group => john.default_prefs_profile.user_group)
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck'))
+ l.save
+ l = Logi.find(l.id)
+ l_v = l.current_logi_version
+ old_text = l.text_stack
+ assert_equal({:matched_old => l_v.position_ranges,
+ :remaining_new => []},
+ l_v.diff_new_text(old_text))
end
def test_text_assignment
@@ -444,6 +458,21 @@
assert_equal "<h1>Bla</h1> <p>lalala Lo Jo</p>", l_v.text
end
+ def test_update_small_logi
+ john = users(:john_johnson)
+ l = Logi.new_with(:creator => john,
+ :text => "<h1>qwe</h1> <p>rty</p>",
+ :user_group => john.default_prefs_profile.user_group)
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck'))
+ l.save
+ l_id = l.id
+ l_text_stack_size = l.text_stack.size
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck/Tale'))
+ l.save
+ l = Logi.find(l_id)
+ assert_equal l_text_stack_size, l.text_stack.size
+ end
+
### Helper methods
def brbrpp(text)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|