yamwow 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
data/lib/yamwow/facade.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require_relative 'client'
2
2
  Dir[File.expand_path(File.dirname(__FILE__) + '/*_request.rb')].each { |f| require f }
3
+ require_relative 'message_builder'
3
4
 
4
5
  module YamWow
5
6
  class Facade
@@ -9,7 +10,9 @@ module YamWow
9
10
  end
10
11
 
11
12
  def messages_with_topic(topic_name, options={})
12
- MessagesWithTopicRequest.new(@client, topic_name, options).send
13
+ r = MessagesWithTopicRequest.new(@client, topic_name, options).send
14
+ b = MessageBuilder.new
15
+ r['messages'].map { |m| b.build_message m, r['references'] }
13
16
  end
14
17
 
15
18
  def praises(options={})
@@ -0,0 +1,30 @@
1
+ module YamWow
2
+ class MessageBuilder
3
+
4
+ def build_message(message_data, reference_data)
5
+ d = message_data
6
+ m = Message.new
7
+ m.id = d['id']
8
+ m.plain_body = d['body']['plain']
9
+ m.parsed_body = d['body']['parsed']
10
+ m.date_created = Time.parse d['created_at']
11
+ m.like_count = d['liked_by']['count'].to_i
12
+ m.url = d['web_url']
13
+ m.sender = build_user d['sender_id'], reference_data
14
+ m.reply_to_id = d['replied_to_id']
15
+ m.attachments = d['attachments']
16
+ m
17
+ end
18
+
19
+ private
20
+
21
+ def build_user(user_id, reference_data)
22
+ d = reference_data.select { |r| r['id'] == user_id }[0]
23
+ u = User.new
24
+ u.id = d['id']
25
+ u.name = d['full_name']
26
+ u
27
+ end
28
+
29
+ end
30
+ end
@@ -13,6 +13,7 @@ module YamWow
13
13
 
14
14
  def send
15
15
  @messages = []
16
+ @references = []
16
17
  loop_finished = false
17
18
 
18
19
  until loop_finished
@@ -24,8 +25,12 @@ module YamWow
24
25
  loop_finished = no_more_messages || limit_reached
25
26
  end
26
27
 
27
- @messages.sort! { |x, y| y.date_created <=> x.date_created }
28
- @messages
28
+ @messages.sort! { |x, y| Time.parse(y['created_at']) <=> Time.parse(x['created_at']) }
29
+
30
+ {
31
+ 'messages' => @messages,
32
+ 'references' => @references
33
+ }
29
34
  end
30
35
 
31
36
  private
@@ -46,40 +51,19 @@ module YamWow
46
51
  end
47
52
 
48
53
  def oldest_message_id
49
- last_message = @messages.sort { |x, y| y.date_created <=> x.date_created }.last
54
+ sorted_messages = @messages.sort { |x, y| Time.parse(y['created_at']) <=> Time.parse(x['created_at']) }
55
+ last_message = sorted_messages.last
50
56
  last_message.id if last_message
51
57
  end
52
58
 
53
59
  def add_messages(messages_data, reference_data)
54
60
  @messages += build_messages messages_data, reference_data
55
61
  @messages = @messages[0..limit_count-1] if limit_count > 0
62
+ @references += reference_data
56
63
  end
57
64
 
58
65
  def build_messages(messages_data, reference_data)
59
- messages_data.map { |m| build_message m, reference_data }.select { |m| m.thread_root? }
60
- end
61
-
62
- def build_message(message_data, reference_data)
63
- d = message_data
64
- m = Message.new
65
- m.id = d['id']
66
- m.plain_body = d['body']['plain']
67
- m.parsed_body = d['body']['parsed']
68
- m.date_created = Time.parse d['created_at']
69
- m.like_count = d['liked_by']['count'].to_i
70
- m.url = d['web_url']
71
- m.sender = build_user d['sender_id'], reference_data
72
- m.reply_to_id = d['replied_to_id']
73
- m.attachments = d['attachments']
74
- m
75
- end
76
-
77
- def build_user(user_id, reference_data)
78
- d = reference_data.select { |r| r['id'] == user_id }[0]
79
- u = User.new
80
- u.id = d['id']
81
- u.name = d['full_name']
82
- u
66
+ messages_data.select { |m| m['replied_to_id'].nil? }
83
67
  end
84
68
 
85
69
  def limit_reached
@@ -91,4 +75,4 @@ module YamWow
91
75
  end
92
76
 
93
77
  end
94
- end
78
+ end
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.9
4
+ version: 0.0.10
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-02-05 00:00:00.000000000 Z
12
+ date: 2013-02-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yam
16
- requirement: &70195163260140 !ruby/object:Gem::Requirement
16
+ requirement: &70150410097100 !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: *70195163260140
24
+ version_requirements: *70150410097100
25
25
  description:
26
26
  email: matthew-github@matthewriley.name
27
27
  executables: []
@@ -35,6 +35,7 @@ files:
35
35
  - lib/yamwow/group.rb
36
36
  - lib/yamwow/group_with_name_request.rb
37
37
  - lib/yamwow/message.rb
38
+ - lib/yamwow/message_builder.rb
38
39
  - lib/yamwow/messages_with_topic_request.rb
39
40
  - lib/yamwow/praise.rb
40
41
  - lib/yamwow/praise_request.rb