merit 3.0.3 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
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