merit 0.9.5 → 0.10.0
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/Gemfile +0 -4
- data/Gemfile.lock +4 -4
- data/README.md +2 -0
- data/UPGRADING.md +17 -0
- data/lib/generators/active_record/templates/create_badges_sashes.rb +1 -1
- data/lib/merit/model_additions.rb +2 -2
- data/lib/merit/models/active_record/badges_sash.rb +3 -5
- data/lib/merit/models/active_record/sash.rb +8 -12
- data/merit.gemspec +1 -1
- data/test/dummy/db/migrate/20120318022219_create_badges_sashes.rb +1 -1
- data/test/dummy/db/schema.rb +1 -1
- metadata +2 -2
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
merit (0.
|
4
|
+
merit (0.10.0)
|
5
5
|
ambry (~> 0.3.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -66,8 +66,8 @@ GEM
|
|
66
66
|
mime-types (1.18)
|
67
67
|
mongo (1.6.2)
|
68
68
|
bson (~> 1.6.2)
|
69
|
-
mongoid (2.
|
70
|
-
activemodel (~> 3.
|
69
|
+
mongoid (2.0.2)
|
70
|
+
activemodel (~> 3.0)
|
71
71
|
mongo (~> 1.3)
|
72
72
|
tzinfo (~> 0.3.22)
|
73
73
|
multi_json (1.3.6)
|
@@ -131,7 +131,7 @@ DEPENDENCIES
|
|
131
131
|
capybara
|
132
132
|
haml
|
133
133
|
merit!
|
134
|
-
mongoid (
|
134
|
+
mongoid (~> 2.0.0)
|
135
135
|
rails (~> 3.2.3)
|
136
136
|
simplecov
|
137
137
|
sqlite3
|
data/README.md
CHANGED
data/UPGRADING.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# Upgrading
|
2
2
|
|
3
|
+
## to 0.10.0
|
4
|
+
|
5
|
+
`badges_sashes` table gets a primary key `id` column. Run the following migration:
|
6
|
+
|
7
|
+
class AddIdToBadgesSashes < ActiveRecord::Migration
|
8
|
+
def self.up
|
9
|
+
add_column :badges_sashes, :id, :primary_key
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.down
|
13
|
+
remove_column :badges_sashes, :id
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
`set_notified!(badge = nil, sash = nil)` no longer exists, just call `set_notified!`
|
18
|
+
over the `badge_sash` object, with no parameters.
|
19
|
+
|
3
20
|
## to 0.9.0
|
4
21
|
|
5
22
|
Adds `allow_multiple` boolean option to `Badge#grant_to` (defaults to
|
@@ -3,7 +3,7 @@ module Merit
|
|
3
3
|
|
4
4
|
module ClassMethods
|
5
5
|
def has_merit(options = {})
|
6
|
-
belongs_to :sash
|
6
|
+
belongs_to :sash, :dependent => :destroy
|
7
7
|
|
8
8
|
if Merit.orm == :mongo_mapper
|
9
9
|
plugin Merit
|
@@ -24,7 +24,7 @@ module Merit
|
|
24
24
|
|
25
25
|
def badges
|
26
26
|
create_sash_if_none
|
27
|
-
sash.
|
27
|
+
sash.badges
|
28
28
|
end
|
29
29
|
|
30
30
|
# Create sash if doesn't have
|
@@ -6,10 +6,8 @@ class BadgesSash < ActiveRecord::Base
|
|
6
6
|
end
|
7
7
|
|
8
8
|
# To be used in the application, mark badge granting as notified to user
|
9
|
-
def set_notified!
|
10
|
-
|
11
|
-
|
12
|
-
SET notified_user = TRUE
|
13
|
-
WHERE badge_id = #{badge.id} AND sash_id = #{sash.id}")
|
9
|
+
def set_notified!
|
10
|
+
self.notified_user = true
|
11
|
+
save
|
14
12
|
end
|
15
13
|
end
|
@@ -1,5 +1,9 @@
|
|
1
1
|
class Sash < ActiveRecord::Base
|
2
|
-
has_many :badges_sashes
|
2
|
+
has_many :badges_sashes, :dependent => :destroy
|
3
|
+
|
4
|
+
def badges
|
5
|
+
badge_ids.collect { |b_id| Badge.find(b_id) }
|
6
|
+
end
|
3
7
|
|
4
8
|
def badge_ids
|
5
9
|
badges_sashes.collect(&:badge_id)
|
@@ -7,19 +11,11 @@ class Sash < ActiveRecord::Base
|
|
7
11
|
|
8
12
|
def add_badge(badge_id)
|
9
13
|
bs = BadgesSash.new
|
10
|
-
bs.sash_id = self.id
|
11
14
|
bs.badge_id = badge_id
|
12
|
-
bs
|
15
|
+
badges_sashes << bs
|
13
16
|
end
|
17
|
+
|
14
18
|
def rm_badge(badge_id)
|
15
|
-
badges_sashes
|
16
|
-
# ActiveRecord::Relation#delete|destroy(_all) doesn't work with composite keys.
|
17
|
-
# Badge is not AR model (Ambry) so can't do self.badges.find(badge_id).delete
|
18
|
-
badges_sash = badges_sashes.first
|
19
|
-
badges_sashes.delete_all
|
20
|
-
# delete doesn't run callbacks, do it by hand
|
21
|
-
if Object.const_defined?('BadgesSashObserver') && badges_sash.present?
|
22
|
-
BadgesSashObserver.instance.after_delete(badges_sash)
|
23
|
-
end
|
19
|
+
badges_sashes.find_by_badge_id(badge_id).destroy
|
24
20
|
end
|
25
21
|
end
|
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.
|
7
|
+
s.version = "0.10.0"
|
8
8
|
s.authors = ["Tute Costa"]
|
9
9
|
s.email = 'tutecosta@gmail.com'
|
10
10
|
s.add_dependency 'ambry', '~> 0.3.0'
|
data/test/dummy/db/schema.rb
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
ActiveRecord::Schema.define(:version => 20120318022220) do
|
15
15
|
|
16
|
-
create_table "badges_sashes", :
|
16
|
+
create_table "badges_sashes", :force => true do |t|
|
17
17
|
t.integer "badge_id"
|
18
18
|
t.integer "sash_id"
|
19
19
|
t.boolean "notified_user", :default => false
|
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.
|
4
|
+
version: 0.10.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ambry
|