socializer 0.1.13

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.
Files changed (291) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +11 -0
  3. data/.gitignore +29 -0
  4. data/.rubocop.yml +42 -0
  5. data/.travis.yml +13 -0
  6. data/CONTRIBUTING.md +46 -0
  7. data/Gemfile +31 -0
  8. data/README.md +91 -0
  9. data/Rakefile +38 -0
  10. data/app/assets/images/socializer/.gitkeep +0 -0
  11. data/app/assets/images/socializer/auth_buttons/facebook_128.png +0 -0
  12. data/app/assets/images/socializer/auth_buttons/facebook_256.png +0 -0
  13. data/app/assets/images/socializer/auth_buttons/facebook_32.png +0 -0
  14. data/app/assets/images/socializer/auth_buttons/facebook_64.png +0 -0
  15. data/app/assets/images/socializer/auth_buttons/google_128.png +0 -0
  16. data/app/assets/images/socializer/auth_buttons/google_256.png +0 -0
  17. data/app/assets/images/socializer/auth_buttons/google_32.png +0 -0
  18. data/app/assets/images/socializer/auth_buttons/google_64.png +0 -0
  19. data/app/assets/images/socializer/auth_buttons/linkedin_128.png +0 -0
  20. data/app/assets/images/socializer/auth_buttons/linkedin_256.png +0 -0
  21. data/app/assets/images/socializer/auth_buttons/linkedin_32.png +0 -0
  22. data/app/assets/images/socializer/auth_buttons/linkedin_64.png +0 -0
  23. data/app/assets/images/socializer/auth_buttons/twitter_128.png +0 -0
  24. data/app/assets/images/socializer/auth_buttons/twitter_256.png +0 -0
  25. data/app/assets/images/socializer/auth_buttons/twitter_32.png +0 -0
  26. data/app/assets/images/socializer/auth_buttons/twitter_64.png +0 -0
  27. data/app/assets/images/socializer/auth_buttons/yahoo_128.png +0 -0
  28. data/app/assets/images/socializer/auth_buttons/yahoo_256.png +0 -0
  29. data/app/assets/images/socializer/auth_buttons/yahoo_32.png +0 -0
  30. data/app/assets/images/socializer/auth_buttons/yahoo_64.png +0 -0
  31. data/app/assets/images/socializer/close.png +0 -0
  32. data/app/assets/images/socializer/icons/Bell.png +0 -0
  33. data/app/assets/images/socializer/icons/Edit.png +0 -0
  34. data/app/assets/images/socializer/icons/Home.png +0 -0
  35. data/app/assets/images/socializer/icons/Power.png +0 -0
  36. data/app/assets/images/socializer/icons/Safe.png +0 -0
  37. data/app/assets/images/socializer/icons/User.png +0 -0
  38. data/app/assets/images/socializer/icons/Users.png +0 -0
  39. data/app/assets/images/socializer/icons/Web.png +0 -0
  40. data/app/assets/images/socializer/loading.gif +0 -0
  41. data/app/assets/images/socializer/next.png +0 -0
  42. data/app/assets/images/socializer/pause.png +0 -0
  43. data/app/assets/images/socializer/play.png +0 -0
  44. data/app/assets/images/socializer/previous.png +0 -0
  45. data/app/assets/javascripts/socializer/activities.js.coffee +47 -0
  46. data/app/assets/javascripts/socializer/application.js +24 -0
  47. data/app/assets/javascripts/socializer/circles.js.coffee +33 -0
  48. data/app/assets/javascripts/socializer/jquery.qtip.min.js +7 -0
  49. data/app/assets/javascripts/socializer/jquery.tokeninput.js +862 -0
  50. data/app/assets/javascripts/socializer/notes.js.coffee +38 -0
  51. data/app/assets/javascripts/socializer/people.js.coffee +7 -0
  52. data/app/assets/javascripts/socializer/shares.js.coffee +8 -0
  53. data/app/assets/stylesheets/socializer/activities.css +84 -0
  54. data/app/assets/stylesheets/socializer/application.css +409 -0
  55. data/app/assets/stylesheets/socializer/authentications.css +4 -0
  56. data/app/assets/stylesheets/socializer/circles.css +74 -0
  57. data/app/assets/stylesheets/socializer/comments.css +4 -0
  58. data/app/assets/stylesheets/socializer/groups.css +61 -0
  59. data/app/assets/stylesheets/socializer/jquery.qtip.min.css +2 -0
  60. data/app/assets/stylesheets/socializer/likes.css +4 -0
  61. data/app/assets/stylesheets/socializer/memberships.css +4 -0
  62. data/app/assets/stylesheets/socializer/notes.css +21 -0
  63. data/app/assets/stylesheets/socializer/notifications.css +46 -0
  64. data/app/assets/stylesheets/socializer/pages.css +4 -0
  65. data/app/assets/stylesheets/socializer/persons.css +25 -0
  66. data/app/assets/stylesheets/socializer/sessions.css +4 -0
  67. data/app/assets/stylesheets/socializer/shares.css.scss +3 -0
  68. data/app/assets/stylesheets/socializer/ties.css +4 -0
  69. data/app/assets/stylesheets/socializer/token-input.css +183 -0
  70. data/app/controllers/socializer/activities_controller.rb +84 -0
  71. data/app/controllers/socializer/application_controller.rb +37 -0
  72. data/app/controllers/socializer/audiences_controller.rb +30 -0
  73. data/app/controllers/socializer/authentications_controller.rb +13 -0
  74. data/app/controllers/socializer/circles_controller.rb +54 -0
  75. data/app/controllers/socializer/comments_controller.rb +37 -0
  76. data/app/controllers/socializer/groups_controller.rb +70 -0
  77. data/app/controllers/socializer/likes_controller.rb +50 -0
  78. data/app/controllers/socializer/memberships_controller.rb +46 -0
  79. data/app/controllers/socializer/notes_controller.rb +43 -0
  80. data/app/controllers/socializer/notifications_controller.rb +29 -0
  81. data/app/controllers/socializer/pages_controller.rb +7 -0
  82. data/app/controllers/socializer/people_controller.rb +37 -0
  83. data/app/controllers/socializer/person_addresses_controller.rb +27 -0
  84. data/app/controllers/socializer/person_contributions_controller.rb +27 -0
  85. data/app/controllers/socializer/person_educations_controller.rb +27 -0
  86. data/app/controllers/socializer/person_employments_controller.rb +27 -0
  87. data/app/controllers/socializer/person_links_controller.rb +27 -0
  88. data/app/controllers/socializer/person_phones_controller.rb +27 -0
  89. data/app/controllers/socializer/person_places_controller.rb +27 -0
  90. data/app/controllers/socializer/person_profiles_controller.rb +27 -0
  91. data/app/controllers/socializer/sessions_controller.rb +37 -0
  92. data/app/controllers/socializer/shares_controller.rb +54 -0
  93. data/app/controllers/socializer/ties_controller.rb +16 -0
  94. data/app/helpers/socializer/application_helper.rb +22 -0
  95. data/app/models/concerns/socializer/object_type_base.rb +58 -0
  96. data/app/models/socializer/activity.rb +162 -0
  97. data/app/models/socializer/activity_field.rb +10 -0
  98. data/app/models/socializer/activity_object.rb +118 -0
  99. data/app/models/socializer/audience.rb +19 -0
  100. data/app/models/socializer/authentication.rb +20 -0
  101. data/app/models/socializer/circle.rb +32 -0
  102. data/app/models/socializer/comment.rb +13 -0
  103. data/app/models/socializer/group.rb +100 -0
  104. data/app/models/socializer/group_category.rb +11 -0
  105. data/app/models/socializer/group_link.rb +12 -0
  106. data/app/models/socializer/identity.rb +9 -0
  107. data/app/models/socializer/membership.rb +24 -0
  108. data/app/models/socializer/note.rb +13 -0
  109. data/app/models/socializer/notification.rb +16 -0
  110. data/app/models/socializer/person.rb +129 -0
  111. data/app/models/socializer/person_address.rb +12 -0
  112. data/app/models/socializer/person_contribution.rb +12 -0
  113. data/app/models/socializer/person_education.rb +8 -0
  114. data/app/models/socializer/person_employment.rb +8 -0
  115. data/app/models/socializer/person_link.rb +12 -0
  116. data/app/models/socializer/person_phone.rb +16 -0
  117. data/app/models/socializer/person_place.rb +11 -0
  118. data/app/models/socializer/person_profile.rb +12 -0
  119. data/app/models/socializer/tie.rb +12 -0
  120. data/app/models/socializer/verb.rb +9 -0
  121. data/app/views/layouts/socializer/_header.html.erb +11 -0
  122. data/app/views/layouts/socializer/application.html.erb +60 -0
  123. data/app/views/socializer/activities/_activity.html.erb +23 -0
  124. data/app/views/socializer/activities/_activity_bottom.html.erb +55 -0
  125. data/app/views/socializer/activities/_activity_content.html.erb +19 -0
  126. data/app/views/socializer/activities/_activity_top.html.erb +22 -0
  127. data/app/views/socializer/activities/_stream_card.html.erb +6 -0
  128. data/app/views/socializer/activities/_stream_list.html.erb +16 -0
  129. data/app/views/socializer/activities/audience.html.erb +19 -0
  130. data/app/views/socializer/activities/destroy.js.erb +3 -0
  131. data/app/views/socializer/activities/edit.html.erb +0 -0
  132. data/app/views/socializer/activities/index.html.erb +15 -0
  133. data/app/views/socializer/authentications/_form.html.erb +0 -0
  134. data/app/views/socializer/authentications/_menu.html.erb +5 -0
  135. data/app/views/socializer/authentications/index.html.erb +8 -0
  136. data/app/views/socializer/authentications/new.html.erb +8 -0
  137. data/app/views/socializer/circles/_card.html.erb +7 -0
  138. data/app/views/socializer/circles/_circles.html.erb +6 -0
  139. data/app/views/socializer/circles/_form.html.erb +6 -0
  140. data/app/views/socializer/circles/_menu.html.erb +7 -0
  141. data/app/views/socializer/circles/contact_of.html.erb +7 -0
  142. data/app/views/socializer/circles/contacts.html.erb +7 -0
  143. data/app/views/socializer/circles/edit.html.erb +1 -0
  144. data/app/views/socializer/circles/find_people.html.erb +7 -0
  145. data/app/views/socializer/circles/index.html.erb +6 -0
  146. data/app/views/socializer/circles/new.html.erb +1 -0
  147. data/app/views/socializer/circles/show.html.erb +10 -0
  148. data/app/views/socializer/comments/_form.html.erb +8 -0
  149. data/app/views/socializer/comments/edit.html.erb +1 -0
  150. data/app/views/socializer/comments/new.html.erb +1 -0
  151. data/app/views/socializer/groups/_card.html.erb +6 -0
  152. data/app/views/socializer/groups/_form.html.erb +6 -0
  153. data/app/views/socializer/groups/_menu.html.erb +10 -0
  154. data/app/views/socializer/groups/edit.html.erb +1 -0
  155. data/app/views/socializer/groups/index.html.erb +0 -0
  156. data/app/views/socializer/groups/joinable.html.erb +16 -0
  157. data/app/views/socializer/groups/memberships.html.erb +19 -0
  158. data/app/views/socializer/groups/new.html.erb +1 -0
  159. data/app/views/socializer/groups/ownerships.html.erb +20 -0
  160. data/app/views/socializer/groups/pending_invites.html.erb +20 -0
  161. data/app/views/socializer/groups/public.html.erb +16 -0
  162. data/app/views/socializer/groups/restricted.html.erb +16 -0
  163. data/app/views/socializer/groups/show.html.erb +29 -0
  164. data/app/views/socializer/likes/create.js.erb +2 -0
  165. data/app/views/socializer/likes/destroy.js.erb +2 -0
  166. data/app/views/socializer/likes/index.html.erb +5 -0
  167. data/app/views/socializer/notes/_form.html.erb +7 -0
  168. data/app/views/socializer/notes/create.js.erb +10 -0
  169. data/app/views/socializer/notes/destroy.js.erb +3 -0
  170. data/app/views/socializer/notes/edit.html.erb +1 -0
  171. data/app/views/socializer/notes/new.html.erb +2 -0
  172. data/app/views/socializer/notifications/index.html.erb +35 -0
  173. data/app/views/socializer/pages/index.html.erb +2 -0
  174. data/app/views/socializer/people/_card.html.erb +15 -0
  175. data/app/views/socializer/people/_form.html.erb +30 -0
  176. data/app/views/socializer/people/_login.html.erb +14 -0
  177. data/app/views/socializer/people/_menu.html.erb +9 -0
  178. data/app/views/socializer/people/edit.html.erb +2 -0
  179. data/app/views/socializer/people/index.html.erb +5 -0
  180. data/app/views/socializer/people/likes.html.erb +6 -0
  181. data/app/views/socializer/people/message.html.erb +5 -0
  182. data/app/views/socializer/people/show.html.erb +122 -0
  183. data/app/views/socializer/person_addresses/_form.html.erb +12 -0
  184. data/app/views/socializer/person_contributions/_form.html.erb +7 -0
  185. data/app/views/socializer/person_educations/_form.html.erb +10 -0
  186. data/app/views/socializer/person_employments/_form.html.erb +10 -0
  187. data/app/views/socializer/person_links/_form.html.erb +6 -0
  188. data/app/views/socializer/person_phones/_form.html.erb +6 -0
  189. data/app/views/socializer/person_places/_form.html.erb +6 -0
  190. data/app/views/socializer/person_profiles/_form.html.erb +6 -0
  191. data/app/views/socializer/shares/_form.html.erb +19 -0
  192. data/app/views/socializer/shares/new.html.erb +1 -0
  193. data/config.ru +4 -0
  194. data/config/cucumber.yml +8 -0
  195. data/config/initializers/inflections.rb +3 -0
  196. data/config/locales/en.yml +108 -0
  197. data/config/locales/fr.yml +329 -0
  198. data/config/rails_best_practices.yml +41 -0
  199. data/config/routes.rb +71 -0
  200. data/db/migrate/20110804175740_create_socializer_activity_objects.rb +14 -0
  201. data/db/migrate/20110804180557_create_socializer_people.rb +31 -0
  202. data/db/migrate/20110804184415_create_socializer_notes.rb +12 -0
  203. data/db/migrate/20110804192211_create_socializer_authentications.rb +12 -0
  204. data/db/migrate/20110805085417_create_socializer_circles.rb +14 -0
  205. data/db/migrate/20110805090617_create_socializer_activities.rb +17 -0
  206. data/db/migrate/20110805092635_create_socializer_audiences.rb +14 -0
  207. data/db/migrate/20110805094846_create_socializer_comments.rb +12 -0
  208. data/db/migrate/20110805121454_create_socializer_groups.rb +19 -0
  209. data/db/migrate/20110805121543_create_socializer_memberships.rb +14 -0
  210. data/db/migrate/20110805125606_create_socializer_ties.rb +13 -0
  211. data/db/migrate/20111207234435_create_socializer_identities.rb +12 -0
  212. data/db/migrate/20130524000429_create_socializer_verbs.rb +10 -0
  213. data/db/migrate/20130528143831_create_socializer_activity_fields.rb +10 -0
  214. data/db/migrate/20140128235250_create_socializer_notifications.rb +11 -0
  215. data/db/migrate/20140131065531_create_socializer_person_employments.rb +15 -0
  216. data/db/migrate/20140131065733_create_socializer_person_educations.rb +15 -0
  217. data/db/migrate/20140131065836_create_socializer_person_places.rb +11 -0
  218. data/db/migrate/20140131070051_create_socializer_person_contributions.rb +12 -0
  219. data/db/migrate/20140131070232_create_socializer_person_links.rb +11 -0
  220. data/db/migrate/20140131070259_create_socializer_person_profiles.rb +11 -0
  221. data/db/migrate/20140131070417_create_socializer_person_phones.rb +12 -0
  222. data/db/migrate/20140131070611_create_socializer_person_addresses.rb +17 -0
  223. data/db/migrate/20140131070839_create_socializer_group_links.rb +11 -0
  224. data/db/migrate/20140131070951_create_socializer_group_categories.rb +10 -0
  225. data/features/support/capybara.rb +14 -0
  226. data/features/support/env.rb +57 -0
  227. data/features/support/factory_girl.rb +1 -0
  228. data/lib/socializer.rb +4 -0
  229. data/lib/socializer/engine.rb +27 -0
  230. data/lib/socializer/version.rb +3 -0
  231. data/lib/tasks/cucumber.rake +65 -0
  232. data/lib/tasks/socializer_tasks.rake +4 -0
  233. data/script/cucumber +10 -0
  234. data/socializer.gemspec +49 -0
  235. data/spec/controllers/socializer/likes_controller_spec.rb +29 -0
  236. data/spec/controllers/socializer/shares_controller_spec.rb +22 -0
  237. data/spec/factories/socializer_activities.rb +11 -0
  238. data/spec/factories/socializer_activity_fields.rb +8 -0
  239. data/spec/factories/socializer_activity_objects.rb +7 -0
  240. data/spec/factories/socializer_audiences.rb +9 -0
  241. data/spec/factories/socializer_authentications.rb +6 -0
  242. data/spec/factories/socializer_circles.rb +9 -0
  243. data/spec/factories/socializer_comments.rb +6 -0
  244. data/spec/factories/socializer_group_categories.rb +8 -0
  245. data/spec/factories/socializer_group_links.rb +9 -0
  246. data/spec/factories/socializer_groups.rb +9 -0
  247. data/spec/factories/socializer_identities.rb +10 -0
  248. data/spec/factories/socializer_memberships.rb +6 -0
  249. data/spec/factories/socializer_notes.rb +7 -0
  250. data/spec/factories/socializer_notifications.rb +10 -0
  251. data/spec/factories/socializer_people.rb +7 -0
  252. data/spec/factories/socializer_person_addresses.rb +8 -0
  253. data/spec/factories/socializer_person_contributions.rb +9 -0
  254. data/spec/factories/socializer_person_educations.rb +7 -0
  255. data/spec/factories/socializer_person_employments.rb +7 -0
  256. data/spec/factories/socializer_person_links.rb +9 -0
  257. data/spec/factories/socializer_person_phones.rb +9 -0
  258. data/spec/factories/socializer_person_places.rb +8 -0
  259. data/spec/factories/socializer_person_profiles.rb +9 -0
  260. data/spec/factories/socializer_ties.rb +6 -0
  261. data/spec/factories/socializer_verbs.rb +7 -0
  262. data/spec/inflector_spec.rb +19 -0
  263. data/spec/models/socializer/activity_field_spec.rb +25 -0
  264. data/spec/models/socializer/activity_object_spec.rb +118 -0
  265. data/spec/models/socializer/activity_spec.rb +16 -0
  266. data/spec/models/socializer/audience_spec.rb +32 -0
  267. data/spec/models/socializer/authentication_spec.rb +29 -0
  268. data/spec/models/socializer/circle_spec.rb +53 -0
  269. data/spec/models/socializer/comment_spec.rb +19 -0
  270. data/spec/models/socializer/group_category_spec.rb +23 -0
  271. data/spec/models/socializer/group_link_spec.rb +25 -0
  272. data/spec/models/socializer/group_spec.rb +218 -0
  273. data/spec/models/socializer/identity_spec.rb +32 -0
  274. data/spec/models/socializer/membership_spec.rb +68 -0
  275. data/spec/models/socializer/note_spec.rb +19 -0
  276. data/spec/models/socializer/notification_spec.rb +28 -0
  277. data/spec/models/socializer/person_address_spec.rb +27 -0
  278. data/spec/models/socializer/person_contribution_spec.rb +27 -0
  279. data/spec/models/socializer/person_education_spec.rb +25 -0
  280. data/spec/models/socializer/person_employment_spec.rb +25 -0
  281. data/spec/models/socializer/person_link_spec.rb +26 -0
  282. data/spec/models/socializer/person_phone_spec.rb +28 -0
  283. data/spec/models/socializer/person_place_spec.rb +25 -0
  284. data/spec/models/socializer/person_profile_spec.rb +26 -0
  285. data/spec/models/socializer/person_spec.rb +105 -0
  286. data/spec/models/socializer/tie_spec.rb +24 -0
  287. data/spec/models/socializer/verb_spec.rb +24 -0
  288. data/spec/spec_helper.rb +84 -0
  289. data/vendor/assets/javascripts/moment/langs.js +5841 -0
  290. data/vendor/assets/javascripts/moment/moment.js +2400 -0
  291. metadata +754 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8cd413bf59051d3a3b6a4f292ebb7554123b3e40
4
+ data.tar.gz: f49b9872563c4100045141e246648021cb5da0a0
5
+ SHA512:
6
+ metadata.gz: fffbdff4ceca99648c508f0a21cdf508113faa2906bae359f7b378c04c6c998dc6ce2c3d75cefde9edf68b1c3db5124905a52528eb3a0b4181c06aeceacd58d3
7
+ data.tar.gz: bfd1e82758e826424a1be50b804b41bff96155fc83fb401ca987a58ebf4ace7fa78057d045d22a6530deca9c5ac8ae77a94b64304d4d03c758bf8b9c82388466
@@ -0,0 +1,11 @@
1
+ # editorconfig.org
2
+
3
+ root = true
4
+
5
+ [*]
6
+ indent_style = space
7
+ indent_size = 2
8
+ end_of_line = lf
9
+ charset = utf-8
10
+ trim_trailing_whitespace = true
11
+ insert_final_newline = true
@@ -0,0 +1,29 @@
1
+ *.DS_Store
2
+ *.rbc
3
+ *.sassc
4
+ .sass-cache
5
+ .rspec
6
+ /.bundle
7
+ /vendor/bundle
8
+ /log/*
9
+ /tmp/*
10
+ /pkg/*
11
+ /spec/tmp/*
12
+ # /config/*.yml
13
+ /config/initializers/omniauth.rb
14
+ Gemfile.lock
15
+
16
+ coverage/*
17
+
18
+ spec/dummy/*
19
+
20
+ spec/internal/config/*.yml
21
+ spec/internal/log/
22
+ spec/internal/tmp/
23
+ spec/internal/db/*.sqlite3
24
+
25
+ .ruby-gemset
26
+ .ruby-version
27
+
28
+ rails_best_practices_output.html
29
+ report.html
@@ -0,0 +1,42 @@
1
+ AllCops:
2
+ # Include gemspec and Rakefile
3
+ Includes:
4
+ - '*.gemspec'
5
+ - Rakefile
6
+ - config.ru
7
+ - db/migrate/**
8
+ Excludes:
9
+ - bin/**
10
+ - spec/dummy/**
11
+ - spec/internal/**
12
+
13
+ # By default, the rails cops are not run. Override in project or home
14
+ # directory .rubocop.yml files, or by giving the -R/--rails option.
15
+ RunRailsCops: true
16
+
17
+ RegexpLiteral:
18
+ Exclude:
19
+ - '*.gemspec'
20
+
21
+ # TODO: Clean these up
22
+
23
+ # Needed for squeel
24
+ BlockAlignment:
25
+ Enabled: false
26
+
27
+ # Needed for squeel
28
+ Blocks:
29
+ Enabled: false
30
+
31
+ Documentation:
32
+ Enabled: false
33
+
34
+ Encoding:
35
+ Enabled: false
36
+
37
+ LineLength:
38
+ # Max: 120
39
+ Enabled: false
40
+
41
+ MethodLength:
42
+ Enabled: false
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ cache: bundler
3
+ # bundler_args: --without development
4
+ before_script:
5
+ - bundle exec rake dummy:app --trace
6
+ - bundle exec rake app:db:migrate --trace
7
+ script: bundle exec rspec spec
8
+ env:
9
+ - DB=postgres
10
+ - DB=mysql
11
+ - DB=sqlite
12
+ rvm:
13
+ - 2.1.0
@@ -0,0 +1,46 @@
1
+ # Contributing to Socializer
2
+
3
+ ## Reporting issues
4
+
5
+ Socializer uses [GitHub Issue Tracking](https://github.com/dominicgoulet/socializer/issues)
6
+ to track issues (primarily bugs and contributions of new code). If you've found a bug,
7
+ this is the place to start. You'll need to create a (free) GitHub account in order to
8
+ submit an issue, to comment on them or to create pull requests.
9
+
10
+ Please read the following guidelines before opening an issue.
11
+
12
+ 1. Search for existing [issues](https://github.com/dominicgoulet/socializer/issues). In case it has already been reported.
13
+ 2. If you find no issue addressing it you can [add a new one](https://github.com/dominicgoulet/socializer/issues).
14
+ - Your issue report must have a title and descriptive text.
15
+ - You should include as much relevant information as possible. This
16
+ includes posting a code sample that demostrates the issue. It is
17
+ preferred that you include a spec that shows how the expected
18
+ behavior is not occurring. Your goal should be to make it easy for
19
+ yourself — and others — to replicate the bug and figure out a fix.
20
+
21
+ ## Pull requests
22
+
23
+ - [Fork the repository](https://github.com/dominicgoulet/socializer/fork) on GitHub
24
+ - Create a topic branch
25
+ - Make commits of logical units
26
+ - One pull request per feature
27
+
28
+
29
+ Some things that will increase the chance that your pull request is accepted, taken straight from the Ruby on Rails guide:
30
+
31
+ - Use Rails idioms and helpers
32
+ - Include tests that fail without your code, and pass with it
33
+ - Update the (surrounding) documentation, examples elsewhere, and the guides: whatever is affected by your contribution
34
+
35
+
36
+ ## Coding standards:
37
+
38
+ - Two spaces for indentation, never tabs
39
+ - No trailing whitespace. Blank lines should not have any space
40
+ - Follow the conventions you see used in the source already
41
+
42
+
43
+ ## License
44
+
45
+ By contributing your code, you agree to license your contribution under the
46
+ terms of the MIT license: http://www.opensource.org/licenses/mit-license.php
data/Gemfile ADDED
@@ -0,0 +1,31 @@
1
+ source 'http://rubygems.org'
2
+
3
+ ruby '2.0.0'
4
+
5
+ gemspec
6
+
7
+ group :development do
8
+ gem 'better_errors'
9
+ gem 'binding_of_caller'
10
+ gem 'meta_request' # For RailsPanel
11
+ end
12
+
13
+ group :test do
14
+ gem 'cucumber-rails', '~> 1.4.0', require: false
15
+ gem 'database_cleaner'
16
+ gem 'simplecov', '~> 0.8.2', require: false
17
+ gem 'coveralls', require: false
18
+ end
19
+
20
+ group :development, :test do
21
+ gem 'debugger'
22
+ gem 'rspec-rails'
23
+ gem 'capybara'
24
+ gem 'rails-dummy'
25
+ end
26
+
27
+ # add these gems to help with the transition to Rails 4:
28
+ gem 'protected_attributes'
29
+ gem 'rails-observers'
30
+ gem 'actionpack-page_caching'
31
+ gem 'actionpack-action_caching'
@@ -0,0 +1,91 @@
1
+ [![Build Status](https://travis-ci.org/dominicgoulet/socializer.png?branch=master)](https://travis-ci.org/dominicgoulet/socializer)
2
+ [![Coverage Status](https://coveralls.io/repos/dominicgoulet/socializer/badge.png?branch=master)](https://coveralls.io/r/dominicgoulet/socializer?branch=master)
3
+ [![Code Climate](https://codeclimate.com/repos/52ebf4c9e30ba002a0004d2b/badges/ae294dc137097d614073/gpa.png)](https://codeclimate.com/repos/52ebf4c9e30ba002a0004d2b/feed)
4
+ [![Dependency Status](https://gemnasium.com/dominicgoulet/socializer.png)](https://gemnasium.com/dominicgoulet/socializer)
5
+
6
+ # Socializer
7
+
8
+ Socializer is a rails engine fully dedicated to adding social network capabilities so you can focus
9
+ on what really matters.
10
+
11
+ It is designed based on the Wikipedia definition of [social networks](http://en.wikipedia.org/wiki/Social_network)
12
+ and the excellent spec from [activitystrea.ms](http://www.activitystrea.ms). Yes, it may look like a Google+ clone, but Google did a
13
+ great job implementing the social network definition. And yes, it does a lot less than Google+, we don't have
14
+ 400 developers on the project.
15
+
16
+ ## Core concepts
17
+
18
+ **People** are connected with each other in numerous ways. First of all, they can signify to another person
19
+ that they want to be connected with them by adding them to their **circles**. The association between a person
20
+ and a circle is called a **tie**. This link is not direct and does not force each person to have the same link.
21
+ For instance, one person can classify the other as a 'friend', while the other person will return the favor by adding
22
+ them to their 'colleague' circle. Second, **groups** are a link between people where all members share the same level
23
+ of connection with each other. They are all members of the 'Project X Research Group'. The association between a
24
+ person and a group is called **membership**.
25
+
26
+ Like any other social networking application, you can post **notes**. Notes are pieces of information (currently only
27
+ text is supported, but pictures, videos, files and more are coming) that you want to keep for posterity.
28
+
29
+ When you perform actions in Socializer, there is a log of your **activities**. Activities are shared with
30
+ an **audience**. Let's say you perform the action of creating a note. While creating a note,
31
+ you will have to specify the audience for that note. You can choose between 'Public', 'All your circles', any of your
32
+ circles, any of your groups, and any of the people you are connected with.
33
+
34
+ People can view the activity **stream** with different filters :
35
+ * **Profile** - you see all the activities of a single person
36
+ * **Circle** - you see the activities performed by the people in that circle
37
+ * **Group** - you see the activities performed by the people in that group
38
+ * **Home** - you see everything from the people you connect with (groups, circles, yourself)
39
+
40
+ When viewing a stream, people can **comment** on any of the objects in the stream.
41
+
42
+ For registration and login, Socializer is currently using omniauth with the following providers:
43
+ LinkedIn, Facebook, Twitter, Yahoo, Google and Identity. Once your account is created, you can bind multiple
44
+ authentications to your account. This will be used later on to share your activities with other networking sites.
45
+
46
+ ## Installation
47
+
48
+ Add this line to your application's Gemfile:
49
+
50
+ gem 'socializer', github: 'dominicgoulet/socializer'
51
+
52
+ And then execute:
53
+
54
+ $ bundle
55
+
56
+ Then:
57
+
58
+ rake socializer:install:migrations
59
+
60
+ Don't forget to migrate your database:
61
+
62
+ rake db:migrate
63
+
64
+ ## Getting Started
65
+
66
+
67
+ ## Todo
68
+
69
+ The todo list is as follows :
70
+ * Finish core components (people, circles, groups, notes, comments)
71
+ * Complete the activity stream (activities, audience)
72
+ * Add notifications (notify a person when an activity affects him directly)
73
+ * Add interaction with other networking sites (authentications)
74
+ * Add a search feature (to find people, groups and notes)
75
+ * Create a comprehensive html structure that can easily be templated in host applications
76
+ * Package the engine cleanly (configurations, file names, etc.)
77
+
78
+ ## If you want to contribute
79
+
80
+ The best way to contribute is to do one of the following :
81
+ * Creating tests
82
+ * Refactoring
83
+ * Coding features
84
+ * Correcting logged issues
85
+ * Correcting my English! (I'm a french Canadian, so don't hesitate to fix my sentences or whole paragraphs.)
86
+
87
+ ## License ##
88
+
89
+ Copyright 2011-2014, Dominic Goulet, http://www.dominicgoulet.com
90
+
91
+ MIT License - http://www.opensource.org/licenses/mit-license.php
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'Socializer'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
24
+
25
+ load 'rails/tasks/engine.rake' if File.exists?(APP_RAKEFILE)
26
+
27
+ Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each { |f| load f }
28
+
29
+ Bundler::GemHelper.install_tasks
30
+
31
+ require 'rspec/core'
32
+ require 'rspec/core/rake_task'
33
+
34
+ RSpec::Core::RakeTask.new(:spec)
35
+
36
+ task default: :spec
37
+
38
+ require 'rails/dummy/tasks'
File without changes
@@ -0,0 +1,47 @@
1
+ # Place all the behaviors and hooks related to the matching controller here.
2
+ # All this logic will automatically be available in application.js.
3
+ # You can use CoffeeScript in this file: http://coffeescript.org/
4
+
5
+ @addTooltipSupport = (jQueryElement) ->
6
+ jQueryElement.qtip
7
+ content:
8
+ text: 'Loading...'
9
+ ajax:
10
+ url: jQueryElement.attr('href')
11
+
12
+ style:
13
+ classes: 'qtip-tipsy'
14
+
15
+ position:
16
+ my: 'top center'
17
+ at: 'bottom center'
18
+ effect: false
19
+
20
+ show:
21
+ event: 'click'
22
+ solo: true
23
+
24
+ hide: 'unfocus'
25
+
26
+ jQueryElement.click (event) ->
27
+ event.preventDefault()
28
+
29
+ jQuery ->
30
+ if $('body').data('controller') == 'activities'
31
+ # Add a qTip to all tooltip elements.
32
+ $('.tooltip').each ->
33
+ addTooltipSupport $(this)
34
+
35
+ if $('body').data('controller') == 'activities' || controller_name = 'shares'
36
+ # Use moment.js to mimic the Rails time time_ago_in_words helper
37
+ $('time').each ->
38
+ timeago = $(this).data('time-ago')
39
+
40
+ # This could also be timeago?, but this is more explicit
41
+ if timeago is "moment.js"
42
+ datetime = $(this).attr('datetime')
43
+ locale = $('body').data('locale')
44
+
45
+ moment.lang locale
46
+
47
+ $(this).text moment(datetime).fromNow()
@@ -0,0 +1,24 @@
1
+ // This is a manifest file that'll be compiled into including all the files listed below.
2
+ // Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
3
+ // be included in the compiled file accessible from http://example.com/assets/application.js
4
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
5
+ // the compiled file.
6
+ //
7
+ //= require jquery
8
+ //= require jquery_ujs
9
+ //= require_tree .
10
+ //= require moment/moment
11
+ //= require moment/langs
12
+
13
+ $(document).ready(function() {
14
+ // Replace default titles on images with link by qTip tooltips
15
+ $('a img[title]').qtip({
16
+ style: {
17
+ classes: 'qtip-tipsy'
18
+ },
19
+ position: {
20
+ my: 'top center',
21
+ at: 'bottom center'
22
+ }
23
+ });
24
+ });