yamwow 0.0.3 → 0.0.4
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/lib/yamwow/facade.rb
CHANGED
@@ -5,15 +5,15 @@ module YamWow
|
|
5
5
|
@client = Client.new oauth_credentials
|
6
6
|
end
|
7
7
|
|
8
|
-
def messages_for_topic(topic_name)
|
8
|
+
def messages_for_topic(topic_name, options={})
|
9
9
|
request = MessagesByTopicRequest.new @client
|
10
|
-
response = request.send topic_name
|
10
|
+
response = request.send topic_name, options
|
11
11
|
response.messages
|
12
12
|
end
|
13
13
|
|
14
|
-
def praises
|
14
|
+
def praises(options={})
|
15
15
|
request = PraiseRequest.new @client
|
16
|
-
response = request.send
|
16
|
+
response = request.send options
|
17
17
|
response.praises
|
18
18
|
end
|
19
19
|
|
data/lib/yamwow/message.rb
CHANGED
@@ -4,12 +4,12 @@ module YamWow
|
|
4
4
|
class Message
|
5
5
|
|
6
6
|
def initialize(message_data, reference_data)
|
7
|
-
@
|
7
|
+
@message_data = message_data
|
8
8
|
@reference_data = reference_data
|
9
9
|
end
|
10
10
|
|
11
11
|
def id
|
12
|
-
@
|
12
|
+
@message_data['id']
|
13
13
|
end
|
14
14
|
|
15
15
|
def sender_tag
|
@@ -37,29 +37,33 @@ module YamWow
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def date_created
|
40
|
-
Time.parse @
|
40
|
+
Time.parse @message_data['created_at']
|
41
41
|
end
|
42
42
|
|
43
43
|
def like_count
|
44
|
-
@
|
44
|
+
@message_data['liked_by']['count'].to_i
|
45
45
|
end
|
46
46
|
|
47
47
|
def url
|
48
|
-
@
|
48
|
+
@message_data['web_url']
|
49
49
|
end
|
50
50
|
|
51
51
|
def attachments
|
52
|
-
@
|
52
|
+
@message_data['attachments']
|
53
|
+
end
|
54
|
+
|
55
|
+
def thread_root?
|
56
|
+
@message_data.select { |m| m['replied_to_id'].nil? }
|
53
57
|
end
|
54
58
|
|
55
59
|
private
|
56
60
|
|
57
61
|
def sender_id
|
58
|
-
@
|
62
|
+
@message_data['sender_id']
|
59
63
|
end
|
60
64
|
|
61
65
|
def body
|
62
|
-
@
|
66
|
+
@message_data['body']
|
63
67
|
end
|
64
68
|
|
65
69
|
def get_name(id)
|
@@ -9,19 +9,31 @@ module YamWow
|
|
9
9
|
@client = client
|
10
10
|
end
|
11
11
|
|
12
|
-
def send(topic_name)
|
12
|
+
def send(topic_name, options={})
|
13
13
|
topic_id = get_topic_id topic_name
|
14
|
+
limit_count = (options[:limit_count] || 0).to_i
|
14
15
|
|
15
16
|
oldest_message_id = nil
|
16
|
-
message_data = []
|
17
17
|
reference_data = []
|
18
|
+
messages = []
|
19
|
+
limit_reached = false
|
18
20
|
|
19
21
|
loop do
|
20
22
|
response_data = get topic_id, oldest_message_id
|
21
|
-
message_data += response_data['messages']
|
22
23
|
reference_data += response_data['references']
|
23
|
-
|
24
|
-
|
24
|
+
message_data = response_data['messages']
|
25
|
+
messages += message_data.map { |m| Message.new m, reference_data }.select { |m| m.thread_root? }
|
26
|
+
|
27
|
+
if limit_count > 0
|
28
|
+
messages = messages[0..limit_count-1]
|
29
|
+
limit_reached = messages.length == limit_count
|
30
|
+
end
|
31
|
+
|
32
|
+
response = MessagesByTopicResponse.new messages
|
33
|
+
oldest_message_reached = response.oldest_message_id == oldest_message_id
|
34
|
+
loop_finished = oldest_message_reached || limit_reached
|
35
|
+
return response if loop_finished
|
36
|
+
|
25
37
|
oldest_message_id = response.oldest_message_id
|
26
38
|
end
|
27
39
|
end
|
@@ -1,15 +1,10 @@
|
|
1
1
|
module YamWow
|
2
2
|
class MessagesByTopicResponse
|
3
3
|
|
4
|
-
attr_reader :
|
4
|
+
attr_reader :messages
|
5
5
|
|
6
|
-
def initialize(
|
7
|
-
@
|
8
|
-
@reference_data = reference_data
|
9
|
-
end
|
10
|
-
|
11
|
-
def messages
|
12
|
-
@messages ||= root_messages.map { |m| Message.new m, @reference_data }
|
6
|
+
def initialize(messages)
|
7
|
+
@messages = messages
|
13
8
|
end
|
14
9
|
|
15
10
|
def oldest_message_id
|
@@ -17,11 +12,5 @@ module YamWow
|
|
17
12
|
last_message.id if last_message
|
18
13
|
end
|
19
14
|
|
20
|
-
private
|
21
|
-
|
22
|
-
def root_messages
|
23
|
-
@topic_data.select { |m| m['replied_to_id'].nil? }
|
24
|
-
end
|
25
|
-
|
26
15
|
end
|
27
16
|
end
|
@@ -7,9 +7,9 @@ module YamWow
|
|
7
7
|
@client = client
|
8
8
|
end
|
9
9
|
|
10
|
-
def send
|
10
|
+
def send(options={})
|
11
11
|
messages_by_topic_request = MessagesByTopicRequest.new @client
|
12
|
-
messages_by_topic_response = messages_by_topic_request.send 'praise'
|
12
|
+
messages_by_topic_response = messages_by_topic_request.send 'praise', options
|
13
13
|
PraiseResponse.new messages_by_topic_response.messages
|
14
14
|
end
|
15
15
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yamwow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
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: 2013-01-
|
12
|
+
date: 2013-01-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oauth
|
16
|
-
requirement: &
|
16
|
+
requirement: &70128193076360 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70128193076360
|
25
25
|
description:
|
26
26
|
email: matthew-github@matthewriley.name
|
27
27
|
executables: []
|