Giter Club home page Giter Club logo

erdekelsz's Introduction

Sorry if you do not understand Hungarian. This is a demonstration project for a presentation we made in the Budapest New Technology Meetup about our Gadgeteer gem. That was in Hungarian so this will be too.

Érdekelsz

Az érdekelsz alkalmazás egy OpenSocial gadget. Aki felveszi az alkalmazásai közé, képes lesz más olyan emberek profilján bejelölni irántuk mutatott érdekőlését, akik szintén használják az alkalmazást. Erről addig a pillanatig csak a bejelelő személy tud, amíg valaki nem teszi meg ugyanezt viszont. Ekkor a saját profiloldalon ezt jelezzük egy másik személy profiloldalán pedig aranyos szívecskék jelennek meg.

Implementáció

Az alkalmazás a Sinatra rubys webframeworköt és a Gadgeteer gemet használja.

A fejlesztés a Gadgeteer gemmel a következő lépésekből áll:

  • saját app layout kialakítása ($ rails my_gadget v. $ echo "require 'sinatra'")
  • gadgeteer generátor futattása (az alkalmazás könyvtárában: $ gadgeteer --rails Gadget v. $ gadgeteer --sinatra Gadget)
  • config/gadget.yml szerkesztése (saját app title, author és email)
  • model, controller és view rétegek megírása
  • ...
  • PROFIT

Model

A model.rb fájl a kapcsolatok követésének egy nagyon egyszerű megvalósítása. DataMapper-t használ, mivel így nincs szükség külön db migráló szkriptekre. Egyszerűség kedvéért SQLite-ot használunk az adatok tárolására.

Két egyszerű modellünk van. A Profile modell tartalmazza a profil azonosítóját (valami "sandbox.iwiw.hu:phSgVVot2x"-hez hasonló iWiW sandbox esetén), valamint a felhasználó nevét és profiloldal URL-jét. Ez utóbbi kettő a linkek kirakásához kell majd.

Az Interest modell pedig a kapcsolótábla az érdeklődő (profile_id) és az érdekelt (interested_in_id) személy között. Itt a DataMapper egy újabb előnye is megmutatkozik az ActiveRecord-dal szemben, mégpedig, hogy itt lehet összetett kulcsokkal dolgozni.

A Profile modell a kapcsolatok ellenőrzésére még két has n :through relációt is bevezet. Ezzel az, hogy az owner bejelölte-e az aktuális viewer felhasználót ílyen egyszerű ellenőrzéssé válik:

@viewer.marked_profiles.include?(@owner)

A modellek definiálása után lövünk egy auto_upgrade!-et, hogy az alkalmazás indulásakor biztosan szinkronba kerüljön az adatbázis a modellünkkel.

Controller

Van benne gadget.xml gyártás, signed request ellenőrzés, owner bejelölés, meg egyéb dolgok. Majd lesz rendes leírás is, ha lesz több időm.

View

Coming soon.

Javascript

A lényeg, és ami alig lehetne egyszerűbb. Erről is írok majd még. :)

Fork Me!

Ha kísérletezgetni akarsz nyugodtan használd ezt a repositoryt alapul. Forkold GitHub-on, vagy töltsd le és kísérletezgess vele. Ehhez az alábbi dolgok kellenek:

$ gem install sinatra dm-core do_sqlite3
$ gem install gadgeteer --source http://ruby.virgo.hu/gems/

(c) Copyright 2009 Virgo Systems Kft., released under the MIT license

erdekelsz's People

Contributors

lackac avatar

Stargazers

Angus H. avatar csabosz avatar

Watchers

csabosz avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.