[Logilogi-svn] SF.net SVN: logilogi:[1614] trunk
Status: Beta
Brought to you by:
wybow
|
From: <wy...@us...> - 2009-10-19 19:58:18
|
Revision: 1614
http://logilogi.svn.sourceforge.net/logilogi/?rev=1614&view=rev
Author: wybow
Date: 2009-10-19 19:58:08 +0000 (Mon, 19 Oct 2009)
Log Message:
-----------
Improved alert-system & updated for Rails 2.3.4
Modified Paths:
--------------
trunk/app/models/commenting.rb
trunk/app/models/external_link.rb
trunk/app/models/link.rb
trunk/app/models/logi.rb
trunk/app/models/peer_group.rb
trunk/app/models/rating.rb
trunk/app/models/remark.rb
trunk/app/models/user.rb
trunk/app/models/vote.rb
trunk/app/views/logis/_commenting_logis.html.erb
trunk/app/views/logis/_tag_list.html.erb
trunk/config/environment.rb
trunk/db/schema.rb
trunk/lib/modules/cache_methods_module.rb
trunk/test/fixtures/peer_groups.yml
trunk/test/fixtures/users.yml
trunk/test/unit/user_test.rb
Modified: trunk/app/models/commenting.rb
===================================================================
--- trunk/app/models/commenting.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/commenting.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -20,6 +20,7 @@
### Filters
+ after_create :log_create_to_log_log
after_destroy :destroy_matching_link
### Validations
@@ -30,6 +31,33 @@
### Filter-functions
+ # Logs the link's creation to LogLog
+ #
+ def log_create_to_log_log
+ if GlobalConfig.use_log_log
+ # Has reply
+ m = LogLogMessage.new(
+ :kind => "Reply",
+ :channel_names => ['all',
+ 'for_' + self.from_logi.creator.unix_name].join(','),
+ :title => 'Received:' + self.to_logi.current_title,
+ :author => self.user.name,
+ :text => self.to_logi.current_snippet,
+ :url => GlobalConfig.site_url + self.to_logi.link.to_s)
+ m.save
+ # In reply to
+ m = LogLogMessage.new(
+ :kind => "Reply",
+ :channel_name =>
+ 'for_' + self.to_logi.creator.unix_name,
+ :title => 'To:' + self.from_logi.current_title,
+ :author => self.user.name,
+ :text => self.from_logi.current_snippet,
+ :url => GlobalConfig.site_url + self.from_logi.link.to_s)
+ m.save
+ end
+ end
+
# Destroys links from and to the same logi
#
def destroy_matching_link
Modified: trunk/app/models/external_link.rb
===================================================================
--- trunk/app/models/external_link.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/external_link.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -26,6 +26,7 @@
# after_initialize
before_validation_on_create :set_text_if_nil
before_validation :stringify_position_ranges
+ after_create :log_create_to_log_log
### Validations
@@ -73,6 +74,22 @@
end
end
+ # Logs the link's creation to LogLog
+ #
+ def log_create_to_log_log
+ if GlobalConfig.use_log_log
+ m = LogLogMessage.new(
+ :kind => "External Link",
+ :channel_names => ['all',
+ 'for_' + self.logi.creator.unix_name].join(','),
+ :title => 'In:' + self.logi.current_title,
+ :author => self.user.name,
+ :text => self.text + '\n' + self.url,
+ :url => GlobalConfig.site_url + self.logi.link.to_s)
+ m.save
+ end
+ end
+
### Validation-functions
protected
Modified: trunk/app/models/link.rb
===================================================================
--- trunk/app/models/link.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/link.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -98,6 +98,7 @@
before_validation :stringify_position_ranges,
:tags_strings_before_validation # see TagsStringsModule
after_destroy :destroy_matching_commenting
+ after_create :log_create_to_log_log
###### Cached Methods
@@ -913,6 +914,47 @@
end
end
+ # Logs the link's creation to LogLog
+ #
+ def log_create_to_log_log
+ if GlobalConfig.use_log_log
+ # Outgoing
+ m = LogLogMessage.new(
+ :kind => "Link",
+ :channel_names => ['all',
+ 'for_' + self.from_logi.creator.unix_name].join(','),
+ :title => 'Outgoing:' + self.from_logi.current_title,
+ :author => self.user.name,
+ :text => GlobalConfig.site_url + self.to_s,
+ :url => GlobalConfig.site_url + self.from_logi.link.to_s)
+ m.save
+ # Incoming
+ if self.to_logi
+ m = LogLogMessage.new(
+ :kind => "Link",
+ :channel_name =>
+ 'for_' + self.to_logi.creator.unix_name,
+ :title => 'Incoming:' + self.to_logi.current_title,
+ :author => self.user.name,
+ :text => GlobalConfig.site_url + self.to_s,
+ :url => GlobalConfig.site_url + self.to_logi.link.to_s)
+ m.save
+ else
+ self.matching_logis.each do |logi|
+ m = LogLogMessage.new(
+ :kind => "Link",
+ :channel_name =>
+ 'for_' + logi.creator.unix_name,
+ :title => 'Incoming:' + logi.current_title,
+ :author => self.user.name,
+ :text => GlobalConfig.site_url + self.to_s,
+ :url => GlobalConfig.site_url + logi.link.to_s)
+ m.save
+ end
+ end
+ end
+ end
+
###### Validation-functions
public
Modified: trunk/app/models/logi.rb
===================================================================
--- trunk/app/models/logi.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/logi.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -498,7 +498,7 @@
if GlobalConfig.use_log_log
m = LogLogMessage.new(
:kind => "Logi",
- :channel_names => ['logis',
+ :channel_names => ['all','logis',
'for_' + self.creator.unix_name,
'by_' + self.creator.unix_name].join(','),
:title => self.current_title,
Modified: trunk/app/models/peer_group.rb
===================================================================
--- trunk/app/models/peer_group.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/peer_group.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -35,6 +35,7 @@
### Inclusions
include HomePageModule # Creating and destroying homepages
+ include UnixNameModule # Unix-name for LogLog channels
### Relationships
@@ -52,7 +53,8 @@
### Filters
- before_validation_on_create :set_home_page_tag # see HomePageModule
+ before_validation_on_create :set_home_page_tag, :set_unix_name
+ # see HomePageModule and UnixNameModule
after_create :create_home_page
before_destroy :reset_prefs_profiles
after_destroy :destroy_memberships, :destroy_home_pages
Modified: trunk/app/models/rating.rb
===================================================================
--- trunk/app/models/rating.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/rating.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -39,6 +39,7 @@
### Filters
+ after_save :log_positive_to_log_log
after_destroy :revoke_voting_power
### Validations
@@ -154,6 +155,25 @@
protected
+ # Logs positively voted to peergroup channel on log.logilogi.org
+ #
+ def log_positive_to_log_log
+ if GlobalConfig.use_log_log
+ if self.score > 0 and (self.new_record? or self.score_was < 0)
+ m = LogLogMessage.new(
+ :kind => "Logi",
+ :channel_name =>
+ 'for_' + self.peer_group.unix_name,
+ :title => self.logi.current_title,
+ :author => self.logi.creator.name,
+ :text => self.logi.current_snippet,
+ :url => GlobalConfig.site_url + self.logi.link.to_s,
+ :unique_id => self.logi.perma_id)
+ m.save
+ end
+ end
+ end
+
# Revokes the voting-power the user received via this rating.
#
def revoke_voting_power
Modified: trunk/app/models/remark.rb
===================================================================
--- trunk/app/models/remark.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/remark.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -76,8 +76,8 @@
if GlobalConfig.use_log_log
m = LogLogMessage.new(
:kind => "Remark",
- :channel_name =>
- 'for_' + self.logi.creator.unix_name,
+ :channel_names => ['all',
+ 'for_' + self.logi.creator.unix_name].join(','),
:author => self.user.name,
:title => 'On: ' + self.logi.current_title,
:text => self.message,
Modified: trunk/app/models/user.rb
===================================================================
--- trunk/app/models/user.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/user.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -17,6 +17,7 @@
### Inclusions
include HomePageModule # Creating and destroying homepages
+ include UnixNameModule # Unix-name for LogLog channels
### Acts as
@@ -51,7 +52,8 @@
### Filters
- before_validation_on_create :set_home_page_tag # see HomePageModule
+ before_validation_on_create :set_home_page_tag, :set_unix_name
+ # see HomePageModule and UnixNameModule
validate :name_not_reserved, :normalize_openid_identifier
before_create :assert_persistence_token
after_create :create_personal_user_group, :create_prefs_profiles, :create_home_page
@@ -172,14 +174,10 @@
return self.home_page_link_for(Tag.user)
end
- # Returns the name of the user, but reduced and all lowercase.
- #
- def unix_name
- self.name.downcase.gsub(/[\ .-]/,'_').gsub(/[^a-z_]/,'')
- end
-
# Sending out e-mail
+ # Delivers instructions for password reset
+ #
def deliver_password_reset_instructions!
reset_perishable_token!
Notifier.deliver_password_reset_instructions(self)
Modified: trunk/app/models/vote.rb
===================================================================
--- trunk/app/models/vote.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/vote.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -57,8 +57,8 @@
if self.score > 0
m = LogLogMessage.new(
:kind => "Vote",
- :channel_name =>
- 'for_' + self.rating.logi.creator.unix_name,
+ :channel_names => ['all',
+ 'for_' + self.rating.logi.creator.unix_name].join(','),
:author => self.user.name,
:title => 'For: ' + self.rating.logi.current_title,
:text => 'Score: ' + self.score.to_s +
Modified: trunk/app/views/logis/_commenting_logis.html.erb
===================================================================
--- trunk/app/views/logis/_commenting_logis.html.erb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/views/logis/_commenting_logis.html.erb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -1,5 +1,5 @@
<% render :layout => 'application/panel_with_header',
- :locals => {:title => _("Replying Logis"), :id => "commenting"} do %>
+ :locals => {:title => _("Received replying Logis"), :id => "commenting"} do %>
<div class="mirrored_notice_cloud"><%= _('Want to give a more in-depth response ?') %></div>
<div class="description">
<p><%= _('%{nr} Logis are replying') % {:nr => logis.size} %></p>
Modified: trunk/app/views/logis/_tag_list.html.erb
===================================================================
--- trunk/app/views/logis/_tag_list.html.erb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/views/logis/_tag_list.html.erb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -15,7 +15,7 @@
:class => 'tag_list', :autocomplete => 'off' %>
<%= content_tag('div', '', :class => 'auto_complete', :id => 'tag_auto_complete') %>
<%= auto_complete_field (name + '_input'),
- :url => formatted_used_tags_path(:js), :method => :get,
+ :url => used_tags_path(:format => :js), :method => :get,
:param_name => 'search', :update => 'tag_auto_complete',
:min_chars => 1 %>
<%= button_to_function 'Add tag',
Modified: trunk/config/environment.rb
===================================================================
--- trunk/config/environment.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/config/environment.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -4,7 +4,7 @@
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'
-RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION
+RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
Modified: trunk/db/schema.rb
===================================================================
--- trunk/db/schema.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/db/schema.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -9,7 +9,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20090926215800) do
+ActiveRecord::Schema.define(:version => 20091005232423) do
create_table "acts_as_xapian_jobs", :force => true do |t|
t.string "model", :null => false
@@ -182,6 +182,7 @@
t.datetime "created_at", :null => false
t.integer "memberships_count", :default => 0
t.string "home_page_tag_string", :null => false
+ t.string "unix_name", :null => false
end
add_index "peer_groups", ["name"], :name => "index_peer_groups_on_name", :unique => true
@@ -262,6 +263,7 @@
t.string "perishable_token", :default => "", :null => false
t.datetime "last_login_at"
t.string "single_access_token", :null => false
+ t.string "unix_name", :null => false
end
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
Modified: trunk/lib/modules/cache_methods_module.rb
===================================================================
--- trunk/lib/modules/cache_methods_module.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/lib/modules/cache_methods_module.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -19,13 +19,11 @@
# Initializes or resets the cache, call before using.
#
def reset_methods_cache(keys = [])
+ if @cache_hash.nil?
+ @cache_hash = {}
+ end
if keys.empty?
- if @cache_hash.nil?
- @cache_hash = {}
- return
- else
- keys = @cache_hash.keys
- end
+ keys = @cache_hash.keys
end
keys.each {|k|
@cache_hash.delete(k)
Modified: trunk/test/fixtures/peer_groups.yml
===================================================================
--- trunk/test/fixtures/peer_groups.yml 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/test/fixtures/peer_groups.yml 2009-10-19 19:58:08 UTC (rev 1614)
@@ -1,4 +1,5 @@
biologers:
name: 'Biologers'
+ unix_name: 'biologers'
home_page_tag_string: 'Biologers'
memberships_count: 2
Modified: trunk/test/fixtures/users.yml
===================================================================
--- trunk/test/fixtures/users.yml 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/test/fixtures/users.yml 2009-10-19 19:58:08 UTC (rev 1614)
@@ -3,6 +3,7 @@
default_prefs_profile: default_profile_of_eduard_edison
personal_user_group: eduard_edisons_personal_user_group
name: 'Eduard Edison'
+ unix_name: 'eduard_edison'
email: 'ad...@co...'
next_logi_nr: 26
home_page_tag_string: 'Eduard_Edison'
@@ -16,6 +17,7 @@
default_prefs_profile: personal_profile_of_john_johnson
personal_user_group: john_johnsons_personal_user_group
name: 'John Johnson'
+ unix_name: 'john_johnson'
email: 'us...@co...'
next_logi_nr: 4
home_page_tag_string: 'John_Johnson'
@@ -28,6 +30,7 @@
default_prefs_profile: personal_profile_of_johnny_runner
personal_user_group: johnny_runners_personal_user_group
name: 'Johnny Runner'
+ unix_name: 'johnny_runner'
email: 'va...@ca...'
next_logi_nr: 1
home_page_tag_string: 'Johnny_Runner'
@@ -43,6 +46,7 @@
default_prefs_profile: personal_profile_of_eddy_crawler
personal_user_group: eddy_crawlers_personal_user_group
name: 'Eddy Crawler'
+ unix_name: 'eddy_crawler'
email: 'to...@ca...'
next_logi_nr: 1
home_page_tag_string: 'Eddy_Crawler'
Modified: trunk/test/unit/user_test.rb
===================================================================
--- trunk/test/unit/user_test.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/test/unit/user_test.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -83,6 +83,13 @@
assert u.save
end
+ def test_unix_name
+ u = User.new(:openid_identifier => 'http://the.pond.com',
+ :name => 'Kermit T.h.e F-rogé', :email => 'le...@th...')
+ u.save!
+ assert_equal 'kermit_t_h_e_f_rog', u.unix_name
+ end
+
def test_create_destroy_create
PrefsProfile.use_default
hash = {:openid_identifier => 'http://lake.com',
@@ -151,12 +158,6 @@
assert_equal "Eduard_Edison/User", u.home_page_link.to_s
end
- def test_reduced_name
- u = User.new(:openid_identifier => 'http://the.pond.com',
- :name => 'Kermit T.h.e F-rogé', :email => 'le...@th...')
- assert_equal 'kermit_t_h_e_f_rog', u.unix_name
- end
-
def test_order_created_logis
u = users(:eduard_edison)
created_logis = u.created_logis.order_by_created_at(:limit => 2)
@@ -170,7 +171,7 @@
def test_destroy_reset_dependents
u = users(:john_johnson)
- l_id = u.created_logis.last.id
+ l_id = logis(:michel_foucault).id
assert u.destroy
assert [], Link.find_by_user_id(u.id)
assert [], Link.find_by_user_id(nil)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|