commontator 4.11.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -5
  3. data/app/controllers/commontator/application_controller.rb +4 -4
  4. data/app/controllers/commontator/comments_controller.rb +15 -15
  5. data/app/controllers/commontator/subscriptions_controller.rb +1 -1
  6. data/app/controllers/commontator/threads_controller.rb +5 -5
  7. data/app/mailers/commontator/subscriptions_mailer.rb +25 -37
  8. data/app/models/commontator/comment.rb +11 -11
  9. data/app/models/commontator/subscription.rb +2 -2
  10. data/app/models/commontator/thread.rb +9 -9
  11. data/app/views/commontator/comments/_actions.html.erb +8 -8
  12. data/app/views/commontator/comments/_body.html.erb +1 -1
  13. data/app/views/commontator/comments/_form.html.erb +3 -3
  14. data/app/views/commontator/comments/_list.html.erb +3 -3
  15. data/app/views/commontator/comments/_show.html.erb +8 -8
  16. data/app/views/commontator/comments/_votes.html.erb +16 -16
  17. data/app/views/commontator/comments/cancel.js.erb +5 -5
  18. data/app/views/commontator/comments/create.js.erb +9 -9
  19. data/app/views/commontator/comments/delete.js.erb +7 -7
  20. data/app/views/commontator/comments/edit.js.erb +2 -2
  21. data/app/views/commontator/comments/new.js.erb +4 -4
  22. data/app/views/commontator/comments/update.js.erb +1 -1
  23. data/app/views/commontator/comments/vote.js.erb +3 -3
  24. data/app/views/commontator/shared/_thread.html.erb +6 -6
  25. data/app/views/commontator/subscriptions/_link.html.erb +5 -5
  26. data/app/views/commontator/subscriptions/subscribe.js.erb +3 -3
  27. data/app/views/commontator/subscriptions_mailer/comment_created.html.erb +6 -6
  28. data/app/views/commontator/threads/_reply.html.erb +6 -6
  29. data/app/views/commontator/threads/_show.html.erb +33 -33
  30. data/app/views/commontator/threads/_show.js.erb +7 -7
  31. data/app/views/commontator/threads/show.js.erb +6 -6
  32. data/config/initializers/commontator.rb +43 -38
  33. data/config/locales/de.yml +100 -0
  34. data/config/locales/en.yml +26 -27
  35. data/config/locales/pt-BR.yml +78 -0
  36. data/config/locales/ru.yml +25 -26
  37. data/config/locales/zh.yml +26 -27
  38. data/config/routes.rb +4 -4
  39. data/db/migrate/0_install_commontator.rb +17 -17
  40. data/lib/commontator.rb +2 -2
  41. data/lib/commontator/acts_as_commontable.rb +14 -12
  42. data/lib/commontator/acts_as_commontator.rb +5 -5
  43. data/lib/commontator/shared_helper.rb +6 -6
  44. data/lib/commontator/version.rb +1 -1
  45. data/lib/tasks/commontator_tasks.rake +2 -2
  46. data/spec/controllers/commontator/comments_controller_spec.rb +76 -75
  47. data/spec/controllers/commontator/subscriptions_controller_spec.rb +26 -27
  48. data/spec/controllers/commontator/threads_controller_spec.rb +42 -41
  49. data/spec/dummy/app/controllers/dummy_models_controller.rb +1 -1
  50. data/spec/dummy/app/views/layouts/application.html.erb +1 -2
  51. data/spec/dummy/config/application.rb +1 -1
  52. data/spec/dummy/config/environments/development.rb +1 -2
  53. data/spec/dummy/config/environments/production.rb +1 -2
  54. data/spec/dummy/config/environments/test.rb +1 -2
  55. data/spec/dummy/config/initializers/commontator.rb +7 -7
  56. data/spec/dummy/config/routes.rb +2 -3
  57. data/spec/dummy/db/development.sqlite3 +0 -0
  58. data/spec/dummy/db/migrate/1_create_dummy_models.rb +2 -3
  59. data/spec/dummy/db/migrate/2_create_dummy_users.rb +2 -3
  60. data/spec/dummy/db/migrate/3_acts_as_votable_migration.rb +4 -10
  61. data/spec/dummy/db/schema.rb +45 -48
  62. data/spec/dummy/db/test.sqlite3 +0 -0
  63. data/spec/dummy/log/development.log +413 -0
  64. data/spec/dummy/log/test.log +33690 -0
  65. data/spec/lib/commontator/commontable_config_spec.rb +4 -5
  66. data/spec/lib/commontator/commontator_config_spec.rb +4 -5
  67. data/spec/lib/commontator_spec.rb +2 -3
  68. data/spec/mailers/commontator/subscriptions_mailer_spec.rb +2 -3
  69. data/spec/models/commontator/comment_spec.rb +10 -10
  70. data/spec/rails_helper.rb +3 -2
  71. metadata +64 -44
@@ -1,30 +1,30 @@
1
- ru:
2
- activerecord:
3
- attributes:
4
- commontator/comment:
1
+ ru:
2
+ activerecord:
3
+ attributes:
4
+ commontator/comment:
5
5
  body: Комментарий
6
6
  creator: Создал
7
7
  editor: Редактировал
8
8
  thread: Обсуждение
9
- commontator/subscription:
9
+ commontator/subscription:
10
10
  subscriber: Подписчик
11
11
  thread: Обсуждение
12
- commontator/thread:
12
+ commontator/thread:
13
13
  commontable: Комментируем
14
- models:
15
- commontator/comment:
14
+ models:
15
+ commontator/comment:
16
16
  one: комментарий
17
17
  other: комментарии
18
- commontator/subscription:
18
+ commontator/subscription:
19
19
  one: подписка
20
20
  other: подписки
21
- commontator/thread:
21
+ commontator/thread:
22
22
  one: обсуждение
23
23
  other: обсуждения
24
- commontator:
24
+ commontator:
25
25
  anonymous: Аноним
26
- comment:
27
- actions:
26
+ comment:
27
+ actions:
28
28
  cancel: Отменить
29
29
  confirm_delete: "Вы уверены, что хотите удалить комментарий?"
30
30
  create: "Оставить Комментарий"
@@ -33,33 +33,32 @@ ru:
33
33
  new: "Новый Комментарий"
34
34
  undelete: Восстановить
35
35
  update: "Изменить Комментарий"
36
- errors:
36
+ errors:
37
37
  already_deleted: "Этот комментарий был удален."
38
38
  create: "Комментарий нельзя оставить потому что"
39
39
  double_posted: "этот комментарий уже есть."
40
40
  not_deleted: "Этот комментарий не удален."
41
41
  update: "Этот комментарий нельзя изменить потому что"
42
- status:
42
+ status:
43
43
  created_at: "Создан %{created_at}."
44
44
  deleted_by: "Комментарий был удален %{deleter_name}."
45
45
  updated_at: "Редактировал %{editor_name}, %{updated_at}."
46
- email:
47
- comment_created:
46
+ email:
47
+ comment_created:
48
48
  body: "%{creator_name} комментировал %{commontable_name}:"
49
49
  subject: "%{creator_name} оставил комментарий к %{commontable_name}"
50
50
  thread_link_html: "<a href=\"%{comment_url}\">Нажмите здесь</a> чтобы посмотреть все комментарии к %{commontable_name}."
51
- undisclosed_recipients: "Не указан получатель"
52
51
  require_login: "Вы должны залогиниться прежде чем оставить комментарий."
53
- subscription:
54
- actions:
52
+ subscription:
53
+ actions:
55
54
  confirm_unsubscribe: "Вы уверены, что хотите отписать от обсуждения?"
56
55
  subscribe: Подписаться
57
56
  unsubscribe: Отписаться
58
- errors:
57
+ errors:
59
58
  already_subscribed: "Вы уже подписаны на это обсуждение."
60
59
  not_subscribed: "Вы не подписаны на это обсуждение."
61
- thread:
62
- actions:
60
+ thread:
61
+ actions:
63
62
  show_all: "Показать все комментарии"
64
63
  filter: "Фильтровать комментарии"
65
64
  close: "Закрыть обсуждение"
@@ -70,10 +69,10 @@ ru:
70
69
  errors:
71
70
  already_closed: "Это обсуждение было закрыто."
72
71
  not_closed: "Это обсуждение не закрыто."
73
- status:
72
+ status:
74
73
  cannot_post: "Новый комментарии нельзя разместить в данный момент."
75
74
  closed: "Комментарии (Закрыты %{closer_name})"
76
75
  open: Комментарии
77
- time:
78
- formats:
76
+ time:
77
+ formats:
79
78
  commontator: "%b %d %Y в %I:%M%p %Z"
@@ -1,30 +1,30 @@
1
- zh:
2
- activerecord:
3
- attributes:
4
- commontator/comment:
1
+ zh:
2
+ activerecord:
3
+ attributes:
4
+ commontator/comment:
5
5
  body: "留言"
6
6
  creator: "留言者"
7
7
  editor: "編輯"
8
8
  thread: "討論"
9
- commontator/subscription:
9
+ commontator/subscription:
10
10
  subscriber: "訂閱者"
11
11
  thread: "討論"
12
- commontator/thread:
12
+ commontator/thread:
13
13
  commontable: "可以留言"
14
- models:
15
- commontator/comment:
14
+ models:
15
+ commontator/comment:
16
16
  one: "留言"
17
17
  other: "留言"
18
- commontator/subscription:
18
+ commontator/subscription:
19
19
  one: "訂閱"
20
20
  other: "訂閱"
21
- commontator/thread:
21
+ commontator/thread:
22
22
  one: "討論"
23
23
  other: "討論"
24
- commontator:
24
+ commontator:
25
25
  anonymous: "匿名"
26
- comment:
27
- actions:
26
+ comment:
27
+ actions:
28
28
  cancel: "取消"
29
29
  confirm_delete: "確定要刪除這筆留言嗎?"
30
30
  create: "發佈"
@@ -33,33 +33,32 @@ zh:
33
33
  new: "新留言"
34
34
  undelete: "未刪除"
35
35
  update: "修改留言"
36
- errors:
36
+ errors:
37
37
  already_deleted: "此留言已經被刪除了"
38
38
  create: "此留言無法發佈因為:"
39
39
  double_posted: "已經有一筆相同的留言。"
40
40
  not_deleted: "此留言未被刪除"
41
41
  update: "此留言無法被修改因為:"
42
- status:
42
+ status:
43
43
  created_at: "於%{created_at}發佈"
44
44
  deleted_by: "被%{deleter_name}刪除"
45
45
  updated_at: "最在於%{updated_at}被%{editor_name}修改"
46
- email:
47
- comment_created:
46
+ email:
47
+ comment_created:
48
48
  body: "%{creator_name}留言於%{commontable_name}"
49
49
  subject: "%{creator_name}於%{commontable_name}發佈了一則留言"
50
50
  thread_link_html: "<a href=\"%{comment_url}\">點此處</a>看%{commontable_name}的所有留言"
51
- undisclosed_recipients: "收件者"
52
51
  require_login: "你需要先登入"
53
- subscription:
54
- actions:
52
+ subscription:
53
+ actions:
55
54
  confirm_unsubscribe: "你確定要去取消訂閱此則討論嗎?"
56
55
  subscribe: "訂閱"
57
56
  unsubscribe: "取消訂閱"
58
- errors:
57
+ errors:
59
58
  already_subscribed: "你已經訂閱過了"
60
59
  not_subscribed: "你沒有訂閱過"
61
- thread:
62
- actions:
60
+ thread:
61
+ actions:
63
62
  show_all: "列出所有留言"
64
63
  filter: "過濾留言"
65
64
  close: "關閉討論"
@@ -67,13 +66,13 @@ zh:
67
66
  reopen: "回復討論"
68
67
  show: "打開留言"
69
68
  hide: "关闭留言"
70
- errors:
69
+ errors:
71
70
  already_closed: "此討論已經被關閉"
72
71
  not_closed: "此討論尚未被關閉"
73
- status:
72
+ status:
74
73
  cannot_post: "現在還不能發佈"
75
74
  closed: "留言已經被%{closer_name}關閉"
76
75
  open: 留言
77
- time:
78
- formats:
76
+ time:
77
+ formats:
79
78
  commontator: "%b %d %Y 於 %I:%M%p %Z"
data/config/routes.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  Commontator::Engine.routes.draw do
2
- resources :threads, :only => [:show] do
3
- resources :comments, :except => [:index, :destroy], :shallow => true do
2
+ resources :threads, only: [:show] do
3
+ resources :comments, except: [:index, :destroy], shallow: true do
4
4
  member do
5
5
  put 'delete'
6
6
  put 'undelete'
@@ -17,8 +17,8 @@ Commontator::Engine.routes.draw do
17
17
  put 'close'
18
18
  put 'reopen'
19
19
 
20
- put 'subscribe', :to => 'subscriptions#subscribe'
21
- put 'unsubscribe', :to => 'subscriptions#unsubscribe'
20
+ put 'subscribe', to: 'subscriptions#subscribe'
21
+ put 'unsubscribe', to: 'subscriptions#unsubscribe'
22
22
  end
23
23
  end
24
24
  end
@@ -1,38 +1,38 @@
1
- class InstallCommontator < ActiveRecord::Migration
1
+ class InstallCommontator < ActiveRecord::Migration[5.0]
2
2
  def change
3
3
  create_table :commontator_comments do |t|
4
4
  t.string :creator_type
5
5
  t.integer :creator_id
6
6
  t.string :editor_type
7
7
  t.integer :editor_id
8
- t.integer :thread_id, :null => false
9
- t.text :body, :null => false
8
+ t.integer :thread_id, null: false
9
+ t.text :body, null: false
10
10
  t.datetime :deleted_at
11
11
 
12
- t.integer :cached_votes_up, :default => 0
13
- t.integer :cached_votes_down, :default => 0
12
+ t.integer :cached_votes_up, default: 0
13
+ t.integer :cached_votes_down, default: 0
14
14
 
15
- t.timestamps
15
+ t.timestamps null: false
16
16
  end
17
17
 
18
18
  add_index :commontator_comments, [:creator_id, :creator_type, :thread_id],
19
- :name => 'index_commontator_comments_on_c_id_and_c_type_and_t_id'
19
+ name: 'index_commontator_comments_on_c_id_and_c_type_and_t_id'
20
20
  add_index :commontator_comments, [:thread_id, :created_at]
21
21
 
22
22
  add_index :commontator_comments, :cached_votes_up
23
23
  add_index :commontator_comments, :cached_votes_down
24
-
24
+
25
25
  create_table :commontator_subscriptions do |t|
26
- t.string :subscriber_type, :null => false
27
- t.integer :subscriber_id, :null => false
28
- t.integer :thread_id, :null => false
26
+ t.string :subscriber_type, null: false
27
+ t.integer :subscriber_id, null: false
28
+ t.integer :thread_id, null: false
29
29
 
30
- t.timestamps
30
+ t.timestamps null: false
31
31
  end
32
32
 
33
33
  add_index :commontator_subscriptions, [:subscriber_id, :subscriber_type, :thread_id],
34
- :unique => true,
35
- :name => 'index_commontator_subscriptions_on_s_id_and_s_type_and_t_id'
34
+ unique: true,
35
+ name: 'index_commontator_subscriptions_on_s_id_and_s_type_and_t_id'
36
36
  add_index :commontator_subscriptions, :thread_id
37
37
 
38
38
  create_table :commontator_threads do |t|
@@ -42,11 +42,11 @@ class InstallCommontator < ActiveRecord::Migration
42
42
  t.string :closer_type
43
43
  t.integer :closer_id
44
44
 
45
- t.timestamps
45
+ t.timestamps null: false
46
46
  end
47
47
 
48
48
  add_index :commontator_threads, [:commontable_id, :commontable_type],
49
- :unique => true,
50
- :name => 'index_commontator_threads_on_c_id_and_c_type'
49
+ unique: true,
50
+ name: 'index_commontator_threads_on_c_id_and_c_type'
51
51
  end
52
52
  end
data/lib/commontator.rb CHANGED
@@ -128,8 +128,8 @@ module Commontator
128
128
  commontator_config(user).user_avatar_proc.call(user, view)
129
129
  end
130
130
 
131
- def self.commontator_mentions(user, search_phrase)
132
- commontator_config(user).user_mentions_proc.call(user, search_phrase)
131
+ def self.commontator_mentions(user, thread, search_phrase)
132
+ commontator_config(user).user_mentions_proc.call(user, thread, search_phrase)
133
133
  end
134
134
 
135
135
  def self.commontable_name(commontable)
@@ -7,7 +7,7 @@ module Commontator
7
7
  base.is_commontable = false
8
8
  base.extend(ClassMethods)
9
9
  end
10
-
10
+
11
11
  module ClassMethods
12
12
  def acts_as_commontable(options = {})
13
13
  class_eval do
@@ -15,24 +15,26 @@ module Commontator
15
15
  self.commontable_config = Commontator::CommontableConfig.new(options)
16
16
  self.is_commontable = true
17
17
 
18
- has_one :thread, :as => :commontable,
19
- :class_name => 'Commontator::Thread'
18
+ has_one :thread, as: :commontable,
19
+ class_name: 'Commontator::Thread'
20
20
 
21
21
  validates_presence_of :thread
22
22
 
23
- def thread_with_commontator
24
- @thread ||= thread_without_commontator
25
- return @thread unless @thread.nil?
23
+ prepend ThreadWithCommontator
24
+ end
25
+ end
26
26
 
27
- @thread = build_thread
28
- @thread.save if persisted?
29
- @thread
30
- end
27
+ module ThreadWithCommontator
28
+ def thread
29
+ @thread ||= super
30
+ return @thread unless @thread.nil?
31
31
 
32
- alias_method_chain :thread, :commontator
32
+ @thread = build_thread
33
+ @thread.save if persisted?
34
+ @thread
33
35
  end
34
36
  end
35
-
37
+
36
38
  alias_method :acts_as_commentable, :acts_as_commontable
37
39
  end
38
40
  end
@@ -15,11 +15,11 @@ module Commontator
15
15
  self.commontator_config = Commontator::CommontatorConfig.new(options)
16
16
  self.is_commontator = true
17
17
 
18
- has_many :comments, :as => :creator,
19
- :class_name => 'Commontator::Comment'
20
- has_many :subscriptions, :as => :subscriber,
21
- :class_name => 'Commontator::Subscription',
22
- :dependent => :destroy
18
+ has_many :comments, as: :creator,
19
+ class_name: 'Commontator::Comment'
20
+ has_many :subscriptions, as: :subscriber,
21
+ class_name: 'Commontator::Subscription',
22
+ dependent: :destroy
23
23
  end
24
24
  end
25
25
 
@@ -4,9 +4,9 @@ module Commontator
4
4
  user = Commontator.current_user_proc.call(self)
5
5
  thread = commontable.thread
6
6
 
7
- render(:partial => 'commontator/shared/thread',
8
- :locals => { :thread => thread,
9
- :user => user }).html_safe
7
+ render(partial: 'commontator/shared/thread',
8
+ locals: { thread: thread,
9
+ user: user }).html_safe
10
10
  end
11
11
 
12
12
  def commontator_gravatar_image_tag(user, border = 1, options = {})
@@ -17,9 +17,9 @@ module Commontator
17
17
  hash = Digest::MD5.hexdigest(email)
18
18
  url = "http#{base}.gravatar.com/avatar/#{hash}?#{options.to_query}"
19
19
 
20
- image_tag(url, { :alt => name,
21
- :title => name,
22
- :border => border })
20
+ image_tag(url, { alt: name,
21
+ title: name,
22
+ border: border })
23
23
  end
24
24
  end
25
25
  end
@@ -1,3 +1,3 @@
1
1
  module Commontator
2
- VERSION = "4.11.1"
2
+ VERSION = "5.0.0"
3
3
  end
@@ -10,7 +10,7 @@ namespace :commontator do
10
10
  if File.exists?(File.expand_path(File.basename(file), 'config/initializers'))
11
11
  print "NOTE: Initializer #{File.basename(file)} from commontator has been skipped. Initializer with the same name already exists.\n"
12
12
  else
13
- cp file, 'config/initializers', :verbose => false
13
+ cp file, 'config/initializers', verbose: false
14
14
  print "Copied initializer #{File.basename(file)} from commontator\n"
15
15
  end
16
16
  end
@@ -23,7 +23,7 @@ namespace :commontator do
23
23
  desc "Copy #{name} from commontator to application"
24
24
  task name.to_sym do
25
25
  namespace = path.start_with?('app') ? '/commontator' : ''
26
- cp_r File.expand_path("../../../#{path}#{namespace}", __FILE__), path, :verbose => false
26
+ cp_r File.expand_path("../../../#{path}#{namespace}", __FILE__), path, verbose: false
27
27
  print "Copied #{name} from commontator\n"
28
28
  end
29
29
  end
@@ -16,11 +16,11 @@ module Commontator
16
16
  end
17
17
 
18
18
  it "won't get new unless authorized" do
19
- get :new, :thread_id => @thread.id
19
+ get :new, params: { thread_id: @thread.id }
20
20
  expect(response).to have_http_status(:forbidden)
21
21
 
22
22
  sign_in @user
23
- get :new, :thread_id => @thread.id
23
+ get :new, params: { thread_id: @thread.id }
24
24
  expect(response).to have_http_status(:forbidden)
25
25
  end
26
26
 
@@ -28,19 +28,19 @@ module Commontator
28
28
  sign_in @user
29
29
 
30
30
  @user.can_read = true
31
- get :new, :thread_id => @thread.id
31
+ get :new, params: { thread_id: @thread.id }
32
32
  expect(response).to redirect_to @thread
33
33
  expect(assigns(:comment).errors).to be_empty
34
34
 
35
35
  @user.can_read = false
36
36
  @user.can_edit = true
37
- get :new, :thread_id => @thread.id
37
+ get :new, params: { thread_id: @thread.id }
38
38
  expect(response).to redirect_to @thread
39
39
  expect(assigns(:comment).errors).to be_empty
40
40
 
41
41
  @user.can_edit = false
42
42
  @user.is_admin = true
43
- get :new, :thread_id => @thread.id
43
+ get :new, params: { thread_id: @thread.id }
44
44
  expect(response).to redirect_to @thread
45
45
  expect(assigns(:comment).errors).to be_empty
46
46
  end
@@ -49,18 +49,18 @@ module Commontator
49
49
  attributes = Hash.new
50
50
  attributes[:body] = 'Something else'
51
51
 
52
- post :create, :thread_id => @thread.id, :comment => attributes
52
+ post :create, params: { thread_id: @thread.id, comment: attributes }
53
53
  expect(response).to have_http_status(:forbidden)
54
54
 
55
55
  sign_in @user
56
- post :create, :thread_id => @thread.id, :comment => attributes
56
+ post :create, params: { thread_id: @thread.id, comment: attributes }
57
57
  expect(response).to have_http_status(:forbidden)
58
58
 
59
59
  @user.can_read = true
60
60
  @user.can_edit = true
61
61
  @user.is_admin = true
62
62
  expect(@thread.close).to eq true
63
- post :create, :thread_id => @thread.id, :comment => attributes
63
+ post :create, params: { thread_id: @thread.id, comment: attributes }
64
64
  expect(response).to have_http_status(:forbidden)
65
65
  end
66
66
 
@@ -70,7 +70,7 @@ module Commontator
70
70
 
71
71
  attributes[:body] = 'Something else'
72
72
  @user.can_read = true
73
- post :create, :thread_id => @thread.id, :comment => attributes
73
+ post :create, params: { thread_id: @thread.id, comment: attributes }
74
74
  expect(response).to redirect_to @thread
75
75
  expect(assigns(:comment).errors).to be_empty
76
76
  expect(assigns(:comment).body).to eq 'Something else'
@@ -81,7 +81,7 @@ module Commontator
81
81
  attributes[:body] = 'Another thing'
82
82
  @user.can_read = false
83
83
  @user.can_edit = true
84
- post :create, :thread_id => @thread.id, :comment => attributes
84
+ post :create, params: { thread_id: @thread.id, comment: attributes }
85
85
  expect(response).to redirect_to @thread
86
86
  expect(assigns(:comment).errors).to be_empty
87
87
  expect(assigns(:comment).body).to eq 'Another thing'
@@ -92,7 +92,7 @@ module Commontator
92
92
  attributes[:body] = 'And this too'
93
93
  @user.can_edit = false
94
94
  @user.is_admin = true
95
- post :create, :thread_id => @thread.id, :comment => attributes
95
+ post :create, params: { thread_id: @thread.id, comment: attributes }
96
96
  expect(response).to redirect_to @thread
97
97
  expect(assigns(:comment).errors).to be_empty
98
98
  expect(assigns(:comment).body).to eq 'And this too'
@@ -107,12 +107,12 @@ module Commontator
107
107
  attributes = Hash.new
108
108
 
109
109
  attributes[:body] = 'Something'
110
- post :create, :thread_id => @thread.id, :comment => attributes
110
+ post :create, params: { thread_id: @thread.id, comment: attributes }
111
111
  assert_redirected_to @thread
112
112
  expect(assigns(:comment).errors).not_to be_empty
113
113
 
114
114
  attributes[:body] = 'Something else'
115
- post :create, :thread_id => @thread.id, :comment => attributes
115
+ post :create, params: { thread_id: @thread.id, comment: attributes }
116
116
  expect(response).to redirect_to @thread
117
117
  expect(assigns(:comment).errors).to be_empty
118
118
  expect(assigns(:comment).body).to eq 'Something else'
@@ -121,17 +121,17 @@ module Commontator
121
121
  expect(assigns(:comment).thread).to eq @thread
122
122
 
123
123
  attributes[:body] = 'Something else'
124
- post :create, :thread_id => @thread.id, :comment => attributes
124
+ post :create, params: { thread_id: @thread.id, comment: attributes }
125
125
  expect(response).to redirect_to @thread
126
126
  expect(assigns(:comment).errors).not_to be_empty
127
127
  end
128
128
 
129
129
  it "won't edit unless authorized" do
130
- get :edit, :id => @comment.id
130
+ get :edit, params: { id: @comment.id }
131
131
  expect(response).to have_http_status(:forbidden)
132
132
 
133
133
  sign_in @user
134
- get :edit, :id => @comment.id
134
+ get :edit, params: { id: @comment.id }
135
135
  expect(response).to have_http_status(:forbidden)
136
136
 
137
137
  user2 = DummyUser.create
@@ -139,7 +139,7 @@ module Commontator
139
139
  user2.can_edit = true
140
140
  user2.is_admin = true
141
141
  sign_in user2
142
- get :edit, :id => @comment.id
142
+ get :edit, params: { id: @comment.id }
143
143
  expect(response).to have_http_status(:forbidden)
144
144
 
145
145
  @user.can_read = true
@@ -151,7 +151,7 @@ module Commontator
151
151
  comment2.creator = @user
152
152
  comment2.body = 'Something else'
153
153
  comment2.save!
154
- get :edit, :id => @comment.id
154
+ get :edit, params: { id: @comment.id }
155
155
  expect(response).to have_http_status(:forbidden)
156
156
  end
157
157
 
@@ -159,19 +159,19 @@ module Commontator
159
159
  sign_in @user
160
160
 
161
161
  @user.can_read = true
162
- get :edit, :id => @comment.id
162
+ get :edit, params: { id: @comment.id }
163
163
  expect(response).to redirect_to @thread
164
164
  expect(assigns(:comment).errors).to be_empty
165
165
 
166
166
  @user.can_read = false
167
167
  @user.can_edit = true
168
- get :edit, :id => @comment.id
168
+ get :edit, params: { id: @comment.id }
169
169
  expect(response).to redirect_to @thread
170
170
  expect(assigns(:comment).errors).to be_empty
171
171
 
172
172
  @user.can_edit = false
173
173
  @user.is_admin = true
174
- get :edit, :id => @comment.id
174
+ get :edit, params: { id: @comment.id }
175
175
  expect(response).to redirect_to @thread
176
176
  expect(assigns(:comment).errors).to be_empty
177
177
  end
@@ -180,14 +180,14 @@ module Commontator
180
180
  attributes = Hash.new
181
181
  attributes[:body] = 'Something else'
182
182
 
183
- put :update, :id => @comment.id, :comment => attributes
183
+ put :update, params: { id: @comment.id, comment: attributes }
184
184
  expect(response).to have_http_status(:forbidden)
185
185
  @comment.reload
186
186
  expect(@comment.body).to eq 'Something'
187
187
  expect(@comment.editor).to be_nil
188
188
 
189
189
  sign_in @user
190
- put :update, :id => @comment.id, :comment => attributes
190
+ put :update, params: { id: @comment.id, comment: attributes }
191
191
  expect(response).to have_http_status(:forbidden)
192
192
  @comment.reload
193
193
  expect(@comment.body).to eq 'Something'
@@ -198,7 +198,7 @@ module Commontator
198
198
  user2.can_edit = true
199
199
  user2.is_admin = true
200
200
  sign_in user2
201
- put :update, :id => @comment.id, :comment => attributes
201
+ put :update, params: { id: @comment.id, comment: attributes }
202
202
  expect(response).to have_http_status(:forbidden)
203
203
  @comment.reload
204
204
  expect(@comment.body).to eq 'Something'
@@ -213,7 +213,7 @@ module Commontator
213
213
  comment2.creator = @user
214
214
  comment2.body = 'Something else'
215
215
  comment2.save!
216
- put :update, :id => @comment.id, :comment => attributes
216
+ put :update, params: { id: @comment.id, comment: attributes }
217
217
  expect(response).to have_http_status(:forbidden)
218
218
  @comment.reload
219
219
  expect(@comment.body).to eq 'Something'
@@ -226,42 +226,42 @@ module Commontator
226
226
  attributes[:body] = 'Something else'
227
227
 
228
228
  @user.can_read = true
229
- put :update, :id => @comment.id, :comment => attributes
229
+ put :update, params: { id: @comment.id, comment: attributes }
230
230
  expect(response).to redirect_to @thread
231
231
  expect(assigns(:comment).errors).to be_empty
232
232
  expect(assigns(:comment).editor).to eq @user
233
233
 
234
234
  @user.can_read = false
235
235
  @user.can_edit = true
236
- put :update, :id => @comment.id, :comment => attributes
236
+ put :update, params: { id: @comment.id, comment: attributes }
237
237
  expect(response).to redirect_to @thread
238
238
  expect(assigns(:comment).errors).to be_empty
239
239
  expect(assigns(:comment).editor).to eq @user
240
240
 
241
241
  @user.can_edit = false
242
242
  @user.is_admin = true
243
- put :update, :id => @comment.id, :comment => attributes
243
+ put :update, params: { id: @comment.id, comment: attributes }
244
244
  expect(response).to redirect_to @thread
245
245
  expect(assigns(:comment).errors).to be_empty
246
246
  expect(assigns(:comment).editor).to eq @user
247
247
  end
248
248
 
249
249
  it "won't delete unless authorized and not deleted" do
250
- put :delete, :id => @comment.id
250
+ put :delete, params: { id: @comment.id }
251
251
  expect(response).to have_http_status(:forbidden)
252
252
  @comment.reload
253
253
  expect(@comment.is_deleted?).to eq false
254
254
 
255
255
  sign_in @user
256
256
 
257
- put :delete, :id => @comment.id
257
+ put :delete, params: { id: @comment.id }
258
258
  expect(response).to have_http_status(:forbidden)
259
259
  @comment.reload
260
260
  expect(@comment.is_deleted?).to eq false
261
261
 
262
262
  @user.can_read = true
263
263
  expect(@comment.delete_by(@user)).to eq true
264
- put :delete, :id => @comment.id
264
+ put :delete, params: { id: @comment.id }
265
265
  expect(response).to redirect_to @thread
266
266
  expect(assigns(:comment).errors).not_to be_empty
267
267
 
@@ -271,7 +271,7 @@ module Commontator
271
271
  comment2.body = 'Something else'
272
272
  comment2.save!
273
273
  expect(@comment.undelete_by(@user)).to eq true
274
- put :delete, :id => @comment.id
274
+ put :delete, params: { id: @comment.id }
275
275
  expect(response).to have_http_status(:forbidden)
276
276
  @comment.reload
277
277
  expect(@comment.is_deleted?).to eq false
@@ -281,7 +281,7 @@ module Commontator
281
281
  sign_in @user
282
282
 
283
283
  @user.can_read = true
284
- put :delete, :id => @comment.id
284
+ put :delete, params: { id: @comment.id }
285
285
  expect(response).to redirect_to @thread
286
286
  expect(assigns(:comment).errors).to be_empty
287
287
  expect(assigns(:comment).is_deleted?).to eq true
@@ -297,7 +297,7 @@ module Commontator
297
297
 
298
298
  expect(assigns(:comment).undelete_by(@user)).to eq true
299
299
  user2.can_edit = true
300
- put :delete, :id => @comment.id
300
+ put :delete, params: { id: @comment.id }
301
301
  expect(response).to redirect_to @thread
302
302
  expect(assigns(:comment).errors).to be_empty
303
303
  expect(assigns(:comment).is_deleted?).to eq true
@@ -306,7 +306,7 @@ module Commontator
306
306
  expect(assigns(:comment).undelete_by(@user)).to eq true
307
307
  user2.can_edit = false
308
308
  user2.is_admin = true
309
- put :delete, :id => @comment.id
309
+ put :delete, params: { id: @comment.id }
310
310
  expect(response).to redirect_to @thread
311
311
  expect(assigns(:comment).errors).to be_empty
312
312
  expect(assigns(:comment).is_deleted?).to eq true
@@ -315,21 +315,21 @@ module Commontator
315
315
 
316
316
  it "won't undelete unless authorized and deleted" do
317
317
  expect(@comment.delete_by(@user)).to eq true
318
- put :undelete, :id => @comment.id
318
+ put :undelete, params: { id: @comment.id }
319
319
  expect(response).to have_http_status(:forbidden)
320
320
  @comment.reload
321
321
  expect(@comment.is_deleted?).to eq true
322
322
 
323
323
  sign_in @user
324
324
 
325
- put :undelete, :id => @comment.id
325
+ put :undelete, params: { id: @comment.id }
326
326
  expect(response).to have_http_status(:forbidden)
327
327
  @comment.reload
328
328
  expect(@comment.is_deleted?).to eq true
329
329
 
330
330
  @user.can_read = true
331
331
  expect(@comment.undelete_by(@user)).to eq true
332
- put :undelete, :id => @comment.id
332
+ put :undelete, params: { id: @comment.id }
333
333
  expect(response).to redirect_to @thread
334
334
  expect(assigns(:comment).errors).not_to be_empty
335
335
 
@@ -338,7 +338,7 @@ module Commontator
338
338
  user2.can_edit = true
339
339
  user2.is_admin = true
340
340
  expect(@comment.delete_by(user2)).to eq true
341
- put :undelete, :id => @comment.id
341
+ put :undelete, params: { id: @comment.id }
342
342
  expect(response).to have_http_status(:forbidden)
343
343
  @comment.reload
344
344
  expect(@comment.is_deleted?).to eq true
@@ -350,7 +350,7 @@ module Commontator
350
350
  comment2.save!
351
351
  expect(@comment.undelete_by(@user)).to eq true
352
352
  expect(@comment.delete_by(@user)).to eq true
353
- put :undelete, :id => @comment.id
353
+ put :undelete, params: { id: @comment.id }
354
354
  expect(response).to have_http_status(:forbidden)
355
355
  @comment.reload
356
356
  expect(@comment.is_deleted?).to eq true
@@ -361,7 +361,7 @@ module Commontator
361
361
 
362
362
  expect(@comment.delete_by(@user)).to eq true
363
363
  @user.can_read = true
364
- put :undelete, :id => @comment.id
364
+ put :undelete, params: { id: @comment.id }
365
365
  expect(response).to redirect_to @thread
366
366
  expect(assigns(:comment).errors).to be_empty
367
367
  expect(assigns(:comment).is_deleted?).to eq false
@@ -376,7 +376,7 @@ module Commontator
376
376
 
377
377
  expect(assigns(:comment).delete_by(@user)).to eq true
378
378
  user2.can_edit = true
379
- put :undelete, :id => @comment.id
379
+ put :undelete, params: { id: @comment.id }
380
380
  expect(response).to redirect_to @thread
381
381
  expect(assigns(:comment).errors).to be_empty
382
382
  expect(assigns(:comment).is_deleted?).to eq false
@@ -384,14 +384,14 @@ module Commontator
384
384
  expect(assigns(:comment).delete_by(@user)).to eq true
385
385
  user2.can_edit = false
386
386
  user2.is_admin = true
387
- put :undelete, :id => @comment.id
387
+ put :undelete, params: { id: @comment.id }
388
388
  expect(response).to redirect_to @thread
389
389
  expect(assigns(:comment).errors).to be_empty
390
390
  expect(assigns(:comment).is_deleted?).to eq false
391
391
  end
392
392
 
393
393
  it "won't upvote unless authorized" do
394
- put :upvote, :id => @comment.id
394
+ put :upvote, params: { id: @comment.id }
395
395
  expect(response).to have_http_status(:forbidden)
396
396
  @comment.reload
397
397
  expect(@comment.get_upvotes).to be_empty
@@ -399,7 +399,7 @@ module Commontator
399
399
 
400
400
  sign_in @user
401
401
  @user.can_read = true
402
- put :upvote, :id => @comment.id
402
+ put :upvote, params: { id: @comment.id }
403
403
  expect(response).to have_http_status(:forbidden)
404
404
  @comment.reload
405
405
  expect(@comment.get_upvotes).to be_empty
@@ -407,7 +407,7 @@ module Commontator
407
407
 
408
408
  user2 = DummyUser.create
409
409
  sign_in user2
410
- put :upvote, :id => @comment.id
410
+ put :upvote, params: { id: @comment.id }
411
411
  expect(response).to have_http_status(:forbidden)
412
412
  @comment.reload
413
413
  expect(@comment.get_upvotes).to be_empty
@@ -419,26 +419,26 @@ module Commontator
419
419
  user2.can_read = true
420
420
  sign_in user2
421
421
 
422
- put :upvote, :id => @comment.id
422
+ put :upvote, params: { id: @comment.id }
423
423
  expect(response).to redirect_to @thread
424
424
  expect(assigns(:comment).get_upvotes.count).to eq 1
425
425
  expect(assigns(:comment).get_downvotes).to be_empty
426
426
 
427
- put :upvote, :id => @comment.id
427
+ put :upvote, params: { id: @comment.id }
428
428
  expect(response).to redirect_to @thread
429
429
  expect(assigns(:comment).get_upvotes.count).to eq 1
430
430
  expect(assigns(:comment).get_downvotes).to be_empty
431
431
 
432
432
  expect(@comment.downvote_from(user2)).to eq true
433
433
 
434
- put :upvote, :id => @comment.id
434
+ put :upvote, params: { id: @comment.id }
435
435
  expect(response).to redirect_to @thread
436
436
  expect(assigns(:comment).get_upvotes.count).to eq 1
437
437
  expect(assigns(:comment).get_downvotes).to be_empty
438
438
  end
439
439
 
440
440
  it "won't downvote unless authorized" do
441
- put :downvote, :id => @comment.id
441
+ put :downvote, params: { id: @comment.id }
442
442
  expect(response).to have_http_status(:forbidden)
443
443
  @comment.reload
444
444
  expect(@comment.get_upvotes).to be_empty
@@ -446,7 +446,7 @@ module Commontator
446
446
 
447
447
  sign_in @user
448
448
  @user.can_read = true
449
- put :downvote, :id => @comment.id
449
+ put :downvote, params: { id: @comment.id }
450
450
  expect(response).to have_http_status(:forbidden)
451
451
  @comment.reload
452
452
  expect(@comment.get_upvotes).to be_empty
@@ -454,7 +454,7 @@ module Commontator
454
454
 
455
455
  user2 = DummyUser.create
456
456
  sign_in user2
457
- put :downvote, :id => @comment.id
457
+ put :downvote, params: { id: @comment.id }
458
458
  expect(response).to have_http_status(:forbidden)
459
459
  @comment.reload
460
460
  expect(@comment.get_upvotes).to be_empty
@@ -466,19 +466,19 @@ module Commontator
466
466
  user2.can_read = true
467
467
  sign_in user2
468
468
 
469
- put :downvote, :id => @comment.id
469
+ put :downvote, params: { id: @comment.id }
470
470
  expect(response).to redirect_to @thread
471
471
  expect(@comment.get_upvotes).to be_empty
472
472
  expect(@comment.get_downvotes.count).to eq 1
473
473
 
474
- put :downvote, :id => @comment.id
474
+ put :downvote, params: { id: @comment.id }
475
475
  expect(response).to redirect_to @thread
476
476
  expect(@comment.get_upvotes).to be_empty
477
477
  expect(@comment.get_downvotes.count).to eq 1
478
478
 
479
479
  expect(@comment.upvote_from(user2)).to eq true
480
480
 
481
- put :downvote, :id => @comment.id
481
+ put :downvote, params: { id: @comment.id }
482
482
  expect(response).to redirect_to @thread
483
483
  expect(@comment.get_upvotes).to be_empty
484
484
  expect(@comment.get_downvotes.count).to eq 1
@@ -487,7 +487,7 @@ module Commontator
487
487
  it "won't unvote unless authorized" do
488
488
  expect(@comment.upvote_from(@user)).to eq true
489
489
 
490
- put :unvote, :id => @comment.id
490
+ put :unvote, params: { id: @comment.id }
491
491
  expect(response).to have_http_status(:forbidden)
492
492
  @comment.reload
493
493
  expect(@comment.get_upvotes.count).to eq 1
@@ -495,7 +495,7 @@ module Commontator
495
495
 
496
496
  sign_in @user
497
497
  @user.can_read = true
498
- put :unvote, :id => @comment.id
498
+ put :unvote, params: { id: @comment.id }
499
499
  expect(response).to have_http_status(:forbidden)
500
500
  @comment.reload
501
501
  expect(@comment.get_upvotes.count).to eq 1
@@ -503,7 +503,7 @@ module Commontator
503
503
 
504
504
  user2 = DummyUser.create
505
505
  sign_in user2
506
- put :unvote, :id => @comment.id
506
+ put :unvote, params: { id: @comment.id }
507
507
  expect(response).to have_http_status(:forbidden)
508
508
  @comment.reload
509
509
  expect(@comment.get_upvotes.count).to eq 1
@@ -516,18 +516,18 @@ module Commontator
516
516
  sign_in user2
517
517
 
518
518
  expect(@comment.upvote_from(user2)).to eq true
519
- put :unvote, :id => @comment.id
519
+ put :unvote, params: { id: @comment.id }
520
520
  expect(response).to redirect_to @thread
521
521
  expect(assigns(:comment).get_upvotes).to be_empty
522
522
  expect(assigns(:comment).get_downvotes).to be_empty
523
523
 
524
- put :unvote, :id => @comment.id
524
+ put :unvote, params: { id: @comment.id }
525
525
  expect(response).to redirect_to @thread
526
526
  expect(assigns(:comment).get_upvotes).to be_empty
527
527
  expect(assigns(:comment).get_downvotes).to be_empty
528
528
 
529
529
  expect(@comment.downvote_from(user2)).to eq true
530
- put :unvote, :id => @comment.id
530
+ put :unvote, params: { id: @comment.id }
531
531
  expect(response).to redirect_to @thread
532
532
  expect(assigns(:comment).get_upvotes).to be_empty
533
533
  expect(assigns(:comment).get_downvotes).to be_empty
@@ -540,10 +540,9 @@ module Commontator
540
540
  @user.can_read = true
541
541
  sign_in @user
542
542
 
543
- attributes = { :body => 'Something else' }
544
- expect {
545
- post :create, :thread_id => @thread.id, :comment => attributes
546
- }.not_to change{ ActionMailer::Base.deliveries.count }
543
+ attributes = { body: 'Something else' }
544
+ expect_any_instance_of(ActionMailer::MessageDelivery).not_to receive(:deliver_later)
545
+ post :create, params: { thread_id: @thread.id, comment: attributes }
547
546
  expect(assigns(:comment).errors).to be_empty
548
547
  end
549
548
 
@@ -555,10 +554,9 @@ module Commontator
555
554
  @user.can_read = true
556
555
  sign_in @user
557
556
 
558
- attributes = { :body => 'Something else' }
559
- expect {
560
- post :create, :thread_id => @thread.id, :comment => attributes
561
- }.to change{ ActionMailer::Base.deliveries.count }.by(1)
557
+ attributes = { body: 'Something else' }
558
+ expect_any_instance_of(ActionMailer::MessageDelivery).to receive(:deliver_later)
559
+ post :create, params: { thread_id: @thread.id, comment: attributes }
562
560
  expect(assigns(:comment).errors).to be_empty
563
561
  end
564
562
 
@@ -567,9 +565,11 @@ module Commontator
567
565
  let!(:other_user) { DummyUser.create }
568
566
 
569
567
  let(:attributes) { { body: 'some comment' } }
570
- let(:call_request) { post :create, thread_id: @thread.id,
571
- comment: attributes,
572
- mentioned_ids: [user_to_subscribe.id] }
568
+ let(:call_request) do
569
+ post :create, params: { thread_id: @thread.id,
570
+ comment: attributes,
571
+ mentioned_ids: [user_to_subscribe.id] }
572
+ end
573
573
 
574
574
  before do
575
575
  @user.can_read = true
@@ -587,7 +587,8 @@ module Commontator
587
587
  end
588
588
 
589
589
  it 'does not send subscription emails' do
590
- expect{ call_request }.not_to change{ ActionMailer::Base.deliveries.count }
590
+ expect_any_instance_of(ActionMailer::MessageDelivery).not_to receive(:deliver_later)
591
+ call_request
591
592
  end
592
593
  end
593
594
 
@@ -603,10 +604,10 @@ module Commontator
603
604
  end
604
605
 
605
606
  it 'sends a subscription email' do
606
- expect{ call_request }.to change{ ActionMailer::Base.deliveries.count }.by(1)
607
+ expect_any_instance_of(ActionMailer::MessageDelivery).to receive(:deliver_later)
608
+ call_request
607
609
  end
608
610
  end
609
611
  end
610
612
  end
611
613
  end
612
-