merit 3.0.3 → 4.0.3

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -9
  3. data/NEWS.md +25 -0
  4. data/README.md +29 -10
  5. data/app/models/merit/badge.rb +1 -9
  6. data/lib/merit/{rules_badge_methods.rb → badge_rules_methods.rb} +0 -0
  7. data/lib/merit/base_target_finder.rb +1 -6
  8. data/lib/merit/{model_additions.rb → class_methods.rb} +0 -11
  9. data/lib/merit/controller_extensions.rb +4 -22
  10. data/lib/{generators → merit/generators}/active_record/install_generator.rb +8 -8
  11. data/lib/{generators → merit/generators}/active_record/merit_generator.rb +4 -4
  12. data/lib/{generators → merit/generators}/active_record/remove_generator.rb +5 -5
  13. 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
  14. data/lib/{generators/active_record/templates/create_badges_sashes.rb → merit/generators/active_record/templates/create_badges_sashes.erb} +0 -0
  15. data/lib/{generators/active_record/templates/create_merit_actions.rb → merit/generators/active_record/templates/create_merit_actions.erb} +2 -0
  16. data/lib/{generators/active_record/templates/create_merit_activity_logs.rb → merit/generators/active_record/templates/create_merit_activity_logs.erb} +0 -0
  17. data/lib/{generators/active_record/templates/create_sashes.rb → merit/generators/active_record/templates/create_sashes.erb} +0 -0
  18. data/lib/{generators/active_record/templates/create_scores_and_points.rb → merit/generators/active_record/templates/create_scores_and_points.erb} +1 -1
  19. 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
  20. data/lib/{generators/active_record/templates/remove_merit_tables.rb → merit/generators/active_record/templates/remove_merit_tables.erb} +0 -0
  21. data/lib/merit/generators/install_generator.rb +21 -0
  22. data/lib/{generators/merit → merit/generators}/merit_generator.rb +7 -2
  23. data/lib/{generators/merit → merit/generators}/remove_generator.rb +7 -2
  24. data/lib/{generators/merit/templates/merit.rb → merit/generators/templates/merit.erb} +13 -14
  25. data/lib/{generators/merit/templates/merit_badge_rules.rb → merit/generators/templates/merit_badge_rules.erb} +0 -0
  26. data/lib/{generators/merit/templates/merit_point_rules.rb → merit/generators/templates/merit_point_rules.erb} +0 -0
  27. data/lib/{generators/merit/templates/merit_rank_rules.rb → merit/generators/templates/merit_rank_rules.erb} +0 -0
  28. data/lib/merit/judge.rb +6 -5
  29. data/{app/models/merit/action.rb → lib/merit/models/action_concern.rb} +12 -10
  30. data/lib/merit/models/active_record/{merit/action.rb → action.rb} +5 -1
  31. data/lib/merit/models/active_record/{merit/activity_log.rb → activity_log.rb} +3 -1
  32. data/lib/merit/models/active_record/{merit/badges_sash.rb → badges_sash.rb} +4 -2
  33. data/lib/merit/models/active_record/{merit/sash.rb → sash.rb} +5 -2
  34. data/lib/merit/models/active_record/{merit/score.rb → score.rb} +4 -1
  35. data/lib/merit/models/badges_sash_concern.rb +13 -0
  36. data/lib/merit/models/base/badges_sash.rb +1 -1
  37. data/lib/merit/models/base/sash.rb +1 -1
  38. data/lib/merit/models/sash_concern.rb +53 -0
  39. data/lib/merit/{rules_points_methods.rb → point_rules_methods.rb} +0 -0
  40. data/lib/merit/{rules_rank_methods.rb → rank_rules_methods.rb} +3 -18
  41. data/lib/merit.rb +29 -56
  42. data/merit.gemspec +5 -2
  43. data/test/dummy/app/models/address.rb +1 -12
  44. data/test/dummy/app/models/comment.rb +3 -21
  45. data/test/dummy/app/models/user.rb +1 -14
  46. data/test/dummy/config/application.rb +5 -1
  47. data/test/dummy/config/application_api_only.rb +1 -1
  48. data/test/dummy/db/migrate/20130329224406_create_merit_actions.rb +2 -0
  49. data/test/dummy/db/schema.rb +4 -8
  50. data/test/integration/navigation_test.rb +3 -3
  51. data/test/test_helper.rb +0 -2
  52. data/test/unit/base_target_finder_test.rb +7 -26
  53. data/test/unit/merit_unit_test.rb +6 -8
  54. data/test/unit/rule_unit_test.rb +8 -8
  55. data/test/unit/rules_matcher_test.rb +9 -6
  56. data/test/unit/sash_finder_test.rb +5 -5
  57. data/test/unit/sash_test.rb +16 -0
  58. data/test/unit/score_test.rb +1 -1
  59. data/test/unit/target_finder_test.rb +13 -13
  60. metadata +64 -62
  61. data/UPGRADING.md +0 -256
  62. data/lib/generators/active_record/templates/add_target_data_to_merit_actions.rb +0 -5
  63. data/lib/generators/active_record/upgrade_generator.rb +0 -40
  64. data/lib/generators/merit/install_generator.rb +0 -16
  65. data/lib/generators/merit/upgrade_generator.rb +0 -7
  66. data/lib/merit/models/mongoid/merit/action.rb +0 -18
  67. data/lib/merit/models/mongoid/merit/activity_log.rb +0 -11
  68. data/lib/merit/models/mongoid/merit/badges_sash.rb +0 -20
  69. data/lib/merit/models/mongoid/merit/sash.rb +0 -30
  70. data/lib/merit/models/mongoid/merit/score.rb +0 -45
  71. data/test/dummy/db/migrate/20140906225844_create_players.rb +0 -8
  72. data/test/dummy/public/javascripts/application.js +0 -2
  73. data/test/dummy/public/javascripts/controls.js +0 -965
  74. data/test/dummy/public/javascripts/dragdrop.js +0 -974
  75. data/test/dummy/public/javascripts/effects.js +0 -1123
  76. data/test/dummy/public/javascripts/prototype.js +0 -6001
  77. data/test/dummy/public/javascripts/rails.js +0 -191
  78. data/test/orm_models/active_record.rb +0 -11
  79. data/test/orm_models/mongoid.rb +0 -15
@@ -1,30 +0,0 @@
1
- module Merit
2
- # Sash is a container for reputation data for meritable models. It's an
3
- # indirection between meritable models and badges and scores (one to one
4
- # relationship).
5
- #
6
- # It's existence make join models like badges_users and scores_users
7
- # unnecessary. It should be transparent at the application.
8
- class Sash
9
- include Mongoid::Document
10
- include Mongoid::Timestamps
11
- include Base::Sash
12
-
13
- has_many :badges_sashes, class_name: 'Merit::BadgesSash', dependent: :destroy
14
- has_many :scores, class_name: 'Merit::Score', dependent: :destroy
15
-
16
- after_create :create_scores
17
-
18
- # Retrieve all points from a category or none if category doesn't exist
19
- # By default retrieve all Points
20
- # @param category [String] The category
21
- # @return [ActiveRecord::Relation] containing the points
22
- def score_points(options = {})
23
- scope = scores
24
- if (category = options[:category])
25
- scope = scope.where(category: category)
26
- end
27
- Merit::Score::Point.where(:score_id.in => scope.map(&:_id))
28
- end
29
- end
30
- end
@@ -1,45 +0,0 @@
1
- module Merit
2
- class Score
3
- include Mongoid::Document
4
- include Mongoid::Timestamps
5
-
6
- field :category, type: String, default: 'default'
7
-
8
- belongs_to :sash, class_name: 'Merit::Sash'
9
- has_many :score_points, class_name: 'Merit::Score::Point', dependent: :destroy
10
-
11
- # Meant to display a leaderboard. Accepts options :table_name (users by
12
- # default), :since_date (1.month.ago by default) and :limit (10 by
13
- # default).
14
- #
15
- # It lists top 10 scored objects in the last month, unless you change
16
- # query parameters.
17
- def self.top_scored(options = {})
18
- options[:since_date] ||= 1.month.ago
19
- options[:limit] ||= 10
20
- Score.where(created_at: (options[:since_date]..Time.now))
21
- .desc(:points)
22
- .limit(options[:limit])
23
- .flatten.map { |score| score.sash.user }
24
- end
25
-
26
- def points
27
- score_points.sum(:num_points) || 0
28
- end
29
-
30
- class Point
31
- include Mongoid::Document
32
- include Mongoid::Timestamps
33
-
34
- field :num_points, type: Integer, default: 0
35
- field :log, type: String
36
-
37
- belongs_to :score, class_name: 'Merit::Score'
38
- has_many :activity_logs, class_name: 'Merit::ActivityLog', as: :related_change
39
-
40
- def sash_id
41
- score.sash_id
42
- end
43
- end
44
- end
45
- end
@@ -1,8 +0,0 @@
1
- class CreatePlayers < ActiveRecord::Migration[5.0]
2
- def change
3
- create_table :players do |t|
4
- t.integer :sash_id
5
- t.integer :level, default: 0
6
- end
7
- end
8
- end
@@ -1,2 +0,0 @@
1
- // Place your application-specific JavaScript functions and classes here
2
- // This file is automatically included by javascript_include_tag :defaults