[Logilogi-svn] SF.net SVN: logilogi:[1624] projects/loglog/trunk
Status: Beta
Brought to you by:
wybow
|
From: <wy...@us...> - 2009-10-24 11:22:10
|
Revision: 1624
http://logilogi.svn.sourceforge.net/logilogi/?rev=1624&view=rev
Author: wybow
Date: 2009-10-24 11:22:00 +0000 (Sat, 24 Oct 2009)
Log Message:
-----------
Fixed title line, added unique id
Modified Paths:
--------------
projects/loglog/trunk/app/controllers/application_controller.rb
projects/loglog/trunk/app/controllers/apps_controller.rb
projects/loglog/trunk/app/controllers/channels_controller.rb
projects/loglog/trunk/app/controllers/feeds_controller.rb
projects/loglog/trunk/app/controllers/messages_controller.rb
projects/loglog/trunk/app/models/message.rb
projects/loglog/trunk/app/views/periods/show.txt.erb
projects/loglog/trunk/config/environment.rb
projects/loglog/trunk/db/schema.rb
projects/loglog/trunk/lib/capistrano/loglog.rb
projects/loglog/trunk/test/fixtures/messages.yml
projects/loglog/trunk/test/functional/messages_controller_test.rb
projects/loglog/trunk/test/unit/message_test.rb
Added Paths:
-----------
projects/loglog/trunk/config/config.rb.tmpl
projects/loglog/trunk/db/migrate/20091005214451_add_unique_id.rb
Modified: projects/loglog/trunk/app/controllers/application_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/application_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/application_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -54,6 +54,15 @@
end
end
+ def page_name
+ @page_name = self.auto_page_name
+ end
+
+ def auto_page_name
+ return (params[:controller] + ' ' + params[:action]).gsub(/(^|\s)(.)/) {
+ $1 + $2.upcase }
+ end
+
# Scrub sensitive parameters from your log
# filter_parameter_logging :password
end
Modified: projects/loglog/trunk/app/controllers/apps_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/apps_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/apps_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -18,7 +18,7 @@
### Filters
- before_filter :find
+ before_filter :find, :page_name
### Filter-method
Modified: projects/loglog/trunk/app/controllers/channels_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/channels_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/channels_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -21,13 +21,8 @@
before_filter :find_app
before_filter :find,
:except => :index
+ before_filter :page_name
- ### Filter-functions
-
- def find
- @channel = @app.channels.find_or_build_by_name(params[:id])
- end
-
### Bodies
# see the BodyBuilder plugin.
@@ -46,7 +41,17 @@
def show
end
- ### Body-methods
+ ### Filter-functions
-# protected
+ def find
+ @channel = @app.channels.find_or_build_by_name(params[:id])
+ end
+
+ def page_name
+ if params[:action] == "show"
+ @page_name = "Channel " + @channel.name
+ else
+ super
+ end
+ end
end
Modified: projects/loglog/trunk/app/controllers/feeds_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/feeds_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/feeds_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -22,7 +22,7 @@
@messages = @channel.messages.find(:all, :order => "created_at DESC", :limit => 30)
respond_to do |format|
format.atom do
- @title = 'LogLog ' + @channel.name + ' channel'
+ @title = 'LogLog Channel ' + @channel.name
end
end
end
Modified: projects/loglog/trunk/app/controllers/messages_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/messages_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/messages_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -33,15 +33,15 @@
def create
if current_app == @app
- mess = params[:message].dup
+ m_params = params[:message].dup
ok, last_message = true
- if mess[:channel_names]
- mess.delete(:channel_names).split(',').each do |channel_name|
- ok = self.save_message(mess, @app, channel_name) if ok
+ if m_params[:channel_names]
+ m_params.delete(:channel_names).split(',').each do |channel_name|
+ ok = self.save_message(m_params, @app, channel_name) if ok
end
- elsif mess[:channel_name]
- channel_name = mess.delete(:channel_name)
- ok = self.save_message(mess, @app, channel_name)
+ elsif m_params[:channel_name]
+ channel_name = m_params.delete(:channel_name)
+ ok = self.save_message(m_params, @app, channel_name)
end
if ok
@@ -61,6 +61,11 @@
def save_message(mess, app, channel_name)
last_message = Message.new(mess)
last_message.set_channel_from(app, channel_name)
- return last_message.save
+ ok = last_message.save
+ if ok or last_message.not_unique?
+ return true
+ else
+ return false
+ end
end
end
Modified: projects/loglog/trunk/app/models/message.rb
===================================================================
--- projects/loglog/trunk/app/models/message.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/models/message.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -32,8 +32,20 @@
end }
}
+ ###### Validations
+
+ validates_uniqueness_of :unique_id, :scope => :channel_id, :allow_nil => :true
+
### Methods
+ # For finding out if this is a duplicate
+ #
+ def not_unique?
+ Message.find_by_unique_id(self.unique_id)
+ end
+
+ # Gets a channel for the given name & app
+ #
def set_channel_from(app, channel_name)
self.channel = app.channels.find_or_build_by_name(channel_name)
end
Modified: projects/loglog/trunk/app/views/periods/show.txt.erb
===================================================================
--- projects/loglog/trunk/app/views/periods/show.txt.erb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/views/periods/show.txt.erb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -7,7 +7,7 @@
if message.title and !message.title.empty?
%><%= message.title %>
-<% end %> <%= word_wrap(message.text, :line_width => 70) %>
+<% end %> <%= word_wrap(message.text + ' ...', :line_width => 70) %>
- <%= message.author %>
<%= message.url %>
Added: projects/loglog/trunk/config/config.rb.tmpl
===================================================================
--- projects/loglog/trunk/config/config.rb.tmpl (rev 0)
+++ projects/loglog/trunk/config/config.rb.tmpl 2009-10-24 11:22:00 UTC (rev 1624)
@@ -0,0 +1,4 @@
+SITE_NAME = "LogLog.org"
+TITLE_LINE = "Updates, your way"
+HEADER_KEYWORDS = "tweets, notices, logs, messages, application"
+HEADER_DESCRIPTION = "Messages from your application to your users. The easy way for RSS-feeds, e-mail alerts and more"
Modified: projects/loglog/trunk/config/environment.rb
===================================================================
--- projects/loglog/trunk/config/environment.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/config/environment.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -44,7 +44,5 @@
# config.i18n.default_locale = :de
end
-SITE_NAME = "LogLog.org"
-TITLE_LINE = "Yo"
-HEADER_KEYWORDS = "Yo"
-HEADER_DESCRIPTION = "Yo"
+# And at last load the configuration
+require File.join(RAILS_ROOT, 'config', 'config')
Added: projects/loglog/trunk/db/migrate/20091005214451_add_unique_id.rb
===================================================================
--- projects/loglog/trunk/db/migrate/20091005214451_add_unique_id.rb (rev 0)
+++ projects/loglog/trunk/db/migrate/20091005214451_add_unique_id.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -0,0 +1,9 @@
+class AddUniqueId < ActiveRecord::Migration
+ def self.up
+ add_column :messages, :unique_id, :string
+ end
+
+ def self.down
+ remove_column :messages, :unique_id
+ end
+end
Modified: projects/loglog/trunk/db/schema.rb
===================================================================
--- projects/loglog/trunk/db/schema.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/db/schema.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -9,7 +9,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20090713120351) do
+ActiveRecord::Schema.define(:version => 20091005214451) do
create_table "apps", :force => true do |t|
t.string "name", :limit => 20, :null => false
@@ -37,6 +37,7 @@
t.string "text", :limit => 300, :null => false
t.string "url", :limit => 150
t.datetime "created_at", :null => false
+ t.string "unique_id"
end
create_table "sessions", :force => true do |t|
Modified: projects/loglog/trunk/lib/capistrano/loglog.rb
===================================================================
--- projects/loglog/trunk/lib/capistrano/loglog.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/lib/capistrano/loglog.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -24,6 +24,7 @@
# Copied from something.rb.tmpl to something.rb
SHARED_TEMPLATE_FILES = [
+ "config/config.rb",
"config/database.yml",
"config/mongrel_cluster.yml"
]
Modified: projects/loglog/trunk/test/fixtures/messages.yml
===================================================================
--- projects/loglog/trunk/test/fixtures/messages.yml 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/test/fixtures/messages.yml 2009-10-24 11:22:00 UTC (rev 1624)
@@ -56,3 +56,12 @@
text: 'And thus and there and so Sanders remark2'
url: 'http://www.logilogi.org/Mooo'
created_at: <%= 6.weeks.ago.to_s(:db) %>
+logi_unique_logis:
+ channel: logis
+ kind: 'Logi'
+ title: 'So it was unique'
+ author: 'Unique'
+ text: 'And thus and there and so Unique a logi'
+ url: 'http://www.logilogi.org/Mooouniq'
+ created_at: <%= 20.hours.ago.to_s(:db) %>
+ unique_id: 'hapatraplla043'
Modified: projects/loglog/trunk/test/functional/messages_controller_test.rb
===================================================================
--- projects/loglog/trunk/test/functional/messages_controller_test.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/test/functional/messages_controller_test.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -63,4 +63,25 @@
logis.reload
assert_equal messages_count + 1, logis.messages.count
end
+
+ def test_create_non_unique
+ enll = apps(:enll)
+ logis = channels(:logis)
+ messages_count = logis.messages.count
+ login(enll)
+
+ # Non-unique message, not created
+ m1 = messages(:logi_unique_logis)
+ post :create, :app_id => enll.name, :format => "xml",
+ :message => {
+ :kind => "Logi",
+ :channel_names => logis.name.to_s + ",u_eduard_edison",
+ :title => "This is a second logi",
+ :author => "Eduard Edison",
+ :text => "Hi, welcome to another logi",
+ :url => "http://www.yahoo.com",
+ :unique_id => m1.unique_id}
+ logis.reload
+ assert_equal messages_count, logis.messages.count
+ end
end
Modified: projects/loglog/trunk/test/unit/message_test.rb
===================================================================
--- projects/loglog/trunk/test/unit/message_test.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/test/unit/message_test.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -16,10 +16,30 @@
class MessageTest < ActiveSupport::TestCase
fixtures :all
+ # Saving
+
+ def test_validations_uniqueness
+ m1 = messages(:logi_unique_logis)
+ m2 = Message.new(:channel_id => m1.channel_id,
+ :text => 'Muha',
+ :unique_id => m1.unique_id)
+ assert !m2.save
+ end
+
+ # Methods
+
def test_set_channel_from
# set
m = messages(:logi_john_johnson_logis)
m.set_channel_from(apps(:enll), 'remarks')
assert_equal channels(:remarks), m.channel
end
+
+ def test_not_unique
+ m1 = messages(:logi_unique_logis)
+ m2 = Message.new(:channel_id => m1.channel_id,
+ :text => 'Muha',
+ :unique_id => m1.unique_id)
+ assert m2.not_unique?
+ end
end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|