merit 3.0.1 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +3 -20
  3. data/NEWS.md +32 -0
  4. data/README.md +29 -10
  5. data/Rakefile +13 -1
  6. data/app/models/merit/badge.rb +2 -19
  7. data/lib/merit.rb +18 -50
  8. data/lib/merit/{rules_badge_methods.rb → badge_rules_methods.rb} +0 -0
  9. data/lib/merit/base_target_finder.rb +1 -6
  10. data/lib/merit/{model_additions.rb → class_methods.rb} +2 -19
  11. data/lib/merit/controller_extensions.rb +4 -22
  12. data/lib/{generators → merit/generators}/active_record/install_generator.rb +8 -8
  13. data/lib/{generators → merit/generators}/active_record/merit_generator.rb +4 -4
  14. data/lib/{generators → merit/generators}/active_record/remove_generator.rb +5 -5
  15. data/lib/{generators/active_record/templates/add_merit_fields_to_model.rb → merit/generators/active_record/templates/add_merit_fields_to_model.erb} +0 -0
  16. data/lib/{generators/active_record/templates/create_badges_sashes.rb → merit/generators/active_record/templates/create_badges_sashes.erb} +0 -0
  17. data/lib/{generators/active_record/templates/create_merit_actions.rb → merit/generators/active_record/templates/create_merit_actions.erb} +2 -0
  18. data/lib/{generators/active_record/templates/create_merit_activity_logs.rb → merit/generators/active_record/templates/create_merit_activity_logs.erb} +0 -0
  19. data/lib/{generators/active_record/templates/create_sashes.rb → merit/generators/active_record/templates/create_sashes.erb} +0 -0
  20. data/lib/{generators/active_record/templates/create_scores_and_points.rb → merit/generators/active_record/templates/create_scores_and_points.erb} +1 -1
  21. data/lib/{generators/active_record/templates/remove_merit_fields_from_model.rb → merit/generators/active_record/templates/remove_merit_fields_from_model.erb} +0 -0
  22. data/lib/{generators/active_record/templates/remove_merit_tables.rb → merit/generators/active_record/templates/remove_merit_tables.erb} +0 -0
  23. data/lib/merit/generators/install_generator.rb +21 -0
  24. data/lib/{generators/merit → merit/generators}/merit_generator.rb +7 -2
  25. data/lib/{generators/merit → merit/generators}/remove_generator.rb +7 -2
  26. data/lib/{generators/merit/templates/merit.rb → merit/generators/templates/merit.erb} +13 -14
  27. data/lib/{generators/merit/templates/merit_badge_rules.rb → merit/generators/templates/merit_badge_rules.erb} +0 -0
  28. data/lib/{generators/merit/templates/merit_point_rules.rb → merit/generators/templates/merit_point_rules.erb} +0 -0
  29. data/lib/{generators/merit/templates/merit_rank_rules.rb → merit/generators/templates/merit_rank_rules.erb} +0 -0
  30. data/lib/merit/judge.rb +6 -5
  31. data/{app/models/merit/action.rb → lib/merit/models/action_concern.rb} +12 -10
  32. data/lib/merit/models/active_record/action.rb +11 -0
  33. data/lib/merit/models/active_record/{merit/activity_log.rb → activity_log.rb} +4 -6
  34. data/lib/merit/models/active_record/{merit/badges_sash.rb → badges_sash.rb} +4 -4
  35. data/lib/merit/models/active_record/{merit/sash.rb → sash.rb} +5 -2
  36. data/lib/merit/models/active_record/{merit/score.rb → score.rb} +4 -1
  37. data/lib/merit/models/badges_sash_concern.rb +13 -0
  38. data/lib/merit/models/base/badges_sash.rb +1 -1
  39. data/lib/merit/models/base/sash.rb +1 -1
  40. data/lib/merit/models/sash_concern.rb +53 -0
  41. data/lib/merit/{rules_points_methods.rb → point_rules_methods.rb} +0 -0
  42. data/lib/merit/{rules_rank_methods.rb → rank_rules_methods.rb} +3 -18
  43. data/merit.gemspec +7 -5
  44. data/test/dummy/app/controllers/comments_controller.rb +1 -1
  45. data/test/dummy/app/controllers/registrations_controller.rb +1 -1
  46. data/test/dummy/app/models/address.rb +1 -12
  47. data/test/dummy/app/models/comment.rb +3 -25
  48. data/test/dummy/app/models/user.rb +1 -18
  49. data/test/dummy/config/application.rb +8 -10
  50. data/test/dummy/config/application_api_only.rb +28 -0
  51. data/test/dummy/config/environment_api_only.rb +7 -0
  52. data/test/dummy/config/initializers/new_framework_defaults.rb +3 -0
  53. data/test/dummy/db/migrate/20130329224406_create_merit_actions.rb +2 -0
  54. data/test/dummy/db/schema.rb +56 -59
  55. data/test/integration/navigation_test.rb +3 -3
  56. data/test/test_helper.rb +11 -12
  57. data/test/unit/base_target_finder_test.rb +7 -26
  58. data/test/unit/merit_unit_test.rb +13 -17
  59. data/test/unit/rule_unit_test.rb +15 -8
  60. data/test/unit/rules_matcher_test.rb +9 -6
  61. data/test/unit/sash_finder_test.rb +5 -5
  62. data/test/unit/sash_test.rb +16 -0
  63. data/test/unit/score_test.rb +1 -1
  64. data/test/unit/target_finder_test.rb +13 -13
  65. metadata +63 -73
  66. data/UPGRADING.md +0 -256
  67. data/lib/generators/active_record/templates/add_target_data_to_merit_actions.rb +0 -5
  68. data/lib/generators/active_record/upgrade_generator.rb +0 -40
  69. data/lib/generators/merit/install_generator.rb +0 -16
  70. data/lib/generators/merit/upgrade_generator.rb +0 -7
  71. data/lib/merit/models/active_record/merit/action.rb +0 -12
  72. data/lib/merit/models/mongoid/merit/action.rb +0 -18
  73. data/lib/merit/models/mongoid/merit/activity_log.rb +0 -11
  74. data/lib/merit/models/mongoid/merit/badges_sash.rb +0 -22
  75. data/lib/merit/models/mongoid/merit/sash.rb +0 -30
  76. data/lib/merit/models/mongoid/merit/score.rb +0 -45
  77. data/test/dummy/db/migrate/20140906225844_create_players.rb +0 -8
  78. data/test/dummy/public/javascripts/application.js +0 -2
  79. data/test/dummy/public/javascripts/controls.js +0 -965
  80. data/test/dummy/public/javascripts/dragdrop.js +0 -974
  81. data/test/dummy/public/javascripts/effects.js +0 -1123
  82. data/test/dummy/public/javascripts/prototype.js +0 -6001
  83. data/test/dummy/public/javascripts/rails.js +0 -191
  84. data/test/orm/active_record.rb +0 -2
  85. data/test/orm/mongoid.rb +0 -6
  86. data/test/orm_models/active_record.rb +0 -11
  87. data/test/orm_models/mongoid.rb +0 -15
data/merit.gemspec CHANGED
@@ -6,17 +6,19 @@ Gem::Specification.new do |s|
6
6
  s.files = `git ls-files`.split("\n").reject{|f| f =~ /^\./ }
7
7
  s.test_files = `git ls-files -- test/*`.split("\n")
8
8
  s.license = 'MIT'
9
- s.version = '3.0.1'
9
+ s.version = '4.0.2'
10
10
  s.authors = ["Tute Costa"]
11
11
  s.email = 'tutecosta@gmail.com'
12
12
 
13
- s.required_ruby_version = '>= 2.2.2'
13
+ s.required_ruby_version = '>= 2.3.0'
14
14
 
15
- s.add_dependency 'ambry', '~> 1.0.0'
16
- s.add_development_dependency 'rails', '>= 5.0.0'
15
+ s.add_runtime_dependency 'ambry', '~> 1.0.0'
16
+ s.add_runtime_dependency 'zeitwerk'
17
+
18
+ s.add_development_dependency 'rails', '>= 5.1.6'
17
19
  s.add_development_dependency 'capybara'
18
20
  s.add_development_dependency 'simplecov'
19
21
  s.add_development_dependency 'rubocop'
20
22
  s.add_development_dependency 'minitest-rails'
21
- s.add_development_dependency 'mocha', '1.1.0'
23
+ s.add_development_dependency 'mocha'
22
24
  end
@@ -33,7 +33,7 @@ class CommentsController < ApplicationController
33
33
 
34
34
  def update
35
35
  @comment = Comment.find(params[:id])
36
- if @comment.update_attributes(comment_params)
36
+ if @comment.update(comment_params)
37
37
  redirect_to(@comment, :notice => 'Comment was successfully updated.')
38
38
  else
39
39
  render "edit"
@@ -3,7 +3,7 @@ class RegistrationsController < ApplicationController
3
3
  @user = User.find(params[:id])
4
4
 
5
5
  respond_to do |format|
6
- if @user.update_attributes(user_params)
6
+ if @user.update(user_params)
7
7
  format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
8
8
  format.xml { head :ok }
9
9
  else
@@ -1,14 +1,3 @@
1
- case Merit.orm
2
- when :active_record
3
- class Address < ActiveRecord::Base
4
- end
5
- when :mongoid
6
- class Address
7
- include Mongoid::Document
8
- include Mongoid::Timestamps
9
- end
10
- end
11
-
12
- class Address
1
+ class Address < ActiveRecord::Base
13
2
  belongs_to :user
14
3
  end
@@ -1,34 +1,12 @@
1
- case Merit.orm
2
- when :active_record
3
- class Comment < ActiveRecord::Base
4
- def friend
5
- User.find_by_name('friend')
6
- end
1
+ class Comment < ActiveRecord::Base
2
+ def friend
3
+ User.find_by_name('friend')
7
4
  end
8
- when :mongoid
9
- class Comment
10
- include Mongoid::Document
11
- include Mongoid::Timestamps
12
5
 
13
- field :name, :type => String
14
- field :comment, :type => String
15
- field :votes, :type => Integer, :default => 0
16
-
17
- def friend
18
- User.find_by(name: 'friend')
19
- end
20
- end
21
- end
22
-
23
- class Comment
24
6
  has_merit
25
7
 
26
8
  belongs_to :user
27
9
 
28
- if show_attr_accessible?
29
- attr_accessible :name, :comment, :user_id, :votes
30
- end
31
-
32
10
  validates :name, :comment, :user_id, :presence => true
33
11
 
34
12
  delegate :comments, :to => :user, :prefix => true
@@ -1,26 +1,9 @@
1
- case Merit.orm
2
- when :active_record
3
- class User < ActiveRecord::Base
4
- end
5
- when :mongoid
6
- class User
7
- include Mongoid::Document
8
- include Mongoid::Timestamps
9
-
10
- field :name, :type => String
11
- end
12
- end
13
-
14
- class User
1
+ class User < ActiveRecord::Base
15
2
  has_merit
16
3
 
17
4
  has_many :addresses
18
5
  has_many :comments
19
6
 
20
- if show_attr_accessible?
21
- attr_accessible :name
22
- end
23
-
24
7
  def model_with_no_reputation
25
8
  addresses.first || addresses.create
26
9
  end
@@ -10,19 +10,17 @@ Bundler.require
10
10
  require "merit"
11
11
 
12
12
  module Dummy
13
- class Application < Rails::Application
14
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
15
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
16
- # config.i18n.default_locale = :de
17
- # config.active_record.whitelist_attributes = true
13
+ class Application < ::Rails::Application
14
+ if Rails.version.match? "5.2.+"
15
+ config.active_record.sqlite3.represent_boolean_as_integer = true
16
+ end
18
17
 
19
- # http://stackoverflow.com/questions/20361428/rails-i18n-validation-deprecation-warning
20
- config.i18n.enforce_available_locales = true
18
+ if Rails.version.match? "6.0.+"
19
+ config.load_defaults "6.0"
20
+ end
21
21
 
22
- # Configure the default encoding used in templates for Ruby 1.9.
22
+ config.i18n.enforce_available_locales = true
23
23
  config.encoding = "utf-8"
24
-
25
- # Configure sensitive parameters which will be filtered from the log file.
26
24
  config.filter_parameters += [:password]
27
25
  end
28
26
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "boot"
4
+
5
+ require "rails"
6
+ # Pick the frameworks you want:
7
+ require "active_model/railtie"
8
+ require "active_record/railtie"
9
+ require "action_controller/railtie"
10
+ require "action_view/railtie"
11
+ require "action_mailer/railtie"
12
+
13
+ # require "sprockets/railtie"
14
+ require "rails/test_unit/railtie"
15
+
16
+ # Require the gems listed in Gemfile, including any gems
17
+ # you've limited to :test, :development, or :production.
18
+ Bundler.require
19
+ require "merit"
20
+
21
+ module Dummy
22
+ class Application < ::Rails::Application
23
+ config.load_defaults 5.2 if ENV["RAILS_VERSION"] =~ /^5.2/
24
+ config.api_only = true
25
+ config.i18n.enforce_available_locales = true
26
+ config.encoding = "utf-8"
27
+ end
28
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Load the rails application
4
+ require File.expand_path("application_api_only", __dir__)
5
+
6
+ # Initialize the rails application
7
+ Dummy::Application.initialize!
@@ -0,0 +1,3 @@
1
+ if Rails.version >= "5.1"
2
+ Rails.application.config.active_record.belongs_to_required_by_default = true
3
+ end
@@ -10,6 +10,8 @@ class CreateMeritActions < ActiveRecord::Migration[5.0]
10
10
  t.boolean :processed, :default => false
11
11
  t.timestamps null: false
12
12
  end
13
+
14
+ add_index :merit_actions, :processed
13
15
  end
14
16
 
15
17
  def self.down
@@ -1,93 +1,90 @@
1
- # encoding: UTF-8
2
1
  # This file is auto-generated from the current state of the database. Instead
3
2
  # of editing this file, please use the migrations feature of Active Record to
4
3
  # incrementally modify your database, and then regenerate this schema definition.
5
4
  #
6
- # Note that this schema.rb definition is the authoritative source for your
7
- # database schema. If you need to create the application database on another
8
- # system, you should be using db:schema:load, not running all the migrations
9
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
- # you'll amass, the slower it'll run and the greater likelihood for issues).
5
+ # This file is the source Rails uses to define your schema when running `rails
6
+ # db:schema:load`. When creating a new database, `rails db:schema:load` tends to
7
+ # be faster and is potentially less error prone than running all of your
8
+ # migrations from scratch. Old migrations may fail to apply correctly if those
9
+ # migrations use external dependencies or application code.
11
10
  #
12
11
  # It's strongly recommended that you check this file into your version control system.
13
12
 
14
- ActiveRecord::Schema.define(version: 20140906225844) do
13
+ ActiveRecord::Schema.define(version: 2014_08_19_133931) do
15
14
 
16
- create_table "addresses", force: true do |t|
15
+ create_table "addresses", force: :cascade do |t|
17
16
  t.integer "user_id"
17
+ t.index ["user_id"], name: "index_addresses_on_user_id"
18
18
  end
19
19
 
20
- create_table "badges_sashes", force: true do |t|
21
- t.integer "badge_id"
22
- t.integer "sash_id"
23
- t.boolean "notified_user", default: false
20
+ create_table "badges_sashes", force: :cascade do |t|
21
+ t.integer "badge_id"
22
+ t.integer "sash_id"
23
+ t.boolean "notified_user", default: false
24
24
  t.datetime "created_at"
25
+ t.index ["badge_id", "sash_id"], name: "index_badges_sashes_on_badge_id_and_sash_id"
26
+ t.index ["badge_id"], name: "index_badges_sashes_on_badge_id"
27
+ t.index ["sash_id"], name: "index_badges_sashes_on_sash_id"
25
28
  end
26
29
 
27
- add_index "badges_sashes", ["badge_id", "sash_id"], name: "index_badges_sashes_on_badge_id_and_sash_id"
28
- add_index "badges_sashes", ["badge_id"], name: "index_badges_sashes_on_badge_id"
29
- add_index "badges_sashes", ["sash_id"], name: "index_badges_sashes_on_sash_id"
30
-
31
- create_table "comments", force: true do |t|
32
- t.string "name"
33
- t.text "comment"
34
- t.integer "user_id"
35
- t.integer "votes", default: 0
36
- t.datetime "created_at", null: false
37
- t.datetime "updated_at", null: false
38
- t.integer "sash_id"
39
- t.integer "level", default: 0
30
+ create_table "comments", force: :cascade do |t|
31
+ t.string "name"
32
+ t.text "comment"
33
+ t.integer "user_id"
34
+ t.integer "votes", default: 0
35
+ t.datetime "created_at", null: false
36
+ t.datetime "updated_at", null: false
37
+ t.integer "sash_id"
38
+ t.integer "level", default: 0
40
39
  end
41
40
 
42
- create_table "merit_actions", force: true do |t|
43
- t.integer "user_id"
44
- t.string "action_method"
45
- t.integer "action_value"
46
- t.boolean "had_errors", default: false
47
- t.string "target_model"
48
- t.integer "target_id"
49
- t.boolean "processed", default: false
50
- t.datetime "created_at", null: false
51
- t.datetime "updated_at", null: false
52
- t.text "target_data"
41
+ create_table "merit_actions", force: :cascade do |t|
42
+ t.integer "user_id"
43
+ t.string "action_method"
44
+ t.integer "action_value"
45
+ t.boolean "had_errors", default: false
46
+ t.string "target_model"
47
+ t.integer "target_id"
48
+ t.boolean "processed", default: false
49
+ t.datetime "created_at", null: false
50
+ t.datetime "updated_at", null: false
51
+ t.text "target_data"
52
+ t.index ["processed"], name: "index_merit_actions_on_processed"
53
53
  end
54
54
 
55
- create_table "merit_activity_logs", force: true do |t|
56
- t.integer "action_id"
57
- t.string "related_change_type"
58
- t.integer "related_change_id"
59
- t.string "description"
55
+ create_table "merit_activity_logs", force: :cascade do |t|
56
+ t.integer "action_id"
57
+ t.string "related_change_type"
58
+ t.integer "related_change_id"
59
+ t.string "description"
60
60
  t.datetime "created_at"
61
61
  end
62
62
 
63
- create_table "merit_score_points", force: true do |t|
64
- t.integer "score_id"
65
- t.integer "num_points", default: 0
66
- t.string "log"
63
+ create_table "merit_score_points", force: :cascade do |t|
64
+ t.integer "score_id"
65
+ t.integer "num_points", default: 0
66
+ t.string "log"
67
67
  t.datetime "created_at"
68
+ t.index ["score_id"], name: "index_merit_score_points_on_score_id"
68
69
  end
69
70
 
70
- create_table "merit_scores", force: true do |t|
71
- t.integer "sash_id"
72
- t.string "category", default: "default"
73
- end
74
-
75
- create_table "players", force: true do |t|
71
+ create_table "merit_scores", force: :cascade do |t|
76
72
  t.integer "sash_id"
77
- t.integer "level", default: 0
73
+ t.string "category", default: "default"
74
+ t.index ["sash_id"], name: "index_merit_scores_on_sash_id"
78
75
  end
79
76
 
80
- create_table "sashes", force: true do |t|
77
+ create_table "sashes", force: :cascade do |t|
81
78
  t.datetime "created_at", null: false
82
79
  t.datetime "updated_at", null: false
83
80
  end
84
81
 
85
- create_table "users", force: true do |t|
86
- t.string "name"
87
- t.datetime "created_at", null: false
88
- t.datetime "updated_at", null: false
89
- t.integer "sash_id"
90
- t.integer "level", default: 0
82
+ create_table "users", force: :cascade do |t|
83
+ t.string "name"
84
+ t.datetime "created_at", null: false
85
+ t.datetime "updated_at", null: false
86
+ t.integer "sash_id"
87
+ t.integer "level", default: 0
91
88
  end
92
89
 
93
90
  end
@@ -180,7 +180,7 @@ class NavigationTest < ActionDispatch::IntegrationTest
180
180
 
181
181
  visit "/users/#{user.id}/edit"
182
182
  fill_in 'Name', with: 'a'
183
- assert_difference('Merit::ActivityLog.count', 2) do
183
+ assert_difference('Merit::ActivityLog.count', 1) do
184
184
  click_button('Update User')
185
185
  end
186
186
 
@@ -305,8 +305,8 @@ class NavigationTest < ActionDispatch::IntegrationTest
305
305
  end
306
306
  end
307
307
 
308
- comment_1.reload.points.must_be :==, 2
309
- comment_2.reload.points.must_be :==, 2
308
+ _(comment_1.reload.points).must_be :==, 2
309
+ _(comment_2.reload.points).must_be :==, 2
310
310
  end
311
311
 
312
312
  test 'api/comments#show should grant 1 point to user' do
data/test/test_helper.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # Configure Rails Envinronment
2
2
  ENV['RAILS_ENV'] = 'test'
3
- RUBYOPT="-w $RUBYOPT"
3
+ RUBYOPT = "-w $RUBYOPT".freeze
4
4
 
5
5
  if ENV["COVERAGE"]
6
6
  require 'coveralls'
@@ -13,16 +13,21 @@ if ENV["COVERAGE"]
13
13
  # https://github.com/colszowka/simplecov/pull/104
14
14
  add_group 'Merit', 'lib'
15
15
  add_group 'DummyApp', 'test/dummy'
16
+ add_filter 'lib/generators'
16
17
  add_filter 'test/dummy/config/initializers'
17
18
  end
18
19
  SimpleCov.start 'rubygem'
19
20
  end
20
21
 
21
- require File.expand_path('../dummy/config/environment.rb', __FILE__)
22
- require 'rails/test_help'
23
- require 'minitest/rails'
24
- require 'mocha/mini_test'
25
- require "orm/#{Merit.orm}"
22
+ if ARGV.include?("-api-only")
23
+ require File.expand_path("dummy/config/environment_api_only.rb", __dir__)
24
+ else
25
+ require File.expand_path("dummy/config/environment.rb", __dir__)
26
+ end
27
+
28
+ require "rails/test_help"
29
+ require "minitest/rails"
30
+ require "mocha/minitest"
26
31
 
27
32
  Rails.backtrace_cleaner.remove_silencers!
28
33
 
@@ -33,9 +38,3 @@ Capybara.default_selector = :css
33
38
 
34
39
  # Load support files
35
40
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
36
-
37
- Merit.orm = :active_record if Merit.orm.nil?
38
-
39
- def active_record_orm?
40
- Merit.orm == :active_record
41
- end
@@ -14,7 +14,7 @@ describe Merit::BaseTargetFinder do
14
14
 
15
15
  finder = Merit::BaseTargetFinder.new(rule, action)
16
16
  collection = finder.find
17
- collection.must_be :==, comment
17
+ _(collection).must_be :==, comment
18
18
  end
19
19
  end
20
20
 
@@ -22,13 +22,13 @@ describe Merit::BaseTargetFinder do
22
22
  it 'should fall back to the action#target_model' do
23
23
  rule = Merit::Rule.new
24
24
  rule.to = :itself
25
- action = Merit::Action.new(target_model: 'players', target_id: 3)
26
- user = Player.new(id: 3)
25
+ action = Merit::Action.new(target_model: 'users', target_id: 3)
26
+ user = User.new(id: 3)
27
27
 
28
- Player.stubs(:find_by_id).with(3).returns(user)
28
+ User.stubs(:find_by_id).with(3).returns(user)
29
29
 
30
30
  finder = Merit::BaseTargetFinder.new(rule, action)
31
- finder.find.must_be :==, user
31
+ _(finder.find).must_be :==, user
32
32
  end
33
33
  end
34
34
 
@@ -41,7 +41,7 @@ describe Merit::BaseTargetFinder do
41
41
 
42
42
  finder = Merit::BaseTargetFinder.new(rule, action)
43
43
  Rails.logger.expects(:warn)
44
- finder.find.must_be_nil
44
+ _(finder.find).must_be_nil
45
45
  end
46
46
  end
47
47
 
@@ -57,26 +57,7 @@ describe Merit::BaseTargetFinder do
57
57
  target_data: comment.to_yaml)
58
58
 
59
59
  finder = Merit::BaseTargetFinder.new(rule, action)
60
- finder.find.name.must_be :==, 'the comment name'
61
- end
62
- end
63
-
64
- describe 'warns when the target_data column has not been created' do
65
- it 'sends a message to the logger' do
66
- comment = Comment.new(name: 'the comment name')
67
-
68
- rule = Merit::Rule.new
69
- rule.to = :itself
70
- rule.model_name = 'comment'
71
- action = Merit::Action.new(target_model: 'comment',
72
- target_id: 2,
73
- target_data: comment.to_yaml)
74
- action.stubs(:respond_to?).with(:target_data).returns(false)
75
-
76
- Rails.logger.expects(:warn)
77
-
78
- finder = Merit::BaseTargetFinder.new(rule, action)
79
- finder.reanimate_target_from_action
60
+ _(finder.find.name).must_be :==, 'the comment name'
80
61
  end
81
62
  end
82
63
  end