acts_as_chattable 0.0.1 → 0.0.2
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/MIT-LICENSE +1 -1
- data/README.md +20 -83
- data/VERSION +1 -1
- data/acts_as_chattable.gemspec +1 -1
- data/coverage/.last_run.json +1 -1
- data/coverage/.resultset.json +31 -26
- data/lib/acts_as_chattable/model.rb +8 -0
- data/lib/acts_as_chattable/relation.rb +0 -3
- data/spec/acts_as_chattable_spec.rb +9 -9
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f8e906e0614193eeee9549776718acea58a3b28
|
4
|
+
data.tar.gz: f3598cd1632b6eb2654e8622a59dd2db5a0a7688
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2e4e893e082032e62e21fa27150593105ce18668b32fc309e7a4b8ea1f591ffade5becbc2f63e2db4159def3f3f51fc63881ece46f602f1d9fc65f21b1fcb97
|
7
|
+
data.tar.gz: 060419d0e25833962b3699db90a380bb3fba42d2c79ecdeb1bc967c493d32093ee5619eb67bcc6bebb66d51af4fb43dd25f89d85f0a429e18293ff2a2802fc96
|
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
ActsAsChattable
|
2
2
|
=================
|
3
3
|
|
4
|
-
The Acts As Chattable allows communication between
|
4
|
+
The Acts As Chattable allows communication between models.
|
5
|
+
|
6
|
+
It was designed for a mobile app that needs private communications with attachments, like the iPhone SMS app for example.
|
5
7
|
|
6
8
|
[](http://travis-ci.org/LTe/acts-as-messageable)
|
7
9
|
[](https://gemnasium.com/LTe/acts-as-messageable)
|
@@ -33,8 +35,8 @@ Usage
|
|
33
35
|
|
34
36
|
```ruby
|
35
37
|
class User < ActiveRecord::Base
|
36
|
-
|
37
|
-
|
38
|
+
acts_as_chattable :required => :body # default [:body]
|
39
|
+
:dependent => :destroy # default :nullify
|
38
40
|
end
|
39
41
|
```
|
40
42
|
|
@@ -45,14 +47,14 @@ Send message
|
|
45
47
|
@alice = User.first
|
46
48
|
@bob = User.last
|
47
49
|
|
48
|
-
@alice.send_message(@bob, "
|
49
|
-
@bob.send_message(@alice,
|
50
|
+
@alice.send_message(@bob, "Hi bob!")
|
51
|
+
@bob.send_message(@alice, Hi alice!")
|
50
52
|
```
|
51
53
|
|
52
54
|
## With hash
|
53
55
|
|
54
56
|
```ruby
|
55
|
-
@alice.send_message(@bob, { :body => "Hash body"
|
57
|
+
@alice.send_message(@bob, { :body => "Hash body" })
|
56
58
|
```
|
57
59
|
|
58
60
|
Custom required (validation)
|
@@ -62,7 +64,7 @@ In User model
|
|
62
64
|
|
63
65
|
```ruby
|
64
66
|
class User < ActiveRecord::Base
|
65
|
-
|
67
|
+
acts_as_chattable :required => :body
|
66
68
|
end
|
67
69
|
```
|
68
70
|
|
@@ -78,55 +80,6 @@ end
|
|
78
80
|
@alice.send_message(@bob, "body")
|
79
81
|
```
|
80
82
|
|
81
|
-
## Required sequence
|
82
|
-
|
83
|
-
```ruby
|
84
|
-
class User < ActiveRecord::Base
|
85
|
-
acts_as_messageable :required => [:body, :topic]
|
86
|
-
end
|
87
|
-
|
88
|
-
@alice.send_message(@bob, "body", "topic")
|
89
|
-
```
|
90
|
-
|
91
|
-
## First topic
|
92
|
-
|
93
|
-
```ruby
|
94
|
-
class User < ActiveRecord::Base
|
95
|
-
acts_as_messageable :required => [:topic, :body]
|
96
|
-
end
|
97
|
-
|
98
|
-
@alice.send_message(@bob, "topic", "body")
|
99
|
-
```
|
100
|
-
|
101
|
-
Custom class
|
102
|
-
============
|
103
|
-
|
104
|
-
You can use your own class that will represent the message object. First of all create custom class
|
105
|
-
|
106
|
-
```ruby
|
107
|
-
class CustomMessage < ActsAsMessageable::Message
|
108
|
-
def capitalize_title
|
109
|
-
title.capitalize
|
110
|
-
end
|
111
|
-
end
|
112
|
-
```
|
113
|
-
|
114
|
-
After that you can sepcify custom class in options.
|
115
|
-
|
116
|
-
```ruby
|
117
|
-
class User
|
118
|
-
acts_as_messageable :class_name => "CustomMessage"
|
119
|
-
end
|
120
|
-
```
|
121
|
-
|
122
|
-
From now on, your message has custom class.
|
123
|
-
|
124
|
-
```ruby
|
125
|
-
@message = @alice.send_message(@bob, "hi!")
|
126
|
-
@message # => #<CustomMessage:0x000000024b6278>
|
127
|
-
@message.capitalize_title # => "Hi!"
|
128
|
-
```
|
129
|
-
|
130
83
|
Conversation
|
131
84
|
============
|
132
85
|
|
@@ -288,32 +241,6 @@ end
|
|
288
241
|
@alice.restore_message(@message) # @alice restore message from trash
|
289
242
|
```
|
290
243
|
|
291
|
-
Group message
|
292
|
-
=============
|
293
|
-
|
294
|
-
## Enable group messages
|
295
|
-
|
296
|
-
```ruby
|
297
|
-
class User
|
298
|
-
acts_as_messageable :group_messages => true
|
299
|
-
end
|
300
|
-
```
|
301
|
-
|
302
|
-
## How to join other users's conversation
|
303
|
-
|
304
|
-
```ruby
|
305
|
-
@message = @alice.send_message(@bob, :topic => "Helou bob!", :body => "What's up?")
|
306
|
-
@reply_message = @sukhi.reply_to(@message, "Hi there!", "I would like to join to this conversation!")
|
307
|
-
@sec_reply_message = @bob.reply_to(@message, "Hi!", "Fine!")
|
308
|
-
@third_reply_message = @alice.reply_to(@reply_message, "hi!", "no problem")
|
309
|
-
```
|
310
|
-
|
311
|
-
## Know the people involved in conversation
|
312
|
-
|
313
|
-
```ruby
|
314
|
-
@message.people # will give you participants users object
|
315
|
-
@message.people # => [@alice, @bob, @sukhi]
|
316
|
-
```
|
317
244
|
|
318
245
|
Search
|
319
246
|
======
|
@@ -324,4 +251,14 @@ Search
|
|
324
251
|
@alice.messages.search("Search me") @alice seach text "Search me" from all messages
|
325
252
|
```
|
326
253
|
|
327
|
-
|
254
|
+
Gem
|
255
|
+
===========
|
256
|
+
```
|
257
|
+
rspec spec
|
258
|
+
rake gemspec
|
259
|
+
gem build acts_as_chattable.gemspec
|
260
|
+
gem push acts_as_chattable-0.0.x.gem
|
261
|
+
|
262
|
+
|
263
|
+
|
264
|
+
Copyright © 2013 Ben Bruscella, released under the MIT license
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/acts_as_chattable.gemspec
CHANGED
data/coverage/.last_run.json
CHANGED
data/coverage/.resultset.json
CHANGED
@@ -53,36 +53,36 @@
|
|
53
53
|
null,
|
54
54
|
null,
|
55
55
|
1,
|
56
|
-
|
56
|
+
31,
|
57
57
|
null,
|
58
58
|
null,
|
59
59
|
null,
|
60
60
|
null,
|
61
61
|
null,
|
62
|
-
|
62
|
+
31,
|
63
63
|
null,
|
64
|
-
|
64
|
+
31,
|
65
65
|
null,
|
66
66
|
null,
|
67
67
|
null,
|
68
|
-
|
68
|
+
31,
|
69
69
|
null,
|
70
70
|
null,
|
71
71
|
null,
|
72
72
|
null,
|
73
|
-
|
73
|
+
31,
|
74
74
|
null,
|
75
|
-
|
76
|
-
|
75
|
+
31,
|
76
|
+
31,
|
77
77
|
null,
|
78
78
|
0,
|
79
79
|
0,
|
80
80
|
null,
|
81
81
|
null,
|
82
|
-
|
83
|
-
|
82
|
+
31,
|
83
|
+
31,
|
84
84
|
null,
|
85
|
-
|
85
|
+
31,
|
86
86
|
null,
|
87
87
|
null,
|
88
88
|
null,
|
@@ -95,6 +95,7 @@
|
|
95
95
|
null,
|
96
96
|
1,
|
97
97
|
null,
|
98
|
+
null,
|
98
99
|
1,
|
99
100
|
35,
|
100
101
|
35,
|
@@ -102,6 +103,13 @@
|
|
102
103
|
35,
|
103
104
|
null,
|
104
105
|
null,
|
106
|
+
1,
|
107
|
+
null,
|
108
|
+
null,
|
109
|
+
null,
|
110
|
+
4,
|
111
|
+
null,
|
112
|
+
null,
|
105
113
|
null,
|
106
114
|
1,
|
107
115
|
12,
|
@@ -132,23 +140,23 @@
|
|
132
140
|
null,
|
133
141
|
null,
|
134
142
|
1,
|
135
|
-
|
143
|
+
38,
|
136
144
|
null,
|
137
|
-
|
145
|
+
38,
|
138
146
|
null,
|
139
|
-
|
140
|
-
|
147
|
+
37,
|
148
|
+
37,
|
141
149
|
null,
|
142
150
|
null,
|
143
151
|
1,
|
144
152
|
null,
|
145
153
|
null,
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
154
|
+
38,
|
155
|
+
38,
|
156
|
+
38,
|
157
|
+
38,
|
150
158
|
null,
|
151
|
-
|
159
|
+
38,
|
152
160
|
null,
|
153
161
|
null,
|
154
162
|
null,
|
@@ -210,9 +218,6 @@
|
|
210
218
|
null,
|
211
219
|
null,
|
212
220
|
null,
|
213
|
-
1,
|
214
|
-
0,
|
215
|
-
null,
|
216
221
|
null,
|
217
222
|
null
|
218
223
|
],
|
@@ -306,7 +311,7 @@
|
|
306
311
|
null,
|
307
312
|
null,
|
308
313
|
1,
|
309
|
-
|
314
|
+
133,
|
310
315
|
null,
|
311
316
|
null,
|
312
317
|
1,
|
@@ -314,14 +319,14 @@
|
|
314
319
|
null,
|
315
320
|
null,
|
316
321
|
1,
|
317
|
-
|
322
|
+
132,
|
318
323
|
null,
|
319
324
|
null,
|
320
325
|
null
|
321
326
|
],
|
322
327
|
"/Users/benbruscella/Projects/Github/acts_as_chattable/spec/support/send_message.rb": [
|
323
328
|
1,
|
324
|
-
|
329
|
+
34,
|
325
330
|
null
|
326
331
|
],
|
327
332
|
"/Users/benbruscella/Projects/Github/acts_as_chattable/spec/support/user.rb": [
|
@@ -333,6 +338,6 @@
|
|
333
338
|
null
|
334
339
|
]
|
335
340
|
},
|
336
|
-
"timestamp":
|
341
|
+
"timestamp": 1376119382
|
337
342
|
}
|
338
343
|
}
|
@@ -55,6 +55,7 @@ module ActsAsChattable
|
|
55
55
|
end
|
56
56
|
|
57
57
|
module InstanceMethods
|
58
|
+
|
58
59
|
# @return [ActiveRecord::Relation] all messages connected with user
|
59
60
|
def messages(trash = false)
|
60
61
|
result = self.class.messages_class_name.connected_with(self, trash)
|
@@ -63,6 +64,13 @@ module ActsAsChattable
|
|
63
64
|
result
|
64
65
|
end
|
65
66
|
|
67
|
+
def messages_with(friend)
|
68
|
+
ActsAsChattable::Message.where("(received_messageable_id = #{self.id} AND sent_messageable_id = #{friend.id})
|
69
|
+
OR
|
70
|
+
(sent_messageable_id = #{self.id} AND received_messageable_id = #{friend.id})")
|
71
|
+
.order('id DESC')
|
72
|
+
end
|
73
|
+
|
66
74
|
# @return [ActiveRecord::Relation] returns all messages from inbox
|
67
75
|
def received_messages
|
68
76
|
result = ActsAsChattable.rails_api.new(received_messages_relation)
|
@@ -157,14 +157,14 @@ describe "ActsAsChattable" do
|
|
157
157
|
@bob.messages.first.body == "Body"
|
158
158
|
end
|
159
159
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
160
|
+
describe "conversation" do
|
161
|
+
it "bob send message to alice, and alice reply to bob message and show proper tree" do
|
162
|
+
@alice.send_message(@bob, "Re: Body")
|
163
|
+
@alice.messages_with(@bob).size.should eq(2)
|
164
|
+
@alice.messages_with(@bob).last.body.should == "Body"
|
165
|
+
@alice.messages_with(@bob).first.body.should == "Re: Body"
|
166
|
+
@bob.messages_with(@alice).size.should eq(2)
|
167
|
+
end
|
168
168
|
|
169
169
|
# it "bob send message to alice, alice answer, and bob answer for alice answer" do
|
170
170
|
# @reply_message = @alice.reply_to(@message, "Re: Topic", "Body")
|
@@ -177,7 +177,7 @@ describe "ActsAsChattable" do
|
|
177
177
|
# @message.conversation.first.should == @reply_reply_message
|
178
178
|
# @reply_reply_message.conversation.first.should == @reply_reply_message
|
179
179
|
# end
|
180
|
-
|
180
|
+
end
|
181
181
|
|
182
182
|
# describe "conversations" do
|
183
183
|
# before do
|