socializer 0.1.13

Sign up to get free protection for your applications and to get access to all the features.
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
+ });