socializer 0.1.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.editorconfig +11 -0
- data/.gitignore +29 -0
- data/.rubocop.yml +42 -0
- data/.travis.yml +13 -0
- data/CONTRIBUTING.md +46 -0
- data/Gemfile +31 -0
- data/README.md +91 -0
- data/Rakefile +38 -0
- data/app/assets/images/socializer/.gitkeep +0 -0
- data/app/assets/images/socializer/auth_buttons/facebook_128.png +0 -0
- data/app/assets/images/socializer/auth_buttons/facebook_256.png +0 -0
- data/app/assets/images/socializer/auth_buttons/facebook_32.png +0 -0
- data/app/assets/images/socializer/auth_buttons/facebook_64.png +0 -0
- data/app/assets/images/socializer/auth_buttons/google_128.png +0 -0
- data/app/assets/images/socializer/auth_buttons/google_256.png +0 -0
- data/app/assets/images/socializer/auth_buttons/google_32.png +0 -0
- data/app/assets/images/socializer/auth_buttons/google_64.png +0 -0
- data/app/assets/images/socializer/auth_buttons/linkedin_128.png +0 -0
- data/app/assets/images/socializer/auth_buttons/linkedin_256.png +0 -0
- data/app/assets/images/socializer/auth_buttons/linkedin_32.png +0 -0
- data/app/assets/images/socializer/auth_buttons/linkedin_64.png +0 -0
- data/app/assets/images/socializer/auth_buttons/twitter_128.png +0 -0
- data/app/assets/images/socializer/auth_buttons/twitter_256.png +0 -0
- data/app/assets/images/socializer/auth_buttons/twitter_32.png +0 -0
- data/app/assets/images/socializer/auth_buttons/twitter_64.png +0 -0
- data/app/assets/images/socializer/auth_buttons/yahoo_128.png +0 -0
- data/app/assets/images/socializer/auth_buttons/yahoo_256.png +0 -0
- data/app/assets/images/socializer/auth_buttons/yahoo_32.png +0 -0
- data/app/assets/images/socializer/auth_buttons/yahoo_64.png +0 -0
- data/app/assets/images/socializer/close.png +0 -0
- data/app/assets/images/socializer/icons/Bell.png +0 -0
- data/app/assets/images/socializer/icons/Edit.png +0 -0
- data/app/assets/images/socializer/icons/Home.png +0 -0
- data/app/assets/images/socializer/icons/Power.png +0 -0
- data/app/assets/images/socializer/icons/Safe.png +0 -0
- data/app/assets/images/socializer/icons/User.png +0 -0
- data/app/assets/images/socializer/icons/Users.png +0 -0
- data/app/assets/images/socializer/icons/Web.png +0 -0
- data/app/assets/images/socializer/loading.gif +0 -0
- data/app/assets/images/socializer/next.png +0 -0
- data/app/assets/images/socializer/pause.png +0 -0
- data/app/assets/images/socializer/play.png +0 -0
- data/app/assets/images/socializer/previous.png +0 -0
- data/app/assets/javascripts/socializer/activities.js.coffee +47 -0
- data/app/assets/javascripts/socializer/application.js +24 -0
- data/app/assets/javascripts/socializer/circles.js.coffee +33 -0
- data/app/assets/javascripts/socializer/jquery.qtip.min.js +7 -0
- data/app/assets/javascripts/socializer/jquery.tokeninput.js +862 -0
- data/app/assets/javascripts/socializer/notes.js.coffee +38 -0
- data/app/assets/javascripts/socializer/people.js.coffee +7 -0
- data/app/assets/javascripts/socializer/shares.js.coffee +8 -0
- data/app/assets/stylesheets/socializer/activities.css +84 -0
- data/app/assets/stylesheets/socializer/application.css +409 -0
- data/app/assets/stylesheets/socializer/authentications.css +4 -0
- data/app/assets/stylesheets/socializer/circles.css +74 -0
- data/app/assets/stylesheets/socializer/comments.css +4 -0
- data/app/assets/stylesheets/socializer/groups.css +61 -0
- data/app/assets/stylesheets/socializer/jquery.qtip.min.css +2 -0
- data/app/assets/stylesheets/socializer/likes.css +4 -0
- data/app/assets/stylesheets/socializer/memberships.css +4 -0
- data/app/assets/stylesheets/socializer/notes.css +21 -0
- data/app/assets/stylesheets/socializer/notifications.css +46 -0
- data/app/assets/stylesheets/socializer/pages.css +4 -0
- data/app/assets/stylesheets/socializer/persons.css +25 -0
- data/app/assets/stylesheets/socializer/sessions.css +4 -0
- data/app/assets/stylesheets/socializer/shares.css.scss +3 -0
- data/app/assets/stylesheets/socializer/ties.css +4 -0
- data/app/assets/stylesheets/socializer/token-input.css +183 -0
- data/app/controllers/socializer/activities_controller.rb +84 -0
- data/app/controllers/socializer/application_controller.rb +37 -0
- data/app/controllers/socializer/audiences_controller.rb +30 -0
- data/app/controllers/socializer/authentications_controller.rb +13 -0
- data/app/controllers/socializer/circles_controller.rb +54 -0
- data/app/controllers/socializer/comments_controller.rb +37 -0
- data/app/controllers/socializer/groups_controller.rb +70 -0
- data/app/controllers/socializer/likes_controller.rb +50 -0
- data/app/controllers/socializer/memberships_controller.rb +46 -0
- data/app/controllers/socializer/notes_controller.rb +43 -0
- data/app/controllers/socializer/notifications_controller.rb +29 -0
- data/app/controllers/socializer/pages_controller.rb +7 -0
- data/app/controllers/socializer/people_controller.rb +37 -0
- data/app/controllers/socializer/person_addresses_controller.rb +27 -0
- data/app/controllers/socializer/person_contributions_controller.rb +27 -0
- data/app/controllers/socializer/person_educations_controller.rb +27 -0
- data/app/controllers/socializer/person_employments_controller.rb +27 -0
- data/app/controllers/socializer/person_links_controller.rb +27 -0
- data/app/controllers/socializer/person_phones_controller.rb +27 -0
- data/app/controllers/socializer/person_places_controller.rb +27 -0
- data/app/controllers/socializer/person_profiles_controller.rb +27 -0
- data/app/controllers/socializer/sessions_controller.rb +37 -0
- data/app/controllers/socializer/shares_controller.rb +54 -0
- data/app/controllers/socializer/ties_controller.rb +16 -0
- data/app/helpers/socializer/application_helper.rb +22 -0
- data/app/models/concerns/socializer/object_type_base.rb +58 -0
- data/app/models/socializer/activity.rb +162 -0
- data/app/models/socializer/activity_field.rb +10 -0
- data/app/models/socializer/activity_object.rb +118 -0
- data/app/models/socializer/audience.rb +19 -0
- data/app/models/socializer/authentication.rb +20 -0
- data/app/models/socializer/circle.rb +32 -0
- data/app/models/socializer/comment.rb +13 -0
- data/app/models/socializer/group.rb +100 -0
- data/app/models/socializer/group_category.rb +11 -0
- data/app/models/socializer/group_link.rb +12 -0
- data/app/models/socializer/identity.rb +9 -0
- data/app/models/socializer/membership.rb +24 -0
- data/app/models/socializer/note.rb +13 -0
- data/app/models/socializer/notification.rb +16 -0
- data/app/models/socializer/person.rb +129 -0
- data/app/models/socializer/person_address.rb +12 -0
- data/app/models/socializer/person_contribution.rb +12 -0
- data/app/models/socializer/person_education.rb +8 -0
- data/app/models/socializer/person_employment.rb +8 -0
- data/app/models/socializer/person_link.rb +12 -0
- data/app/models/socializer/person_phone.rb +16 -0
- data/app/models/socializer/person_place.rb +11 -0
- data/app/models/socializer/person_profile.rb +12 -0
- data/app/models/socializer/tie.rb +12 -0
- data/app/models/socializer/verb.rb +9 -0
- data/app/views/layouts/socializer/_header.html.erb +11 -0
- data/app/views/layouts/socializer/application.html.erb +60 -0
- data/app/views/socializer/activities/_activity.html.erb +23 -0
- data/app/views/socializer/activities/_activity_bottom.html.erb +55 -0
- data/app/views/socializer/activities/_activity_content.html.erb +19 -0
- data/app/views/socializer/activities/_activity_top.html.erb +22 -0
- data/app/views/socializer/activities/_stream_card.html.erb +6 -0
- data/app/views/socializer/activities/_stream_list.html.erb +16 -0
- data/app/views/socializer/activities/audience.html.erb +19 -0
- data/app/views/socializer/activities/destroy.js.erb +3 -0
- data/app/views/socializer/activities/edit.html.erb +0 -0
- data/app/views/socializer/activities/index.html.erb +15 -0
- data/app/views/socializer/authentications/_form.html.erb +0 -0
- data/app/views/socializer/authentications/_menu.html.erb +5 -0
- data/app/views/socializer/authentications/index.html.erb +8 -0
- data/app/views/socializer/authentications/new.html.erb +8 -0
- data/app/views/socializer/circles/_card.html.erb +7 -0
- data/app/views/socializer/circles/_circles.html.erb +6 -0
- data/app/views/socializer/circles/_form.html.erb +6 -0
- data/app/views/socializer/circles/_menu.html.erb +7 -0
- data/app/views/socializer/circles/contact_of.html.erb +7 -0
- data/app/views/socializer/circles/contacts.html.erb +7 -0
- data/app/views/socializer/circles/edit.html.erb +1 -0
- data/app/views/socializer/circles/find_people.html.erb +7 -0
- data/app/views/socializer/circles/index.html.erb +6 -0
- data/app/views/socializer/circles/new.html.erb +1 -0
- data/app/views/socializer/circles/show.html.erb +10 -0
- data/app/views/socializer/comments/_form.html.erb +8 -0
- data/app/views/socializer/comments/edit.html.erb +1 -0
- data/app/views/socializer/comments/new.html.erb +1 -0
- data/app/views/socializer/groups/_card.html.erb +6 -0
- data/app/views/socializer/groups/_form.html.erb +6 -0
- data/app/views/socializer/groups/_menu.html.erb +10 -0
- data/app/views/socializer/groups/edit.html.erb +1 -0
- data/app/views/socializer/groups/index.html.erb +0 -0
- data/app/views/socializer/groups/joinable.html.erb +16 -0
- data/app/views/socializer/groups/memberships.html.erb +19 -0
- data/app/views/socializer/groups/new.html.erb +1 -0
- data/app/views/socializer/groups/ownerships.html.erb +20 -0
- data/app/views/socializer/groups/pending_invites.html.erb +20 -0
- data/app/views/socializer/groups/public.html.erb +16 -0
- data/app/views/socializer/groups/restricted.html.erb +16 -0
- data/app/views/socializer/groups/show.html.erb +29 -0
- data/app/views/socializer/likes/create.js.erb +2 -0
- data/app/views/socializer/likes/destroy.js.erb +2 -0
- data/app/views/socializer/likes/index.html.erb +5 -0
- data/app/views/socializer/notes/_form.html.erb +7 -0
- data/app/views/socializer/notes/create.js.erb +10 -0
- data/app/views/socializer/notes/destroy.js.erb +3 -0
- data/app/views/socializer/notes/edit.html.erb +1 -0
- data/app/views/socializer/notes/new.html.erb +2 -0
- data/app/views/socializer/notifications/index.html.erb +35 -0
- data/app/views/socializer/pages/index.html.erb +2 -0
- data/app/views/socializer/people/_card.html.erb +15 -0
- data/app/views/socializer/people/_form.html.erb +30 -0
- data/app/views/socializer/people/_login.html.erb +14 -0
- data/app/views/socializer/people/_menu.html.erb +9 -0
- data/app/views/socializer/people/edit.html.erb +2 -0
- data/app/views/socializer/people/index.html.erb +5 -0
- data/app/views/socializer/people/likes.html.erb +6 -0
- data/app/views/socializer/people/message.html.erb +5 -0
- data/app/views/socializer/people/show.html.erb +122 -0
- data/app/views/socializer/person_addresses/_form.html.erb +12 -0
- data/app/views/socializer/person_contributions/_form.html.erb +7 -0
- data/app/views/socializer/person_educations/_form.html.erb +10 -0
- data/app/views/socializer/person_employments/_form.html.erb +10 -0
- data/app/views/socializer/person_links/_form.html.erb +6 -0
- data/app/views/socializer/person_phones/_form.html.erb +6 -0
- data/app/views/socializer/person_places/_form.html.erb +6 -0
- data/app/views/socializer/person_profiles/_form.html.erb +6 -0
- data/app/views/socializer/shares/_form.html.erb +19 -0
- data/app/views/socializer/shares/new.html.erb +1 -0
- data/config.ru +4 -0
- data/config/cucumber.yml +8 -0
- data/config/initializers/inflections.rb +3 -0
- data/config/locales/en.yml +108 -0
- data/config/locales/fr.yml +329 -0
- data/config/rails_best_practices.yml +41 -0
- data/config/routes.rb +71 -0
- data/db/migrate/20110804175740_create_socializer_activity_objects.rb +14 -0
- data/db/migrate/20110804180557_create_socializer_people.rb +31 -0
- data/db/migrate/20110804184415_create_socializer_notes.rb +12 -0
- data/db/migrate/20110804192211_create_socializer_authentications.rb +12 -0
- data/db/migrate/20110805085417_create_socializer_circles.rb +14 -0
- data/db/migrate/20110805090617_create_socializer_activities.rb +17 -0
- data/db/migrate/20110805092635_create_socializer_audiences.rb +14 -0
- data/db/migrate/20110805094846_create_socializer_comments.rb +12 -0
- data/db/migrate/20110805121454_create_socializer_groups.rb +19 -0
- data/db/migrate/20110805121543_create_socializer_memberships.rb +14 -0
- data/db/migrate/20110805125606_create_socializer_ties.rb +13 -0
- data/db/migrate/20111207234435_create_socializer_identities.rb +12 -0
- data/db/migrate/20130524000429_create_socializer_verbs.rb +10 -0
- data/db/migrate/20130528143831_create_socializer_activity_fields.rb +10 -0
- data/db/migrate/20140128235250_create_socializer_notifications.rb +11 -0
- data/db/migrate/20140131065531_create_socializer_person_employments.rb +15 -0
- data/db/migrate/20140131065733_create_socializer_person_educations.rb +15 -0
- data/db/migrate/20140131065836_create_socializer_person_places.rb +11 -0
- data/db/migrate/20140131070051_create_socializer_person_contributions.rb +12 -0
- data/db/migrate/20140131070232_create_socializer_person_links.rb +11 -0
- data/db/migrate/20140131070259_create_socializer_person_profiles.rb +11 -0
- data/db/migrate/20140131070417_create_socializer_person_phones.rb +12 -0
- data/db/migrate/20140131070611_create_socializer_person_addresses.rb +17 -0
- data/db/migrate/20140131070839_create_socializer_group_links.rb +11 -0
- data/db/migrate/20140131070951_create_socializer_group_categories.rb +10 -0
- data/features/support/capybara.rb +14 -0
- data/features/support/env.rb +57 -0
- data/features/support/factory_girl.rb +1 -0
- data/lib/socializer.rb +4 -0
- data/lib/socializer/engine.rb +27 -0
- data/lib/socializer/version.rb +3 -0
- data/lib/tasks/cucumber.rake +65 -0
- data/lib/tasks/socializer_tasks.rake +4 -0
- data/script/cucumber +10 -0
- data/socializer.gemspec +49 -0
- data/spec/controllers/socializer/likes_controller_spec.rb +29 -0
- data/spec/controllers/socializer/shares_controller_spec.rb +22 -0
- data/spec/factories/socializer_activities.rb +11 -0
- data/spec/factories/socializer_activity_fields.rb +8 -0
- data/spec/factories/socializer_activity_objects.rb +7 -0
- data/spec/factories/socializer_audiences.rb +9 -0
- data/spec/factories/socializer_authentications.rb +6 -0
- data/spec/factories/socializer_circles.rb +9 -0
- data/spec/factories/socializer_comments.rb +6 -0
- data/spec/factories/socializer_group_categories.rb +8 -0
- data/spec/factories/socializer_group_links.rb +9 -0
- data/spec/factories/socializer_groups.rb +9 -0
- data/spec/factories/socializer_identities.rb +10 -0
- data/spec/factories/socializer_memberships.rb +6 -0
- data/spec/factories/socializer_notes.rb +7 -0
- data/spec/factories/socializer_notifications.rb +10 -0
- data/spec/factories/socializer_people.rb +7 -0
- data/spec/factories/socializer_person_addresses.rb +8 -0
- data/spec/factories/socializer_person_contributions.rb +9 -0
- data/spec/factories/socializer_person_educations.rb +7 -0
- data/spec/factories/socializer_person_employments.rb +7 -0
- data/spec/factories/socializer_person_links.rb +9 -0
- data/spec/factories/socializer_person_phones.rb +9 -0
- data/spec/factories/socializer_person_places.rb +8 -0
- data/spec/factories/socializer_person_profiles.rb +9 -0
- data/spec/factories/socializer_ties.rb +6 -0
- data/spec/factories/socializer_verbs.rb +7 -0
- data/spec/inflector_spec.rb +19 -0
- data/spec/models/socializer/activity_field_spec.rb +25 -0
- data/spec/models/socializer/activity_object_spec.rb +118 -0
- data/spec/models/socializer/activity_spec.rb +16 -0
- data/spec/models/socializer/audience_spec.rb +32 -0
- data/spec/models/socializer/authentication_spec.rb +29 -0
- data/spec/models/socializer/circle_spec.rb +53 -0
- data/spec/models/socializer/comment_spec.rb +19 -0
- data/spec/models/socializer/group_category_spec.rb +23 -0
- data/spec/models/socializer/group_link_spec.rb +25 -0
- data/spec/models/socializer/group_spec.rb +218 -0
- data/spec/models/socializer/identity_spec.rb +32 -0
- data/spec/models/socializer/membership_spec.rb +68 -0
- data/spec/models/socializer/note_spec.rb +19 -0
- data/spec/models/socializer/notification_spec.rb +28 -0
- data/spec/models/socializer/person_address_spec.rb +27 -0
- data/spec/models/socializer/person_contribution_spec.rb +27 -0
- data/spec/models/socializer/person_education_spec.rb +25 -0
- data/spec/models/socializer/person_employment_spec.rb +25 -0
- data/spec/models/socializer/person_link_spec.rb +26 -0
- data/spec/models/socializer/person_phone_spec.rb +28 -0
- data/spec/models/socializer/person_place_spec.rb +25 -0
- data/spec/models/socializer/person_profile_spec.rb +26 -0
- data/spec/models/socializer/person_spec.rb +105 -0
- data/spec/models/socializer/tie_spec.rb +24 -0
- data/spec/models/socializer/verb_spec.rb +24 -0
- data/spec/spec_helper.rb +84 -0
- data/vendor/assets/javascripts/moment/langs.js +5841 -0
- data/vendor/assets/javascripts/moment/moment.js +2400 -0
- metadata +754 -0
checksums.yaml
ADDED
@@ -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
|
data/.editorconfig
ADDED
data/.gitignore
ADDED
@@ -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
|
data/.rubocop.yml
ADDED
@@ -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
|
data/.travis.yml
ADDED
@@ -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
|
data/CONTRIBUTING.md
ADDED
@@ -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'
|
data/README.md
ADDED
@@ -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
|
data/Rakefile
ADDED
@@ -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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -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
|
+
});
|