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.
- checksums.yaml +4 -4
- data/Gemfile +1 -9
- data/NEWS.md +25 -0
- data/README.md +29 -10
- data/app/models/merit/badge.rb +1 -9
- data/lib/merit/{rules_badge_methods.rb → badge_rules_methods.rb} +0 -0
- data/lib/merit/base_target_finder.rb +1 -6
- data/lib/merit/{model_additions.rb → class_methods.rb} +0 -11
- data/lib/merit/controller_extensions.rb +4 -22
- data/lib/{generators → merit/generators}/active_record/install_generator.rb +8 -8
- data/lib/{generators → merit/generators}/active_record/merit_generator.rb +4 -4
- data/lib/{generators → merit/generators}/active_record/remove_generator.rb +5 -5
- 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
- data/lib/{generators/active_record/templates/create_badges_sashes.rb → merit/generators/active_record/templates/create_badges_sashes.erb} +0 -0
- data/lib/{generators/active_record/templates/create_merit_actions.rb → merit/generators/active_record/templates/create_merit_actions.erb} +2 -0
- data/lib/{generators/active_record/templates/create_merit_activity_logs.rb → merit/generators/active_record/templates/create_merit_activity_logs.erb} +0 -0
- data/lib/{generators/active_record/templates/create_sashes.rb → merit/generators/active_record/templates/create_sashes.erb} +0 -0
- data/lib/{generators/active_record/templates/create_scores_and_points.rb → merit/generators/active_record/templates/create_scores_and_points.erb} +1 -1
- 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
- data/lib/{generators/active_record/templates/remove_merit_tables.rb → merit/generators/active_record/templates/remove_merit_tables.erb} +0 -0
- data/lib/merit/generators/install_generator.rb +21 -0
- data/lib/{generators/merit → merit/generators}/merit_generator.rb +7 -2
- data/lib/{generators/merit → merit/generators}/remove_generator.rb +7 -2
- data/lib/{generators/merit/templates/merit.rb → merit/generators/templates/merit.erb} +13 -14
- data/lib/{generators/merit/templates/merit_badge_rules.rb → merit/generators/templates/merit_badge_rules.erb} +0 -0
- data/lib/{generators/merit/templates/merit_point_rules.rb → merit/generators/templates/merit_point_rules.erb} +0 -0
- data/lib/{generators/merit/templates/merit_rank_rules.rb → merit/generators/templates/merit_rank_rules.erb} +0 -0
- data/lib/merit/judge.rb +6 -5
- data/{app/models/merit/action.rb → lib/merit/models/action_concern.rb} +12 -10
- data/lib/merit/models/active_record/{merit/action.rb → action.rb} +5 -1
- data/lib/merit/models/active_record/{merit/activity_log.rb → activity_log.rb} +3 -1
- data/lib/merit/models/active_record/{merit/badges_sash.rb → badges_sash.rb} +4 -2
- data/lib/merit/models/active_record/{merit/sash.rb → sash.rb} +5 -2
- data/lib/merit/models/active_record/{merit/score.rb → score.rb} +4 -1
- data/lib/merit/models/badges_sash_concern.rb +13 -0
- data/lib/merit/models/base/badges_sash.rb +1 -1
- data/lib/merit/models/base/sash.rb +1 -1
- data/lib/merit/models/sash_concern.rb +53 -0
- data/lib/merit/{rules_points_methods.rb → point_rules_methods.rb} +0 -0
- data/lib/merit/{rules_rank_methods.rb → rank_rules_methods.rb} +3 -18
- data/lib/merit.rb +29 -56
- data/merit.gemspec +5 -2
- data/test/dummy/app/models/address.rb +1 -12
- data/test/dummy/app/models/comment.rb +3 -21
- data/test/dummy/app/models/user.rb +1 -14
- data/test/dummy/config/application.rb +5 -1
- data/test/dummy/config/application_api_only.rb +1 -1
- data/test/dummy/db/migrate/20130329224406_create_merit_actions.rb +2 -0
- data/test/dummy/db/schema.rb +4 -8
- data/test/integration/navigation_test.rb +3 -3
- data/test/test_helper.rb +0 -2
- data/test/unit/base_target_finder_test.rb +7 -26
- data/test/unit/merit_unit_test.rb +6 -8
- data/test/unit/rule_unit_test.rb +8 -8
- data/test/unit/rules_matcher_test.rb +9 -6
- data/test/unit/sash_finder_test.rb +5 -5
- data/test/unit/sash_test.rb +16 -0
- data/test/unit/score_test.rb +1 -1
- data/test/unit/target_finder_test.rb +13 -13
- metadata +64 -62
- data/UPGRADING.md +0 -256
- data/lib/generators/active_record/templates/add_target_data_to_merit_actions.rb +0 -5
- data/lib/generators/active_record/upgrade_generator.rb +0 -40
- data/lib/generators/merit/install_generator.rb +0 -16
- data/lib/generators/merit/upgrade_generator.rb +0 -7
- data/lib/merit/models/mongoid/merit/action.rb +0 -18
- data/lib/merit/models/mongoid/merit/activity_log.rb +0 -11
- data/lib/merit/models/mongoid/merit/badges_sash.rb +0 -20
- data/lib/merit/models/mongoid/merit/sash.rb +0 -30
- data/lib/merit/models/mongoid/merit/score.rb +0 -45
- data/test/dummy/db/migrate/20140906225844_create_players.rb +0 -8
- data/test/dummy/public/javascripts/application.js +0 -2
- data/test/dummy/public/javascripts/controls.js +0 -965
- data/test/dummy/public/javascripts/dragdrop.js +0 -974
- data/test/dummy/public/javascripts/effects.js +0 -1123
- data/test/dummy/public/javascripts/prototype.js +0 -6001
- data/test/dummy/public/javascripts/rails.js +0 -191
- data/test/orm_models/active_record.rb +0 -11
- 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
|