merit 0.6.0 → 0.6.1

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.
data/UPGRADING.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Upgrading
2
2
 
3
- ## to 0.6.0
3
+ ## to 0.6.1
4
4
 
5
5
  <tt>MeritBadgeRules</tt>, <tt>MeritPointRules</tt> and <tt>MeritRankRules</tt>
6
6
  are now namespaced into Merit module. Move and change:
@@ -13,6 +13,7 @@ app/models/merit_{badge|point|rank}_rules.rb -> app/models/merit/{badge|point|ra
13
13
  - include Merit::{Badge|Point|Rank}Rules
14
14
  +module Merit
15
15
  + class {Badge|Point|Rank}Rules
16
+ + include Merit::{Badge|Point|Rank}RulesMethods
16
17
  </pre>
17
18
 
18
19
  ## to 0.5.0
@@ -16,6 +16,8 @@
16
16
 
17
17
  module Merit
18
18
  class BadgeRules
19
+ include Merit::BadgeRulesMethods
20
+
19
21
  def initialize
20
22
  # If it creates user, grant badge
21
23
  # Should be "current_user" after registration for badge to be granted.
@@ -5,6 +5,8 @@
5
5
 
6
6
  module Merit
7
7
  class PointRules
8
+ include Merit::PointRulesMethods
9
+
8
10
  def initialize
9
11
  # score 10, :on => [
10
12
  # 'users#update'
@@ -10,6 +10,8 @@
10
10
 
11
11
  module Merit
12
12
  class RankRules
13
+ include Merit::RankRulesMethods
14
+
13
15
  def initialize
14
16
  # set_rank :level => 1, :to => Commiter.active do |commiter|
15
17
  # commiter.repositories.count > 1 && commiter.followers >= 10
@@ -29,7 +29,7 @@ module Merit
29
29
  #
30
30
  # Luego chequea las condiciones sincronizadamente, o mediante un proceso en
31
31
  # background, por ejemplo cada 5 minutos (Merit::BadgeRules#check_new_actions).
32
- class BadgeRules
32
+ module BadgeRulesMethods
33
33
  # Define rule for granting badges
34
34
  def grant_on(action, *args, &block)
35
35
  options = args.extract_options!
@@ -2,7 +2,7 @@ module Merit
2
2
  # Points are a simple integer value which are given to "meritable" resources
3
3
  # according to rules in +app/models/merit_point_rules.rb+. They are given on
4
4
  # actions-triggered.
5
- class PointRules
5
+ module PointRulesMethods
6
6
  # Define rules on certaing actions for giving points
7
7
  def score(points, *args, &block)
8
8
  options = args.extract_options!
@@ -8,7 +8,7 @@ module Merit
8
8
  # * :+to+ model or scope to check if new rankings apply
9
9
  # * :+level_name+ attribute name (default is empty and results in 'level'
10
10
  # attribute, if set it's appended like 'level_#{level_name}')
11
- class RankRules
11
+ module RankRulesMethods
12
12
  # Populates +defined_rules+ hash with following hierarchy:
13
13
  # defined_rules[ModelToRank] = { levels => blocks }
14
14
  def set_rank(*args, &block)
data/merit.gemspec CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |s|
4
4
  s.description = "Manage badges, points and rankings (reputation) of resources in a Rails application."
5
5
  s.homepage = "http://github.com/tute/merit"
6
6
  s.files = `git ls-files`.split("\n").reject{|f| f =~ /^\./ }
7
- s.version = "0.6.0"
7
+ s.version = "0.6.1"
8
8
  s.authors = ["Tute Costa"]
9
9
  s.email = 'tutecosta@gmail.com'
10
10
  s.add_dependency 'ambry'
@@ -16,6 +16,8 @@
16
16
 
17
17
  module Merit
18
18
  class BadgeRules
19
+ include Merit::BadgeRulesMethods
20
+
19
21
  def initialize
20
22
  # If it creates user, grant badge
21
23
  # Should be "current_user" after registration for badge to be granted.
@@ -23,7 +25,7 @@ module Merit
23
25
 
24
26
  # If it has 10 comments, grant commenter-10 badge
25
27
  grant_on 'comments#create', :badge => 'commenter', :level => 10 do |comment|
26
- comment.user.comments.count == 10
28
+ comment.user.comments.count >= 10
27
29
  end
28
30
 
29
31
  # If it has at least 10 votes, grant relevant-commenter badge
@@ -4,6 +4,8 @@
4
4
 
5
5
  module Merit
6
6
  class PointRules
7
+ include Merit::PointRulesMethods
8
+
7
9
  def initialize
8
10
  score 5, :to => :user, :on => [
9
11
  'comments#vote'
@@ -10,6 +10,8 @@
10
10
 
11
11
  module Merit
12
12
  class RankRules
13
+ include Merit::RankRulesMethods
14
+
13
15
  def initialize
14
16
  # i stars for i chars name
15
17
  (1..5).each do |i|
@@ -5,4 +5,30 @@ Merit.setup do |config|
5
5
 
6
6
  # Define ORM. Could be :active_record (default) and :mongo_mapper
7
7
  # config.orm = :active_record
8
- end
8
+ end
9
+
10
+ # Create application badges (uses https://github.com/norman/ambry)
11
+ badge_id = 0
12
+ [{
13
+ :id => (badge_id = badge_id+1),
14
+ :name => 'commenter',
15
+ :description => 'You\'ve participated good in our boards!',
16
+ :level => 10
17
+ }, {
18
+ :id => (badge_id = badge_id+1),
19
+ :name => 'commenter',
20
+ :description => 'You\'ve participated great in our boards!'
21
+ }, {
22
+ :id => (badge_id = badge_id+1),
23
+ :name => 'relevant-commenter',
24
+ :description => 'You\'ve received 5 votes on a comment.'
25
+ }, {
26
+ :id => (badge_id = badge_id+1),
27
+ :name => 'autobiographer',
28
+ :description => 'You\'ve edited your name and it\'s above 4 characters! (?)'
29
+ }, {
30
+ :id => (badge_id = badge_id+1),
31
+ :name => 'just-registered'
32
+ }].each do |badge|
33
+ Badge.create! badge
34
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-22 00:00:00.000000000 Z
12
+ date: 2012-04-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ambry
16
- requirement: &70166979392500 !ruby/object:Gem::Requirement
16
+ requirement: &70267830450700 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70166979392500
24
+ version_requirements: *70267830450700
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rails
27
- requirement: &70166979391980 !ruby/object:Gem::Requirement
27
+ requirement: &70267830447420 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.0.10
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70166979391980
35
+ version_requirements: *70267830447420
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3
38
- requirement: &70166979391560 !ruby/object:Gem::Requirement
38
+ requirement: &70267830445160 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70166979391560
46
+ version_requirements: *70267830445160
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: haml
49
- requirement: &70166981534740 !ruby/object:Gem::Requirement
49
+ requirement: &70267830443020 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70166981534740
57
+ version_requirements: *70267830443020
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: capybara
60
- requirement: &70166981531180 !ruby/object:Gem::Requirement
60
+ requirement: &70267830442080 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70166981531180
68
+ version_requirements: *70267830442080
69
69
  description: Manage badges, points and rankings (reputation) of resources in a Rails
70
70
  application.
71
71
  email: tutecosta@gmail.com
@@ -136,7 +136,6 @@ files:
136
136
  - test/dummy/config/environments/production.rb
137
137
  - test/dummy/config/environments/test.rb
138
138
  - test/dummy/config/initializers/backtrace_silencers.rb
139
- - test/dummy/config/initializers/badges_data.rb
140
139
  - test/dummy/config/initializers/inflections.rb
141
140
  - test/dummy/config/initializers/merit.rb
142
141
  - test/dummy/config/initializers/mime_types.rb
@@ -1,40 +0,0 @@
1
- # Create badges (Ambry)
2
- badge_id = 0
3
-
4
- # Rank badges (5 stars)
5
- (1..5).each do |i|
6
- Badge.create!(
7
- :id => (badge_id = badge_id+1),
8
- :name => 'stars',
9
- :level => i
10
- )
11
- end
12
-
13
- # Normal badges
14
- [
15
- {
16
- :id => (badge_id = badge_id+1),
17
- :name => 'commenter',
18
- :description => 'You\'ve participated good in our boards!',
19
- :level => 10
20
- }, {
21
- :id => (badge_id = badge_id+1),
22
- :name => 'commenter',
23
- :description => 'You\'ve participated great in our boards!',
24
- :level => 20
25
- }, {
26
- :id => (badge_id = badge_id+1),
27
- :name => 'relevant-commenter',
28
- :description => 'You\'ve received 5 votes on a comment.',
29
- :level => 5
30
- }, {
31
- :id => (badge_id = badge_id+1),
32
- :name => 'autobiographer',
33
- :description => 'You\'ve edited your name and it\'s above 4 characters! (?)'
34
- }, {
35
- :id => (badge_id = badge_id+1),
36
- :name => 'just-registered'
37
- }
38
- ].each do |badge|
39
- Badge.create! badge
40
- end