linkshare : Une application Rails de partage de liens
linkshare est un projet Rails archivé pour publier des liens, commenter et voter. Ses routes décrivent une application web classique avec gestion des comptes et interface administrative.
Langages du dépôtRuby 55.29%5
Parts calculées à partir des octets GitHub Linguist.
| Langage | % | Octets |
|---|---|---|
| Ruby | 74 011 | |
| HTML | 26 174 | |
| CSS | 17 773 | |
| JavaScript | 15 470 | |
| CoffeeScript | 422 |
Aperçu
Pourquoi il existe
Plateforme Ruby on Rails avec extraction asynchrone de métadonnées OpenGraph.
Cas d’usage
Partage social et organisation de liens avec prévisualisation riche.
Démarrage
Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.
Références du dépôt
Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.
Développement et contributions
Testing
README.md
Fonctions et composants 2
- Ressources et actions
- config/routes.rb associe les liens aux actions de ressources et y imbrique les commentaires. Les routes like et dislike appellent upvote et downvote. La page racine utilise links#index.
- Comptes et administration
- Devise fournit les routes de compte et RailsAdmin est monté sous /admin. Les contrôleurs et modèles sont distincts des routes; déclarer une route ne décrit pas toutes ses autorisations ou sa persistance.
Architecture
Les composants et leurs liens restent lisibles en texte. Le diagramme ajoute une vue interactive.
- Requête du navigateur
- Routeur Rails
- Contrôleurs liens et commentaires
- Modèles et persistance
- Réponse affichée
Liens vérifiés dans le dépôt.
Mermaid Diagramme interactif (chargement à l’ouverture)

flowchart LR
n0["Requête du navigateur"]
n1["Routeur Rails"]
n2["Contrôleurs liens et commentaires"]
n3["Modèles et persistance"]
n4["Réponse affichée"]
n0 --> n1
n1 --> n2
n2 --> n3
n2 --> n4
Version texte du diagramme
- Requête du navigateur → Routeur Rails
- Routeur Rails → Contrôleurs liens et commentaires
- Contrôleurs liens et commentaires → Modèles et persistance
- Contrôleurs liens et commentaires → Réponse affichée
Suivre un parcours dans le code
Suivez PUT /links/:id/like jusqu’à upvote, puis à l’opération du modèle. Cela distingue l’action HTTP, l’identité et le vote conservé.
Types et structure des fichiers
26 types déclarés, dont 12 dans l’aperçu des relations de base.
Diagramme des types
classDiagram
direction TB
class te6c01275de47["ApplicationController"] {
configure_permitted_parameters()
}
class t8678c70aa713["CommentsController"] {
create()
destroy()
set_comment()
comment_params()
}
class tb0660d882e74["LinksController"] {
index()
authorized_user()
show()
new()
}
class te74c95b27ab9["UsersController"] {
index()
show()
set_user()
user_params()
}
class t507ea3b434b7["Comment"] {
}
class teaffcf98c1af["Link"] {
search()
}
class t3d8e51a5861b["User"] {
search()
}
class t365c5f73a845["AvatarUploader"] {
store_dir()
extension_white_list()
}
class t02b326265c03["FileUploader"] {
store_dir()
to_jq_upload()
}
class t1b987a5d8a58["Application"] {
}
class t8a2d1d5f3397["CreateLinks"] {
change()
}
class t413ee87dca90["DeviseCreateUsers"] {
change()
}
class b597d79078b7c["ActionController"] {
<<unresolved_base>>
}
te6c01275de47 ..> b597d79078b7c : declared base
class bf963db62dcd9["Base"] {
<<unresolved_base>>
}
te6c01275de47 ..> bf963db62dcd9 : declared base
class b5537154b21ce["ApplicationController"] {
<<unresolved_base>>
}
t8678c70aa713 ..> b5537154b21ce : declared base
class b06d39a03faa5["ApplicationController"] {
<<unresolved_base>>
}
tb0660d882e74 ..> b06d39a03faa5 : declared base
class bf0d517ccfe97["ApplicationController"] {
<<unresolved_base>>
}
te74c95b27ab9 ..> bf0d517ccfe97 : declared base
class b4387f5fdab61["ActiveRecord"] {
<<unresolved_base>>
}
t507ea3b434b7 ..> b4387f5fdab61 : declared base
class bf1ccf4a6fae5["Base"] {
<<unresolved_base>>
}
t507ea3b434b7 ..> bf1ccf4a6fae5 : declared base
class b7aff22b225bf["ActiveRecord"] {
<<unresolved_base>>
}
teaffcf98c1af ..> b7aff22b225bf : declared base
class baa51e6c4d3ac["Base"] {
<<unresolved_base>>
}
teaffcf98c1af ..> baa51e6c4d3ac : declared base
class b8ebb2ba28373["ActiveRecord"] {
<<unresolved_base>>
}
t3d8e51a5861b ..> b8ebb2ba28373 : declared base
class bd2eb40535edb["Base"] {
<<unresolved_base>>
}
t3d8e51a5861b ..> bd2eb40535edb : declared base
class bdfe6f931ddc7["CarrierWave"] {
<<unresolved_base>>
}
t365c5f73a845 ..> bdfe6f931ddc7 : declared base
class b58373087e72b["Uploader"] {
<<unresolved_base>>
}
t365c5f73a845 ..> b58373087e72b : declared base
class bdcc7e7756ad6["Base"] {
<<unresolved_base>>
}
t365c5f73a845 ..> bdcc7e7756ad6 : declared base
class b14b22903d121["CarrierWave"] {
<<unresolved_base>>
}
t02b326265c03 ..> b14b22903d121 : declared base
class b2e18ae1a52e7["Uploader"] {
<<unresolved_base>>
}
t02b326265c03 ..> b2e18ae1a52e7 : declared base
class bf7a34fbf068a["Base"] {
<<unresolved_base>>
}
t02b326265c03 ..> bf7a34fbf068a : declared base
class b656be7aa4ef3["Rails"] {
<<unresolved_base>>
}
t1b987a5d8a58 ..> b656be7aa4ef3 : declared base
t1b987a5d8a58 <|-- t1b987a5d8a58
class bbdad3cd73cb5["ActiveRecord"] {
<<unresolved_base>>
}
t8a2d1d5f3397 ..> bbdad3cd73cb5 : declared base
class b3cbff79e4244["Migration"] {
<<unresolved_base>>
}
t8a2d1d5f3397 ..> b3cbff79e4244 : declared base
class bf941026e7405["ActiveRecord"] {
<<unresolved_base>>
}
t413ee87dca90 ..> bf941026e7405 : declared base
class b35ea4c6d3585["Migration"] {
<<unresolved_base>>
}
t413ee87dca90 ..> b35ea4c6d3585 : declared base
Les bases non résolues restent identifiées; les signatures complètes ne sont pas reconstruites.
Index des types
ApplicationController(class) ·app/controllers/application_controller.rb:1Méthodes dans l’aperçu :
configure_permitted_parameters.Bases déclarées :
ActionController, Base.CommentsController(class) ·app/controllers/comments_controller.rb:1Méthodes dans l’aperçu :
create, destroy, set_comment, comment_params.Bases déclarées :
ApplicationController.LinksController(class) ·app/controllers/links_controller.rb:1Méthodes dans l’aperçu :
index, authorized_user, show, new.Bases déclarées :
ApplicationController.UsersController(class) ·app/controllers/users_controller.rb:1Méthodes dans l’aperçu :
index, show, set_user, user_params.Bases déclarées :
ApplicationController.Comment(class) ·app/models/comment.rb:18Bases déclarées :
ActiveRecord, Base.Link(class) ·app/models/link.rb:19Méthodes dans l’aperçu :
search.Bases déclarées :
ActiveRecord, Base.User(class) ·app/models/user.rb:28Méthodes dans l’aperçu :
search.Bases déclarées :
ActiveRecord, Base.AvatarUploader(class) ·app/uploaders/avatar_uploader.rb:3Méthodes dans l’aperçu :
store_dir, extension_white_list.Bases déclarées :
CarrierWave, Uploader, Base.FileUploader(class) ·app/uploaders/file_uploader.rb:3Méthodes dans l’aperçu :
store_dir, to_jq_upload.Bases déclarées :
CarrierWave, Uploader, Base.Application(class) ·config/application.rb:10Bases déclarées :
Rails, Application.CreateLinks(class) ·db/migrate/20150716224041_create_links.rb:1Méthodes dans l’aperçu :
change.Bases déclarées :
ActiveRecord, Migration.DeviseCreateUsers(class) ·db/migrate/20150716224938_devise_create_users.rb:1Méthodes dans l’aperçu :
change.Bases déclarées :
ActiveRecord, Migration.
Référence
58 / 58 fichiers admissibles lus (171 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 0 diagnostic de syntaxe.
Ce que couvre l’analyse
Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.
Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.
Carte des fichiers
flowchart TD
root["linkshare"]
f0["Gemfile"]
root --> f0
f1["README.md"]
root --> f1
f2["config/routes.rb"]
root --> f2
f3["config/application.rb"]
root --> f3
f4["config/boot.rb"]
root --> f4
f5["config/environment.rb"]
root --> f5
f6["db/schema.rb"]
root --> f6
f7["db/seeds.rb"]
root --> f7
f8["test/test_helper.rb"]
root --> f8
f9["app/controllers/application_controller.rb"]
root --> f9
f10["app/controllers/comments_controller.rb"]
root --> f10
f11["app/controllers/links_controller.rb"]
root --> f11
f12["app/controllers/users_controller.rb"]
root --> f12
f13["app/helpers/application_helper.rb"]
root --> f13
f14["app/helpers/comments_helper.rb"]
root --> f14
f15["app/helpers/links_helper.rb"]
root --> f15