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.
- 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
|
+
[](https://travis-ci.org/dominicgoulet/socializer)
|
|
2
|
+
[](https://coveralls.io/r/dominicgoulet/socializer?branch=master)
|
|
3
|
+
[](https://codeclimate.com/repos/52ebf4c9e30ba002a0004d2b/feed)
|
|
4
|
+
[](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
|
+
});
|