A proof of concept of having Sinatra like routes inside your controllers.
Since the router is gone, feel free to remove config/routes.rb.
Then add the file below to lib/action_controller/inline_routes.rb
inside your app.
| # AwesomeRouter: A class that I've been using throughout a few Backbone.js apps I've built. | |
| # | |
| # It adds 2 features: an event that gets fired when one calls `navigate` (aptly named | |
| # "navigate"), so you can bind things to when a URL gets triggered. And a "before filter" | |
| # method `before`, which you can use to run things before every a route gets triggered. | |
| # | |
| # This could easily be extended to have after filters too, or to only trigger a route | |
| # upon @before returning something that's not false. | |
| class AwesomeRouter extends Backbone.Router |
| %ul | |
| - activities.each do |activity| | |
| %li | |
| .activity{ data: { role: activity.activity_type } } | |
| = render_activity activity |
| + (void)drawNoiseWithOpacity:(CGFloat)opacity inRect:(CGRect)rect{ | |
| static UIImage *noiseImage = nil; | |
| static dispatch_once_t oncePredicate; | |
| dispatch_once(&oncePredicate, ^{ | |
| NSUInteger width = 64, height = 64; | |
| NSUInteger size = width*height; | |
| char *rgba = (char *)malloc(size); srand(124); | |
| for(NSUInteger i=0; i < size; ++i){rgba[i] = rand()%256;} | |
| CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); | |
| CGContextRef bitmapContext = |
| { | |
| "auto_indent": true, | |
| "auto_match_enabled": true, | |
| "caret_style": "smooth", | |
| "close_windows_when_empty": true, | |
| "color_scheme": "Packages/Theme - Aqua/Color Schemes/Tomorrow Night Aqua.tmTheme", | |
| "detect_indentation": true, | |
| "dictionary": "Packages/Language - English/en_US.dic", | |
| "draw_centered": false, | |
| "draw_indent_guides": true, |
| ## Get FFMpeg working on heroku by building binaries using vulcan | |
| gem install vulcan | |
| vulcan create foo | |
| git clone --depth 1 git://source.ffmpeg.org/ffmpeg | |
| cd ffmpeg |
| require "sinatra/base" | |
| require "sinatra/namespace" | |
| require "multi_json" | |
| require "api/authentication" | |
| require "api/error_handling" | |
| require "api/pagination" | |
| module Api | |
| class Base < ::Sinatra::Base |
| # see https://github.com/thomasjbradley/signature-pad for more details | |
| instructions = JSON.load(data).map { |h| "line #{h['mx']},#{h['my']} #{h['lx']},#{h['ly']}" } * ' ' | |
| system "convert -size 198x55 xc:transparent -stroke blue -draw '#{instructions}' signature.png" |