Commit eecc8ff382ffc8e13e1b48d3891197c901effc04

Authored by Luciano Prestes
1 parent 93137fa5
Exists in master

Refactoring the activities hash to general profiles

Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com>
Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
lib/ext/person.rb
... ... @@ -11,8 +11,6 @@ class Person
11 11  
12 12 attrs = softwares_attrs(attrs)
13 13  
14   - attrs = activities_attrs(attrs)
15   -
16 14 attrs
17 15 end
18 16  
... ... @@ -49,21 +47,6 @@ class Person
49 47 attrs
50 48 end
51 49  
52   - def activities_attrs(attrs)
53   - attrs['activities'] = []
54   -
55   - ids = self.activities.collect { |a| a.id }
56   -
57   - ActionTracker::Record.find(ids).collect { |a|
58   - attrs['activities'] << {
59   - "verb" => a.verb,
60   - "params" => a.params
61   - }
62   - }
63   -
64   - attrs
65   - end
66   -
67 50 private
68 51  
69 52 def profile_attrs(profile)
... ...
lib/ext/profile.rb
... ... @@ -18,6 +18,24 @@ class Profile
18 18 attrs['articles'] << article.attr_to_hash
19 19 end
20 20  
  21 + attrs['activities-count'] = self.activities.count
  22 + attrs['activities'] = activities_attrs
  23 +
  24 + attrs
  25 + end
  26 +
  27 + def activities_attrs
  28 + attrs = []
  29 +
  30 + ids = self.activities.collect { |activity| activity.id }
  31 +
  32 + ActionTracker::Record.find(ids).collect { |activity|
  33 + attrs << {
  34 + 'verb' => activity.verb,
  35 + 'params' => activity.params
  36 + }
  37 + }
  38 +
21 39 attrs
22 40 end
23 41 end
... ...
test/functional/colab_integration_plugin_controller_test.rb
... ... @@ -45,42 +45,14 @@ class ColabIntegrationPluginControllerTest &lt; ActionController::TestCase
45 45 assert_equal persons_with_article.count, 1
46 46 end
47 47  
48   - #TODO - FIXME
49   - should "return a json with activities of the user" do
50   - create_article_by_post @john, "The winter is coming", "help"
51   - create_article_by_post @john, "The coming is winter", "help"
52   - create_article_by_post @john, "winter is", "help"
53   -
54   - puts "="*80, @john.activities_attrs({}), "="*80
55   -
56   - assert_equal 1, 1
57   - end
58   -
59   - private
60   -
61   - def create_article_by_post profile, article_name, article_body
62   - @controller = CmsController.new
63   -
64   - post(
65   - "new",
66   - :article => {
67   - :name => article_name,
68   - :parent_id => "",
69   - :license_id => "",
70   - :abstract => "",
71   - :body =>"<p>#{article_body}</p> ",
72   - :category_ids =>[""],
73   - :tag_list => "",
74   - :published => "true",
75   - :show_to_followers =>"0",
76   - :accept_comments => "1",
77   - :notify_comments => "1",
78   - :moderate_comments =>"0",
79   - :display_hits => "1",
80   - :display_versions => "0"
81   - },
82   - :commit => "Save",
83   - :profile => profile
84   - )
  48 + should "return a hash with activities of the user" do
  49 + user = fast_create(Person, :name => "User")
  50 + fast_create(Community, :name => "User Community").add_member user
  51 + fast_create(Community, :name => "User Community 2").add_member user
  52 +
  53 + assert_equal 2, user.activities_attrs.count
  54 + assert user.activities_attrs.first.has_key?("verb")
  55 + assert user.activities_attrs.first.has_key?("params")
  56 + assert user.activities_attrs.first["verb"] == "join_community"
85 57 end
86 58 end
... ...