simple_messenger 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/simple_messenger/message_additions.rb +14 -14
- data/lib/simple_messenger/version.rb +1 -1
- data/simple_messenger.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9be8fb4526ea8c8b980ad344683ace9a13820161
|
4
|
+
data.tar.gz: a9540232949c6ea7ba89d96970e8f27537112c2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efbbeb4bb1f4d07fb6286b96d0ce2b61dc2841b8f765c4643758a84ab9fe436e5a0b5669a9a597b0d132f1626851397e96087827a34655a23bfb2753ae09a3f8
|
7
|
+
data.tar.gz: 9fb2940ad41a46d1db92df22ce379837a31aff790a973e97d49770f54101f27f309b9639920127eb230d6bac24f72b33b25cbe9368497d6e0442f4fb32177a74
|
data/README.md
CHANGED
@@ -2,28 +2,28 @@ module SimpleMessenger
|
|
2
2
|
class NotInvolved < StandardError; end
|
3
3
|
|
4
4
|
module MessageAdditions
|
5
|
-
def self.included(
|
6
|
-
|
7
|
-
|
5
|
+
def self.included(message_model)
|
6
|
+
message_model.belongs_to :sender, polymorphic: true
|
7
|
+
message_model.belongs_to :receiver, polymorphic: true
|
8
8
|
|
9
|
-
|
9
|
+
message_model.scope :unviewed, -> { message_model.where(viewed: false) }
|
10
10
|
|
11
11
|
# Using ARel find all the messages where the model is sender or receiver.
|
12
|
-
|
13
|
-
|
14
|
-
((
|
15
|
-
and(
|
16
|
-
or((
|
17
|
-
and(
|
12
|
+
message_model.scope :all_for, ->(model) {
|
13
|
+
message_model.where(
|
14
|
+
((message_model.arel_table[:sender_id].eq model.id).
|
15
|
+
and(message_model.arel_table[:sender_type].eq model.class.to_s)).
|
16
|
+
or((message_model.arel_table[:receiver_id].eq model.id).
|
17
|
+
and(message_model.arel_table[:receiver_type].eq model.class.to_s))
|
18
18
|
)
|
19
19
|
}
|
20
20
|
|
21
21
|
# Find a conversations between 2 models by joining all_for on both.
|
22
|
-
|
23
|
-
|
22
|
+
message_model.scope :between, ->(models) {
|
23
|
+
message_model.all_for(models.first).all_for(models.last)
|
24
24
|
}
|
25
25
|
|
26
|
-
|
26
|
+
message_model.validates_presence_of :sender_id, :sender_type,
|
27
27
|
:receiver_id, :receiver_type
|
28
28
|
|
29
29
|
# When given an array of messages, this will return a list of all the ids of the
|
@@ -33,7 +33,7 @@ module SimpleMessenger
|
|
33
33
|
# remove is optional and takes a fixnum, object or array of either and will remove
|
34
34
|
# it's id from the list. Useful for sending a current_user in to get a unique
|
35
35
|
# list of other users which they have communicated with.
|
36
|
-
def
|
36
|
+
def message_model.uniq_member_ids_for(msgs, remove: nil)
|
37
37
|
ids = msgs.map { |m| [m.receiver_id, m.sender_id] }.flatten.uniq
|
38
38
|
ids -= case
|
39
39
|
when remove.respond_to?(:first)
|
data/simple_messenger.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "activerecord", "~> 4.0.0
|
21
|
+
spec.add_dependency "activerecord", "~> 4.0.0"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
24
|
spec.add_development_dependency "rake"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_messenger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kainage
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.0.0
|
19
|
+
version: 4.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.0.0
|
26
|
+
version: 4.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|