| Posición | Nombre | Puntos |
|---|---|---|
| 1 | Jorge González | 33 |
| 2 | Christopher Peña | 28 |
| 3 | Jalil Romero | 4 ½ |
| 4 | Rodolfo Navarro | 1 |
| 5 | Rolando Balboa | 1 |
This is another piece of code I've extrapolated from a Ruby on Rails project I'm currently working on. The code implmenets social login with a RoR API-based application, targeted at API clients.
The setup does not involve any browser-redirects or sessions as you would have to use working with Omniauth.
Instead, what it does is takes an access_token generated on client-side SDKs, retireves user info from the access token
and creates a new user and Identity in the database.
This setup works with native applications as described in the Google iOS Sign In Docs (see Authenticating with a backend server)
Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.
- Follow standard conventions.
- Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
- Boy scout rule. Leave the campground cleaner than you found it.
- Always find root cause. Always look for the root cause of a problem.
| <script>console.log({{ product | json }});</script> |
| var GetIpInfo = function(ipAddr) { | |
| var info = null; | |
| var infoUrl = "http://ipinfo.io/" + ipAddr; | |
| $.ajax({ | |
| url: infoUrl, | |
| type: 'GET', | |
| dataType: 'json', | |
| async: false, | |
| success: function(data) { | |
| info = data; |
| (function() { | |
| var i = window.setInterval(function() { | |
| var closeButton = document.querySelector('.pl-video-edit-remove'); | |
| if (closeButton) { | |
| closeButton.click(); | |
| } else { | |
| window.clearInterval(i); | |
| } | |
| }, 500); | |
| })(); |