muck-comments 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. data/MIT-LICENSE +1 -1
  2. data/Rakefile +4 -4
  3. data/VERSION +1 -1
  4. data/app/controllers/muck/comments_controller.rb +5 -2
  5. data/app/helpers/muck_comments_helper.rb +8 -8
  6. data/app/views/comments/_comment.html.erb +1 -1
  7. data/app/views/comments/_simple_comment.html.erb +1 -1
  8. data/muck-comments.gemspec +14 -22
  9. data/test/rails_root/Rakefile +2 -1
  10. data/test/rails_root/app/models/profile.rb +3 -0
  11. data/test/rails_root/app/models/user.rb +1 -0
  12. data/test/rails_root/config/environment.rb +9 -7
  13. data/test/rails_root/config/environments/test.rb +0 -14
  14. data/test/rails_root/db/migrate/20090402234137_create_languages.rb +1 -1
  15. data/test/rails_root/db/migrate/20090512013727_create_profiles.rb +21 -0
  16. data/test/rails_root/public/images/icons/external.png +0 -0
  17. data/test/rails_root/public/images/icons/feed.png +0 -0
  18. data/test/rails_root/public/images/icons/pending.png +0 -0
  19. data/test/rails_root/public/javascripts/jquery/jrails.js +1 -0
  20. data/test/rails_root/public/stylesheets/muck-activities.css +39 -0
  21. data/test/rails_root/test/test_helper.rb +5 -42
  22. metadata +14 -21
  23. data/test/rails_root/Capfile +0 -3
  24. data/test/rails_root/db/migrate/20090602041838_create_users.rb +0 -39
  25. data/test/rails_root/test/factories.rb +0 -75
  26. data/test/rails_root/test/mocks/development/.keep +0 -0
  27. data/test/rails_root/test/mocks/test/.keep +0 -0
  28. data/test/rails_root/test/shoulda_macros/controller.rb +0 -49
  29. data/test/rails_root/test/shoulda_macros/forms.rb +0 -32
  30. data/test/rails_root/test/shoulda_macros/models.rb +0 -50
  31. data/test/rails_root/test/shoulda_macros/pagination.rb +0 -53
  32. data/test/rails_root/test/shoulda_macros/plugins.rb +0 -34
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Justin Ball
1
+ Copyright (c) 2009 Tatemae
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -49,10 +49,10 @@ begin
49
49
  Jeweler::Tasks.new do |gemspec|
50
50
  gemspec.name = "muck-comments"
51
51
  gemspec.summary = "The comment engine for the muck system"
52
- gemspec.email = "justinball@gmail.com"
53
- gemspec.homepage = "http://github.com/jbasdf/muck_comments"
52
+ gemspec.email = "justin@tatemae.com"
53
+ gemspec.homepage = "http://github.com/tatemae/muck_comments"
54
54
  gemspec.description = "The comment engine for the muck system."
55
- gemspec.authors = ["Justin Ball"]
55
+ gemspec.authors = ["Justin Ball", "Joel Duffin"]
56
56
  gemspec.rubyforge_project = 'muck-comments'
57
57
  gemspec.add_dependency "muck-engine"
58
58
  gemspec.add_dependency "muck-users"
@@ -62,5 +62,5 @@ begin
62
62
  end
63
63
  Jeweler::GemcutterTasks.new
64
64
  rescue LoadError
65
- puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
65
+ puts "Jeweler not available. Install it with: sudo gem install jeweler"
66
66
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.14
1
+ 0.1.15
@@ -104,12 +104,15 @@ class Muck::CommentsController < ApplicationController
104
104
  end
105
105
 
106
106
  def get_parent_comment_html(parent, comment)
107
+ truncate_comment = false
108
+ length = 30
109
+ omission = '...'
107
110
  render_as_html do
108
- render_to_string(:partial => "#{parent.class.to_s.tableize}/comment", :object => comment, :locals => {:comment_owner => parent})
111
+ render_to_string(:partial => "#{parent.class.to_s.tableize}/comment", :object => comment, :locals => {:comment_owner => parent, :truncate_comment => truncate_comment, :length => length, :omission => omission})
109
112
  end
110
113
  rescue ActionView::MissingTemplate
111
114
  render_as_html do
112
- render_to_string(:partial => "comments/comment", :object => comment, :locals => {:comment_owner => parent})
115
+ render_to_string(:partial => "comments/comment", :object => comment, :locals => {:comment_owner => parent, :truncate_comment => truncate_comment, :length => length, :omission => omission})
113
116
  end
114
117
  #I18n.t('muck.comments.missing_comment_template_error', :partial => "#{parent.class.to_s.tableize}/comment")
115
118
  end
@@ -1,15 +1,15 @@
1
1
  module MuckCommentsHelper
2
2
 
3
- def latest_simple_comments(limit = 5, truncate = true, length = 30, omission = '...')
4
- render :partial => 'comments/simple_comment', :collection => Comment.by_newest.limit(limit), :locals => { :truncate => truncate, :length => length, :omission => omission }
3
+ def latest_simple_comments(limit = 5, truncate_comment = true, length = 30, omission = '...')
4
+ render :partial => 'comments/simple_comment', :collection => Comment.by_newest.limit(limit), :locals => { :truncate_comment => truncate_comment, :length => length, :omission => omission }
5
5
  end
6
6
 
7
- def latest_comments(limit = 5, truncate = true, length = 30, omission = '...')
8
- render :partial => 'comments/comment', :collection => Comment.by_newest.limit(limit), :locals => { :truncate => truncate, :length => length, :omission => omission }
7
+ def latest_comments(limit = 5, truncate_comment = true, length = 30, omission = '...')
8
+ render :partial => 'comments/comment', :collection => Comment.by_newest.limit(limit), :locals => { :truncate_comment => truncate_comment, :length => length, :omission => omission }
9
9
  end
10
10
 
11
- def show_comments(comments)
12
- render :partial => 'comments/comment', :collection => comments
11
+ def show_comments(comments, truncate_comment = false, length = 30, omission = '...')
12
+ render :partial => 'comments/comment', :collection => comments, :locals => { :truncate_comment => truncate_comment, :length => length, :omission => omission }
13
13
  end
14
14
 
15
15
  # parent is the object to which the comments will be attached
@@ -41,8 +41,8 @@ module MuckCommentsHelper
41
41
  :delete_path => comment_path(comment, :format => 'js') }
42
42
  end
43
43
 
44
- def limit_comment(text, truncate = false, length = 30, omission = '...')
45
- if truncate
44
+ def limit_comment(text, truncate_comment = false, length = 30, omission = '...')
45
+ if truncate_comment
46
46
  html_summarize(text, length, omission)
47
47
  else
48
48
  text
@@ -1,7 +1,7 @@
1
1
  <div id="<%= comment.dom_id %>" class="comment_holder delete-container">
2
2
  <div class="commentor-icon"><%= icon comment.user %></div>
3
3
  <p><span class="commentor"><%= link_to comment.user.try(:display_name), comment.user %></span>
4
- <%= h limit_comment(comment.body, truncate, length, omission) %></p>
4
+ <%= h limit_comment(comment.body, truncate_comment, length, omission) %></p>
5
5
  <%= delete_comment(comment, :image) if comment.can_edit?(current_user) %>
6
6
  <span class="comment-time"><%= t("muck.general.time_ago", :time_in_words => time_ago_in_words(comment.created_at)) %></span></p>
7
7
  </div>
@@ -1,4 +1,4 @@
1
1
  <div id="<%= simple_comment.dom_id %>" class="simple-comment">
2
2
  <div class="commentor-icon"><%= icon simple_comment.user %></div>
3
- <div class="comment-body"><%= h limit_comment(simple_comment.body, truncate, length, omission) %></div>
3
+ <div class="comment-body"><%= h limit_comment(simple_comment.body, truncate_comment, length, omission) %></div>
4
4
  </div>
@@ -5,13 +5,13 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{muck-comments}
8
- s.version = "0.1.14"
8
+ s.version = "0.1.15"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Justin Ball"]
12
- s.date = %q{2009-11-07}
11
+ s.authors = ["Justin Ball", "Joel Duffin"]
12
+ s.date = %q{2009-11-13}
13
13
  s.description = %q{The comment engine for the muck system.}
14
- s.email = %q{justinball@gmail.com}
14
+ s.email = %q{justin@tatemae.com}
15
15
  s.extra_rdoc_files = [
16
16
  "README.rdoc"
17
17
  ]
@@ -93,13 +93,13 @@ Gem::Specification.new do |s|
93
93
  "tasks/muck_comments_tasks.rake",
94
94
  "test/rails_root/.gitignore",
95
95
  "test/rails_root/.rake_tasks",
96
- "test/rails_root/Capfile",
97
96
  "test/rails_root/Rakefile",
98
97
  "test/rails_root/app/controllers/application_controller.rb",
99
98
  "test/rails_root/app/controllers/default_controller.rb",
100
99
  "test/rails_root/app/helpers/application_helper.rb",
101
100
  "test/rails_root/app/models/.keep",
102
101
  "test/rails_root/app/models/comment.rb",
102
+ "test/rails_root/app/models/profile.rb",
103
103
  "test/rails_root/app/models/user.rb",
104
104
  "test/rails_root/app/models/user_session.rb",
105
105
  "test/rails_root/app/views/default/index.html.erb",
@@ -125,7 +125,7 @@ Gem::Specification.new do |s|
125
125
  "test/rails_root/db/migrate/20090402234137_create_languages.rb",
126
126
  "test/rails_root/db/migrate/20090426041056_create_countries.rb",
127
127
  "test/rails_root/db/migrate/20090426041103_create_states.rb",
128
- "test/rails_root/db/migrate/20090602041838_create_users.rb",
128
+ "test/rails_root/db/migrate/20090512013727_create_profiles.rb",
129
129
  "test/rails_root/db/migrate/20090608073052_create_friends.rb",
130
130
  "test/rails_root/db/migrate/20090613173314_create_comments.rb",
131
131
  "test/rails_root/db/migrate/20090703055724_add_contents.rb",
@@ -177,10 +177,13 @@ Gem::Specification.new do |s|
177
177
  "test/rails_root/public/images/icons/comment.png",
178
178
  "test/rails_root/public/images/icons/delete.png",
179
179
  "test/rails_root/public/images/icons/exclaim.png",
180
+ "test/rails_root/public/images/icons/external.png",
181
+ "test/rails_root/public/images/icons/feed.png",
180
182
  "test/rails_root/public/images/icons/grey_guy.png",
181
183
  "test/rails_root/public/images/icons/hide.png",
182
184
  "test/rails_root/public/images/icons/information.png",
183
185
  "test/rails_root/public/images/icons/minus.png",
186
+ "test/rails_root/public/images/icons/pending.png",
184
187
  "test/rails_root/public/images/icons/question.png",
185
188
  "test/rails_root/public/images/icons/search_box.png",
186
189
  "test/rails_root/public/images/icons/star.png",
@@ -207,6 +210,7 @@ Gem::Specification.new do |s|
207
210
  "test/rails_root/public/javascripts/jquery/jquery.jgrowl.js",
208
211
  "test/rails_root/public/javascripts/jquery/jquery.js",
209
212
  "test/rails_root/public/javascripts/jquery/jquery.tips.js",
213
+ "test/rails_root/public/javascripts/jquery/jrails.js",
210
214
  "test/rails_root/public/javascripts/muck.js",
211
215
  "test/rails_root/public/javascripts/muck_activities.js",
212
216
  "test/rails_root/public/javascripts/muck_time/en.js",
@@ -313,6 +317,7 @@ Gem::Specification.new do |s|
313
317
  "test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png",
314
318
  "test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png",
315
319
  "test/rails_root/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.1.custom.css",
320
+ "test/rails_root/public/stylesheets/muck-activities.css",
316
321
  "test/rails_root/public/stylesheets/reset.css",
317
322
  "test/rails_root/public/stylesheets/styles.css",
318
323
  "test/rails_root/public/stylesheets/themes/blue/styles.css",
@@ -334,16 +339,8 @@ Gem::Specification.new do |s|
334
339
  "test/rails_root/script/process/spawner",
335
340
  "test/rails_root/script/runner",
336
341
  "test/rails_root/script/server",
337
- "test/rails_root/test/factories.rb",
338
342
  "test/rails_root/test/functional/.keep",
339
343
  "test/rails_root/test/functional/comments_controller_test.rb",
340
- "test/rails_root/test/mocks/development/.keep",
341
- "test/rails_root/test/mocks/test/.keep",
342
- "test/rails_root/test/shoulda_macros/controller.rb",
343
- "test/rails_root/test/shoulda_macros/forms.rb",
344
- "test/rails_root/test/shoulda_macros/models.rb",
345
- "test/rails_root/test/shoulda_macros/pagination.rb",
346
- "test/rails_root/test/shoulda_macros/plugins.rb",
347
344
  "test/rails_root/test/test_helper.rb",
348
345
  "test/rails_root/test/unit/.keep",
349
346
  "test/rails_root/test/unit/comment_mailer_test.rb",
@@ -354,7 +351,7 @@ Gem::Specification.new do |s|
354
351
  "test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb",
355
352
  "uninstall.rb"
356
353
  ]
357
- s.homepage = %q{http://github.com/jbasdf/muck_comments}
354
+ s.homepage = %q{http://github.com/tatemae/muck_comments}
358
355
  s.rdoc_options = ["--charset=UTF-8"]
359
356
  s.require_paths = ["lib"]
360
357
  s.rubyforge_project = %q{muck-comments}
@@ -365,6 +362,7 @@ Gem::Specification.new do |s|
365
362
  "test/rails_root/app/controllers/default_controller.rb",
366
363
  "test/rails_root/app/helpers/application_helper.rb",
367
364
  "test/rails_root/app/models/comment.rb",
365
+ "test/rails_root/app/models/profile.rb",
368
366
  "test/rails_root/app/models/user.rb",
369
367
  "test/rails_root/app/models/user_session.rb",
370
368
  "test/rails_root/config/boot.rb",
@@ -384,7 +382,7 @@ Gem::Specification.new do |s|
384
382
  "test/rails_root/db/migrate/20090402234137_create_languages.rb",
385
383
  "test/rails_root/db/migrate/20090426041056_create_countries.rb",
386
384
  "test/rails_root/db/migrate/20090426041103_create_states.rb",
387
- "test/rails_root/db/migrate/20090602041838_create_users.rb",
385
+ "test/rails_root/db/migrate/20090512013727_create_profiles.rb",
388
386
  "test/rails_root/db/migrate/20090608073052_create_friends.rb",
389
387
  "test/rails_root/db/migrate/20090613173314_create_comments.rb",
390
388
  "test/rails_root/db/migrate/20090703055724_add_contents.rb",
@@ -402,13 +400,7 @@ Gem::Specification.new do |s|
402
400
  "test/rails_root/features/support/paths.rb",
403
401
  "test/rails_root/public/dispatch.rb",
404
402
  "test/rails_root/script/create_project.rb",
405
- "test/rails_root/test/factories.rb",
406
403
  "test/rails_root/test/functional/comments_controller_test.rb",
407
- "test/rails_root/test/shoulda_macros/controller.rb",
408
- "test/rails_root/test/shoulda_macros/forms.rb",
409
- "test/rails_root/test/shoulda_macros/models.rb",
410
- "test/rails_root/test/shoulda_macros/pagination.rb",
411
- "test/rails_root/test/shoulda_macros/plugins.rb",
412
404
  "test/rails_root/test/test_helper.rb",
413
405
  "test/rails_root/test/unit/comment_mailer_test.rb",
414
406
  "test/rails_root/test/unit/comment_test.rb",
@@ -13,11 +13,12 @@ require 'muck_comments/tasks'
13
13
  require 'muck_engine/tasks'
14
14
  require 'muck_users/tasks'
15
15
  require 'muck_activities/tasks'
16
+ require 'muck_profiles/tasks'
16
17
 
17
18
  namespace :muck do
18
19
 
19
20
  def muck_gems
20
- ['../../muck-engine', '../../muck-users', '../../muck-activities', '../../muck-comments']
21
+ ['muck-engine', 'muck-users', 'muck-activities', 'muck-comments', 'muck-profiles']
21
22
  end
22
23
 
23
24
  end
@@ -0,0 +1,3 @@
1
+ class Profile < ActiveRecord::Base
2
+ acts_as_muck_profile
3
+ end
@@ -3,6 +3,7 @@ class User < ActiveRecord::Base
3
3
  c.crypto_provider = Authlogic::CryptoProviders::BCrypt
4
4
  end
5
5
  acts_as_muck_user
6
+ has_muck_profile
6
7
  has_many :comments
7
8
  acts_as_commentable
8
9
  end
@@ -1,4 +1,4 @@
1
- RAILS_GEM_VERSION = '2.3.3' unless defined? RAILS_GEM_VERSION
1
+ RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
2
2
 
3
3
  require File.join(File.dirname(__FILE__), 'boot')
4
4
 
@@ -15,16 +15,18 @@ end
15
15
 
16
16
  Rails::Initializer.run do |config|
17
17
  config.time_zone = 'UTC'
18
- config.gem 'mislav-will_paginate', :lib => 'will_paginate', :source => 'http://gems.github.com'
19
- config.gem "binarylogic-authlogic", :lib => 'authlogic', :source => 'http://gems.github.com', :version => ">=2.1.0"
20
- config.gem "binarylogic-searchlogic", :lib => 'searchlogic', :source => 'http://gems.github.com', :version => '~> 2.1.1'
18
+ config.gem "will_paginate"
19
+ config.gem "authlogic"
20
+ config.gem "searchlogic"
21
21
  config.gem "bcrypt-ruby", :lib => "bcrypt", :version => ">=2.0.5"
22
- config.gem 'mbleigh-acts-as-taggable-on', :lib => "acts-as-taggable-on", :source => "http://gems.github.com"
23
- config.gem "collectiveidea-awesome_nested_set", :lib => 'awesome_nested_set', :source => "http://gems.github.com"
24
- config.gem "friendly_id", :version => '>=2.1.3'
22
+ config.gem "acts-as-taggable-on"
23
+ config.gem "awesome_nested_set"
24
+ config.gem "friendly_id"
25
+ config.gem "paperclip"
25
26
  config.gem "babelphish"
26
27
  config.gem 'muck-engine', :lib => 'muck_engine'
27
28
  config.gem 'muck-users', :lib => 'muck_users'
29
+ config.gem 'muck-profiles', :lib => 'muck_profiles'
28
30
  config.gem 'muck-activities', :lib => 'muck_activities'
29
31
  config.plugin_locators << TestGemLocator
30
32
  end
@@ -26,17 +26,3 @@ HOST = "localhost"
26
26
  # This is necessary if your schema can't be completely dumped by the schema dumper,
27
27
  # like if you have constraints or database-specific column types
28
28
  # config.active_record.schema_format = :sql
29
-
30
- config.gem 'thoughtbot-factory_girl', :lib => 'factory_girl', :source => 'http://gems.github.com'
31
- config.gem 'thoughtbot-shoulda', :lib => 'shoulda', :source => 'http://gems.github.com'
32
- config.gem 'treetop', :version => '>=1.2.4'
33
- config.gem 'term-ansicolor', :version => '>=1.0.3', :lib => 'term/ansicolor'
34
- config.gem 'polyglot', :version => '>=0.2.4'
35
- config.gem "rcov", :version => '>=0.8.1.2.0'
36
-
37
- # only required if you want to use selenium for testing
38
- config.gem 'selenium-client', :lib => 'selenium/client'
39
- config.gem 'bmabey-database_cleaner', :lib => 'database_cleaner', :source => 'http://gems.github.com'
40
-
41
- require 'factory_girl'
42
- begin require 'redgreen'; rescue LoadError; end
@@ -5,7 +5,7 @@ class CreateLanguages < ActiveRecord::Migration
5
5
  t.string :english_name
6
6
  t.string :locale
7
7
  t.boolean :supported, :default => true
8
- t.integer :is_default, :default => false
8
+ t.boolean :is_default, :default => false
9
9
  end
10
10
  add_index :languages, :name
11
11
  add_index :languages, :locale
@@ -0,0 +1,21 @@
1
+ class CreateProfiles < ActiveRecord::Migration
2
+
3
+ def self.up
4
+
5
+ create_table :profiles, :force => true do |t|
6
+ t.integer :user_id
7
+ t.string :photo_file_name
8
+ t.string :photo_content_type
9
+ t.integer :photo_file_size
10
+ t.timestamps
11
+ end
12
+
13
+ add_index :profiles, ['user_id']
14
+
15
+ end
16
+
17
+ def self.down
18
+ drop_table :profiles
19
+ end
20
+
21
+ end
@@ -0,0 +1 @@
1
+ (function($){$().ajaxSend(function(a,xhr,s){xhr.setRequestHeader("Accept","text/javascript, text/html, application/xml, text/xml, */*")})})(jQuery);(function($){$.fn.reset=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};$.fn.enable=function(){return this.each(function(){this.disabled=false})};$.fn.disable=function(){return this.each(function(){this.disabled=true})}})(jQuery);(function($){$.extend({fieldEvent:function(el,obs){var field=el[0]||el,e="change";if(field.type=="radio"||field.type=="checkbox"){e="click"}else{if(obs&&field.type=="text"||field.type=="textarea"){e="keyup"}}return e}});$.fn.extend({delayedObserver:function(delay,callback){var el=$(this);if(typeof window.delayedObserverStack=="undefined"){window.delayedObserverStack=[]}if(typeof window.delayedObserverCallback=="undefined"){window.delayedObserverCallback=function(stackPos){observed=window.delayedObserverStack[stackPos];if(observed.timer){clearTimeout(observed.timer)}observed.timer=setTimeout(function(){observed.timer=null;observed.callback(observed.obj,observed.obj.formVal())},observed.delay*1000);observed.oldVal=observed.obj.formVal()}}window.delayedObserverStack.push({obj:el,timer:null,delay:delay,oldVal:el.formVal(),callback:callback});var stackPos=window.delayedObserverStack.length-1;if(el[0].tagName=="FORM"){$(":input",el).each(function(){var field=$(this);field.bind($.fieldEvent(field,delay),function(){observed=window.delayedObserverStack[stackPos];if(observed.obj.formVal()==observed.obj.oldVal){return}else{window.delayedObserverCallback(stackPos)}})})}else{el.bind($.fieldEvent(el,delay),function(){observed=window.delayedObserverStack[stackPos];if(observed.obj.formVal()==observed.obj.oldVal){return}else{window.delayedObserverCallback(stackPos)}})}},formVal:function(){var el=this[0];if(el.tagName=="FORM"){return this.serialize()}if(el.type=="checkbox"||self.type=="radio"){return this.filter("input:checked").val()||""}else{return this.val()}}})})(jQuery);(function($){$.fn.extend({visualEffect:function(o){e=o.replace(/\_(.)/g,function(m,l){return l.toUpperCase()});return eval("$(this)."+e+"()")},appear:function(speed,callback){return this.fadeIn(speed,callback)},blindDown:function(speed,callback){return this.show("blind",{direction:"vertical"},speed,callback)},blindUp:function(speed,callback){return this.hide("blind",{direction:"vertical"},speed,callback)},blindRight:function(speed,callback){return this.show("blind",{direction:"horizontal"},speed,callback)},blindLeft:function(speed,callback){this.hide("blind",{direction:"horizontal"},speed,callback);return this},dropOut:function(speed,callback){return this.hide("drop",{direction:"down"},speed,callback)},dropIn:function(speed,callback){return this.show("drop",{direction:"up"},speed,callback)},fade:function(speed,callback){return this.fadeOut(speed,callback)},fadeToggle:function(speed,callback){return this.animate({opacity:"toggle"},speed,callback)},fold:function(speed,callback){return this.hide("fold",{},speed,callback)},foldOut:function(speed,callback){return this.show("fold",{},speed,callback)},grow:function(speed,callback){return this.show("scale",{},speed,callback)},highlight:function(speed,callback){return this.show("highlight",{},speed,callback)},puff:function(speed,callback){return this.hide("puff",{},speed,callback)},pulsate:function(speed,callback){return this.show("pulsate",{},speed,callback)},shake:function(speed,callback){return this.show("shake",{},speed,callback)},shrink:function(speed,callback){return this.hide("scale",{},speed,callback)},squish:function(speed,callback){return this.hide("scale",{origin:["top","left"]},speed,callback)},slideUp:function(speed,callback){return this.hide("slide",{direction:"up"},speed,callback)},slideDown:function(speed,callback){return this.show("slide",{direction:"up"},speed,callback)},switchOff:function(speed,callback){return this.hide("clip",{},speed,callback)},switchOn:function(speed,callback){return this.show("clip",{},speed,callback)}})})(jQuery);
@@ -0,0 +1,39 @@
1
+ /* activity feed */
2
+ #activity-status-control{border:solid 1px #ccc;padding:10px 7px;background-color:#eee;}
3
+ #status-update-field{}
4
+ ul#status-menu{list-style:none;}
5
+ ul#status-menu li{float:left;display:inline;margin:0 5px;}
6
+ #status-update-button input{padding:0;}
7
+ .status-update-dim{}
8
+ .status-update-lit{}
9
+ ul#activity-filter{list-style:none;}
10
+ ul#activity-filter li{border-bottom:solid 1px #ccc;}
11
+ ul#activity-filter li a{text-decoration:none;}
12
+ ul#activity-filter li a:hover;{text-decoration:underline;}
13
+ ul#activity-filter li.current a{color:#5EAC18;}
14
+ .activity{clear:both;display:block;}
15
+ #activity-feed{margin:15px 0 0 0;}
16
+ #activity-feed-content .activity{margin:8px 0 4px 0;}
17
+ #activity-feed-content .activity-time{font-size:1em;font-color:#eee;clear:left;}
18
+ #activity-icon, .actor-icon{width:50px;float:left;margin:0 10px 10px 0;}
19
+ #activity-feed-content .actor, #current-status-name{font-weight:bolder;font-size:1.3em;}
20
+ .activity-time, .status-time{color:#777777;font-size:.9em;}
21
+ p#current-status-text, .activity-content p{margin:0;}
22
+ form.activity-delete {position:relative;display:inline;float:right;display:none;}
23
+ form.activity-delete input{padding:0;margin:0;width:15px;height:15px;position:absolute;right:0px;bottom:0px;}
24
+ .activity .activity-hover form.activity-delete{display:block;}
25
+ .welcome_activity{font-size:14px;}
26
+ a.upload-button{background:transparent url('/images/icons/button_background.png') no-repeat scroll left top;text-decoration:none;padding:0px 23px 1px 6px;color:#fff;font-weight:bold;}
27
+ a.upload-button:hover{background:transparent url('/images/icons/button_background.png') no-repeat scroll left bottom;}
28
+ /* comments under activity feed */
29
+ .activity-comment{border:1px solid #ccc;margin:2px 50px 2px 60px;padding:.5em;background-color:#eee;}
30
+ .activity-comment .actor-icon{width:40px;}
31
+ .activity-comment .actor-icon img{width:40px;height:40px;}
32
+ .activity-comment textarea.max{width:80%;height:30px;}
33
+ .activity-comment textarea.min{height:15px;width:50%;}
34
+ .activity-comment p{margin:0;}
35
+ .activity-comment .actor a{font-size:.8em;}
36
+ .activity form.comment-delete {position:relative;display:inline;float:right;}
37
+ .activity form.comment-delete input{padding:0;margin:0;width:15px;height:15px;position:absolute;right:0px;top:0px;}
38
+ .activity form.comment-delete{display:none;}
39
+ .activity .comment-hover form.comment-delete{display:block;}
@@ -1,48 +1,11 @@
1
1
  $:.reject! { |e| e.include? 'TextMate' }
2
2
  ENV["RAILS_ENV"] = "test"
3
3
  require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
4
- require 'test_help'
5
- require 'ruby-debug'
6
- gem 'thoughtbot-factory_girl' # from github
7
- require 'factory_girl'
4
+ gem 'muck-engine'
5
+ require 'muck_test_helper'
8
6
  require 'authlogic/test_case'
9
- require 'redgreen' rescue LoadError
10
- require File.expand_path(File.dirname(__FILE__) + '/factories')
11
- require File.join(File.dirname(__FILE__), 'shoulda_macros', 'controller')
12
- require File.join(File.dirname(__FILE__), 'shoulda_macros', 'models')
13
-
14
- class ActiveSupport::TestCase
15
- self.use_transactional_fixtures = true
16
- self.use_instantiated_fixtures = false
17
7
 
8
+ class ActiveSupport::TestCase
9
+ include MuckTestMethods
18
10
  include Authlogic::TestCase
19
-
20
- def login_as(user)
21
- success = UserSession.create(user)
22
- if !success
23
- errors = user.errors.full_messages.to_sentence
24
- message = 'User has not been activated' if !user.active?
25
- raise "could not login as #{user.to_param}. Please make sure the user is valid. #{message} #{errors}"
26
- end
27
- UserSession.find
28
- end
29
-
30
- def assure_logout
31
- user_session = UserSession.find
32
- user_session.destroy if user_session
33
- end
34
-
35
- def ensure_flash(val)
36
- assert_contains flash.values, val, ", Flash: #{flash.inspect}"
37
- end
38
-
39
- # For Selenium
40
- # setup do |session|
41
- # session.host! "localhost:3001"
42
- # end
43
-
44
- def make_parent_params(parent)
45
- { :parent_id => parent.id, :parent_type => parent.class.to_s }
46
- end
47
-
48
- end
11
+ end
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muck-comments
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Ball
8
+ - Joel Duffin
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2009-11-07 00:00:00 -07:00
13
+ date: 2009-11-13 00:00:00 -07:00
13
14
  default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
@@ -33,7 +34,7 @@ dependencies:
33
34
  version: "0"
34
35
  version:
35
36
  description: The comment engine for the muck system.
36
- email: justinball@gmail.com
37
+ email: justin@tatemae.com
37
38
  executables: []
38
39
 
39
40
  extensions: []
@@ -118,13 +119,13 @@ files:
118
119
  - tasks/muck_comments_tasks.rake
119
120
  - test/rails_root/.gitignore
120
121
  - test/rails_root/.rake_tasks
121
- - test/rails_root/Capfile
122
122
  - test/rails_root/Rakefile
123
123
  - test/rails_root/app/controllers/application_controller.rb
124
124
  - test/rails_root/app/controllers/default_controller.rb
125
125
  - test/rails_root/app/helpers/application_helper.rb
126
126
  - test/rails_root/app/models/.keep
127
127
  - test/rails_root/app/models/comment.rb
128
+ - test/rails_root/app/models/profile.rb
128
129
  - test/rails_root/app/models/user.rb
129
130
  - test/rails_root/app/models/user_session.rb
130
131
  - test/rails_root/app/views/default/index.html.erb
@@ -150,7 +151,7 @@ files:
150
151
  - test/rails_root/db/migrate/20090402234137_create_languages.rb
151
152
  - test/rails_root/db/migrate/20090426041056_create_countries.rb
152
153
  - test/rails_root/db/migrate/20090426041103_create_states.rb
153
- - test/rails_root/db/migrate/20090602041838_create_users.rb
154
+ - test/rails_root/db/migrate/20090512013727_create_profiles.rb
154
155
  - test/rails_root/db/migrate/20090608073052_create_friends.rb
155
156
  - test/rails_root/db/migrate/20090613173314_create_comments.rb
156
157
  - test/rails_root/db/migrate/20090703055724_add_contents.rb
@@ -202,10 +203,13 @@ files:
202
203
  - test/rails_root/public/images/icons/comment.png
203
204
  - test/rails_root/public/images/icons/delete.png
204
205
  - test/rails_root/public/images/icons/exclaim.png
206
+ - test/rails_root/public/images/icons/external.png
207
+ - test/rails_root/public/images/icons/feed.png
205
208
  - test/rails_root/public/images/icons/grey_guy.png
206
209
  - test/rails_root/public/images/icons/hide.png
207
210
  - test/rails_root/public/images/icons/information.png
208
211
  - test/rails_root/public/images/icons/minus.png
212
+ - test/rails_root/public/images/icons/pending.png
209
213
  - test/rails_root/public/images/icons/question.png
210
214
  - test/rails_root/public/images/icons/search_box.png
211
215
  - test/rails_root/public/images/icons/star.png
@@ -232,6 +236,7 @@ files:
232
236
  - test/rails_root/public/javascripts/jquery/jquery.jgrowl.js
233
237
  - test/rails_root/public/javascripts/jquery/jquery.js
234
238
  - test/rails_root/public/javascripts/jquery/jquery.tips.js
239
+ - test/rails_root/public/javascripts/jquery/jrails.js
235
240
  - test/rails_root/public/javascripts/muck.js
236
241
  - test/rails_root/public/javascripts/muck_activities.js
237
242
  - test/rails_root/public/javascripts/muck_time/en.js
@@ -338,6 +343,7 @@ files:
338
343
  - test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png
339
344
  - test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png
340
345
  - test/rails_root/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.1.custom.css
346
+ - test/rails_root/public/stylesheets/muck-activities.css
341
347
  - test/rails_root/public/stylesheets/reset.css
342
348
  - test/rails_root/public/stylesheets/styles.css
343
349
  - test/rails_root/public/stylesheets/themes/blue/styles.css
@@ -359,16 +365,8 @@ files:
359
365
  - test/rails_root/script/process/spawner
360
366
  - test/rails_root/script/runner
361
367
  - test/rails_root/script/server
362
- - test/rails_root/test/factories.rb
363
368
  - test/rails_root/test/functional/.keep
364
369
  - test/rails_root/test/functional/comments_controller_test.rb
365
- - test/rails_root/test/mocks/development/.keep
366
- - test/rails_root/test/mocks/test/.keep
367
- - test/rails_root/test/shoulda_macros/controller.rb
368
- - test/rails_root/test/shoulda_macros/forms.rb
369
- - test/rails_root/test/shoulda_macros/models.rb
370
- - test/rails_root/test/shoulda_macros/pagination.rb
371
- - test/rails_root/test/shoulda_macros/plugins.rb
372
370
  - test/rails_root/test/test_helper.rb
373
371
  - test/rails_root/test/unit/.keep
374
372
  - test/rails_root/test/unit/comment_mailer_test.rb
@@ -379,7 +377,7 @@ files:
379
377
  - test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb
380
378
  - uninstall.rb
381
379
  has_rdoc: true
382
- homepage: http://github.com/jbasdf/muck_comments
380
+ homepage: http://github.com/tatemae/muck_comments
383
381
  licenses: []
384
382
 
385
383
  post_install_message:
@@ -411,6 +409,7 @@ test_files:
411
409
  - test/rails_root/app/controllers/default_controller.rb
412
410
  - test/rails_root/app/helpers/application_helper.rb
413
411
  - test/rails_root/app/models/comment.rb
412
+ - test/rails_root/app/models/profile.rb
414
413
  - test/rails_root/app/models/user.rb
415
414
  - test/rails_root/app/models/user_session.rb
416
415
  - test/rails_root/config/boot.rb
@@ -430,7 +429,7 @@ test_files:
430
429
  - test/rails_root/db/migrate/20090402234137_create_languages.rb
431
430
  - test/rails_root/db/migrate/20090426041056_create_countries.rb
432
431
  - test/rails_root/db/migrate/20090426041103_create_states.rb
433
- - test/rails_root/db/migrate/20090602041838_create_users.rb
432
+ - test/rails_root/db/migrate/20090512013727_create_profiles.rb
434
433
  - test/rails_root/db/migrate/20090608073052_create_friends.rb
435
434
  - test/rails_root/db/migrate/20090613173314_create_comments.rb
436
435
  - test/rails_root/db/migrate/20090703055724_add_contents.rb
@@ -448,13 +447,7 @@ test_files:
448
447
  - test/rails_root/features/support/paths.rb
449
448
  - test/rails_root/public/dispatch.rb
450
449
  - test/rails_root/script/create_project.rb
451
- - test/rails_root/test/factories.rb
452
450
  - test/rails_root/test/functional/comments_controller_test.rb
453
- - test/rails_root/test/shoulda_macros/controller.rb
454
- - test/rails_root/test/shoulda_macros/forms.rb
455
- - test/rails_root/test/shoulda_macros/models.rb
456
- - test/rails_root/test/shoulda_macros/pagination.rb
457
- - test/rails_root/test/shoulda_macros/plugins.rb
458
451
  - test/rails_root/test/test_helper.rb
459
452
  - test/rails_root/test/unit/comment_mailer_test.rb
460
453
  - test/rails_root/test/unit/comment_test.rb
@@ -1,3 +0,0 @@
1
- load 'deploy' if respond_to?(:namespace) # cap2 differentiator
2
- Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
3
- load 'config/deploy'
@@ -1,39 +0,0 @@
1
- class CreateUsers < ActiveRecord::Migration
2
-
3
- def self.up
4
- create_table :users, :force => true do |t|
5
- t.string :login
6
- t.string :email
7
- t.string :first_name
8
- t.string :last_name
9
- t.string :crypted_password
10
- t.string :password_salt
11
- t.string :persistence_token
12
- t.string :single_access_token
13
- t.string :perishable_token
14
- t.integer :login_count, :null => false, :default => 0
15
- t.integer :failed_login_count, :null => false, :default => 0
16
- t.datetime :last_request_at
17
- t.datetime :last_login_at
18
- t.datetime :current_login_at
19
- t.string :current_login_ip
20
- t.string :last_login_ip
21
- t.boolean :terms_of_service, :default => false, :null => false
22
- t.string :time_zone, :default => "UTC"
23
- t.datetime :disabled_at
24
- t.datetime :activated_at
25
- t.timestamps
26
- end
27
-
28
- add_index :users, :login
29
- add_index :users, :email
30
- add_index :users, :persistence_token
31
- add_index :users, :perishable_token
32
- add_index :users, :single_access_token
33
- add_index :users, :last_request_at
34
- end
35
-
36
- def self.down
37
- drop_table :users
38
- end
39
- end
@@ -1,75 +0,0 @@
1
- Factory.sequence :email do |n|
2
- "somebody#{n}@example.com"
3
- end
4
-
5
- Factory.sequence :login do |n|
6
- "inquire#{n}"
7
- end
8
-
9
- Factory.sequence :name do |n|
10
- "a_name#{n}"
11
- end
12
-
13
- Factory.sequence :title do |n|
14
- "a_title#{n}"
15
- end
16
-
17
- Factory.sequence :abbr do |n|
18
- "abbr#{n}"
19
- end
20
-
21
- Factory.sequence :description do |n|
22
- "This is the description: #{n}"
23
- end
24
-
25
- Factory.sequence :uri do |n|
26
- "n#{n}.example.com"
27
- end
28
-
29
- Factory.define :state do |f|
30
- f.name { Factory.next(:name) }
31
- f.abbreviation { Factory.next(:abbr) }
32
- f.country {|a| a.association(:country) }
33
- end
34
-
35
- Factory.define :country do |f|
36
- f.name { Factory.next(:name) }
37
- f.abbreviation { Factory.next(:abbr) }
38
- end
39
-
40
- Factory.define :user do |f|
41
- f.login { Factory.next(:login) }
42
- f.email { Factory.next(:email) }
43
- f.password 'inquire_pass'
44
- f.password_confirmation 'inquire_pass'
45
- f.first_name 'test'
46
- f.last_name 'guy'
47
- f.terms_of_service true
48
- f.activated_at DateTime.now
49
- end
50
-
51
- Factory.define :permission do |f|
52
- f.role {|a| a.association(:role)}
53
- f.user {|a| a.association(:user)}
54
- end
55
-
56
- Factory.define :role do |f|
57
- f.rolename 'administrator'
58
- end
59
-
60
- Factory.define :comment do |f|
61
- f.body { Factory.next(:description) }
62
- f.user {|a| a.association(:user)}
63
- f.commentable {|a| a.association(:user)}
64
- end
65
-
66
- Factory.define :domain_theme do |f|
67
- f.name { Factory.next(:name) }
68
- f.uri { Factory.next(:uri) }
69
- end
70
-
71
- Factory.define :theme do |f|
72
- f.name { Factory.next(:name) }
73
- end
74
-
75
-
File without changes
File without changes
@@ -1,49 +0,0 @@
1
- module MuckControllerMacros
2
-
3
- def should_require_login(*args)
4
- args = Hash[*args]
5
- login_url = args.delete :login_url
6
- args.each do |action, verb|
7
- should "Require login for '#{action}' action" do
8
- if [:put, :delete].include?(verb) # put and delete require an id even if it is a bogus one
9
- send(verb, action, :id => 1)
10
- else
11
- send(verb, action)
12
- end
13
- assert_redirected_to(login_url)
14
- end
15
- end
16
- end
17
-
18
- def should_require_role(role, redirect_url, *actions)
19
- actions.each do |action|
20
- should "require role for '#{action}' action" do
21
- get(action)
22
- ensure_flash(/permission/i)
23
- assert_response :redirect
24
- end
25
- end
26
- end
27
-
28
- #from: http://blog.internautdesign.com/2008/9/11/more-on-custom-shoulda-macros-scoping-of-instance-variables
29
- def should_not_allow action, object, url= "/login", msg=nil
30
- msg ||= "a #{object.class.to_s.downcase}"
31
- should "not be able to #{action} #{msg}" do
32
- object = eval(object, self.send(:binding), __FILE__, __LINE__)
33
- get action, :id => object.id
34
- assert_redirected_to url
35
- end
36
- end
37
-
38
- def should_allow action, object, msg=nil
39
- msg ||= "a #{object.class.to_s.downcase}"
40
- should "be able to #{action} #{msg}" do
41
- object = eval(object, self.send(:binding), __FILE__, __LINE__)
42
- get action, :id => object.id
43
- assert_response :success
44
- end
45
- end
46
-
47
- end
48
-
49
- ActionController::TestCase.extend(MuckControllerMacros)
@@ -1,32 +0,0 @@
1
- module ShouldaFormMacros
2
- def self.should_have_form(opts)
3
- model = self.name.gsub(/ControllerTest$/, '').singularize.downcase
4
- model = model[model.rindex('::')+2..model.size] if model.include?('::')
5
- http_method, hidden_http_method = form_http_method opts[:method]
6
- should "have a #{model} form" do
7
- assert_select "form[action=?][method=#{http_method}]", eval(opts[:action]) do
8
- if hidden_http_method
9
- assert_select "input[type=hidden][name=_method][value=#{hidden_http_method}]"
10
- end
11
- opts[:fields].each do |attribute, type|
12
- attribute = attribute.is_a?(Symbol) ? "#{model}[#{attribute.to_s}]" : attribute
13
- assert_select "input[type=#{type.to_s}][name=?]", attribute
14
- end
15
- assert_select "input[type=submit]"
16
- end
17
- end
18
- end
19
-
20
- def self.form_http_method(http_method)
21
- http_method = http_method.nil? ? 'post' : http_method.to_s
22
- if http_method == "post" || http_method == "get"
23
- return http_method, nil
24
- else
25
- return "post", http_method
26
- end
27
- end
28
- end
29
-
30
- class ActiveSupport::TestCase
31
- extend ShouldaFormMacros
32
- end
@@ -1,50 +0,0 @@
1
- module ShouldaModelMacros
2
-
3
- def should_sanitize(*attributes)
4
- bad_scripts = [
5
- %|';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>|,
6
- %|'';!--"<XSS>=&{()}|,
7
- %|<SCRIPT SRC=http://ha.ckers.org/xss.js></SCRIPT>|,
8
- %|<IMG SRC="javascript:alert('XSS');">|,
9
- %|<IMG SRC=javascript:alert('XSS')>|,
10
- %|<IMG SRC=JaVaScRiPt:alert('XSS')>|,
11
- %|<IMG SRC=JaVaScRiPt:alert('XSS')>|,
12
- %|<IMG SRC=`javascript:alert("RSnake says, 'XSS'")`>|,
13
- %|<IMG """><SCRIPT>alert("XSS")</SCRIPT>">|,
14
- %|<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>|,
15
- %|<A HREF="h
16
- tt p://6&#9;6.000146.0x7.147/">XSS</A>|,
17
- %|<script>alert('message');</script>| ]
18
-
19
- klass = model_class
20
- attributes.each do |attribute|
21
- attribute = attribute.to_sym
22
- should "white list #{attribute}" do
23
- assert object = klass.find(:first), "Can't find first #{klass}"
24
- bad_scripts.each do |bad_value|
25
- object.send("#{attribute}=", bad_value)
26
- object.save
27
- clean_value = object.send("#{attribute}")
28
- assert !clean_value.include?(bad_value), "#{attribute} is not white listed. #{bad_value} made it through"
29
- end
30
- end
31
- end
32
- end
33
-
34
- def should_accept_nested_attributes_for(*attr_names)
35
- klass = self.name.gsub(/Test$/, '').constantize
36
-
37
- context "#{klass}" do
38
- attr_names.each do |association_name|
39
- should "accept nested attrs for #{association_name}" do
40
- assert klass.instance_methods.include?("#{association_name}_attributes="),
41
- "#{klass} does not accept nested attributes for #{association_name}"
42
- end
43
- end
44
- end
45
- end
46
- end
47
-
48
- class ActiveSupport::TestCase
49
- extend ShouldaModelMacros
50
- end
@@ -1,53 +0,0 @@
1
- module ShouldaPaginationMacros
2
- # Example:
3
- # context "a GET to index logged in as admin" do
4
- # setup do
5
- # login_as_admin
6
- # get :index
7
- # end
8
- # should_paginate_collection :users
9
- # should_display_pagination
10
- # end
11
- def self.should_paginate_collection(collection_name)
12
- should "paginate #{collection_name}" do
13
- assert collection = assigns(collection_name),
14
- "Controller isn't assigning to @#{collection_name.to_s}."
15
- assert_kind_of WillPaginate::Collection, collection,
16
- "@#{collection_name.to_s} isn't a WillPaginate collection."
17
- end
18
- end
19
-
20
- def self.should_display_pagination
21
- should "display pagination" do
22
- assert_select "div.pagination", { :minimum => 1 },
23
- "View isn't displaying pagination. Add <%= will_paginate @collection %>."
24
- end
25
- end
26
-
27
- # Example:
28
- # context "a GET to index not logged in as admin" do
29
- # setup { get :index }
30
- # should_not_paginate_collection :users
31
- # should_not_display_pagination
32
- # end
33
- def self.should_not_paginate_collection(collection_name)
34
- should "not paginate #{collection_name}" do
35
- assert collection = assigns(collection_name),
36
- "Controller isn't assigning to @#{collection_name.to_s}."
37
- assert_not_equal WillPaginate::Collection, collection.class,
38
- "@#{collection_name.to_s} is a WillPaginate collection."
39
- end
40
- end
41
-
42
- def self.should_not_display_pagination
43
- should "not display pagination" do
44
- assert_select "div.pagination", { :count => 0 },
45
- "View is displaying pagination. Check your logic."
46
- end
47
- end
48
- end
49
-
50
-
51
- class ActiveSupport::TestCase
52
- extend ShouldaPaginationMacros
53
- end
@@ -1,34 +0,0 @@
1
- module ShouldaPluginMacros
2
-
3
- def self.should_act_as_taggable_on_steroids
4
- klass = self.name.gsub(/Test$/, '').constantize
5
-
6
- should "include ActsAsTaggableOnSteroids methods" do
7
- assert klass.extended_by.include?(ActiveRecord::Acts::Taggable::ClassMethods)
8
- assert klass.extended_by.include?(ActiveRecord::Acts::Taggable::SingletonMethods)
9
- assert klass.include?(ActiveRecord::Acts::Taggable::InstanceMethods)
10
- end
11
-
12
- should_have_many :taggings, :tags
13
- end
14
-
15
-
16
- def self.should_act_as_list
17
- klass = self.name.gsub(/Test$/, '').constantize
18
-
19
- context "To support acts_as_list" do
20
- should_have_db_column('position', :type => :integer)
21
- end
22
-
23
- should "include ActsAsList methods" do
24
- assert klass.include?(ActiveRecord::Acts::List::InstanceMethods)
25
- end
26
-
27
- should_have_instance_methods :acts_as_list_class, :position_column, :scope_condition
28
- end
29
-
30
- end
31
-
32
- ActiveSupport::TestCase.extend(ShouldaPluginMacros)
33
- Test::Unit::TestCase.extend(ShouldaPluginMacros)
34
- ActionController::TestCase.extend(ShouldaPluginMacros)