Skip to content

Instantly share code, notes, and snippets.

View adamluzsi's full-sized avatar

Adam Luzsi adamluzsi

View GitHub Profile
@adamluzsi
adamluzsi / app.rb
Last active March 27, 2016 18:31
How to mount any Rack based application into Rack::App
require 'rack/app'
require './rack_based_application.rb'
class App < Rack::App
mount_rack_based_application RackBasedApplication
namespace :mount do
mount_rack_based_application RackBasedApplication, :to => '/point'
end
@adamluzsi
adamluzsi / my_new_rack_app_extension.rb
Last active April 4, 2016 14:06
How to Create rack-app extension
Rack::App::Extension.register 'rack_app_extension' do
include ExampleExtensionEndpointMethods
extend ExampleExtensionClassMethods
def endpoint_method
'hello world'
end
apply_extension :front_end
@adamluzsi
adamluzsi / rack_app_cli.rb
Last active April 4, 2016 14:12
Rack::App CLI example command decleration
require 'rack/app'
class App < Rack::App
cli do
command :test do
description "it's a sample test cli command"
@adamluzsi
adamluzsi / app.rb
Created April 5, 2016 16:16
simple_website
require 'rack/app'
require 'rack/app/front_end'
class App < Rack::App
apply_extensions :front_end
helpers do
def method_that_can_be_used_in_template
@adamluzsi
adamluzsi / config.ru
Created May 4, 2016 11:01
Rack::App with basic auth
require 'rack/app'
class App < Rack::App
middlewares do |b|
b.use Rack::Auth::Basic, "Restricted Area" do |username, password|
[username, password] == ['admin', 'admin']
end
@adamluzsi
adamluzsi / Gemfile
Last active May 18, 2016 09:02
rack-app-worker
source 'https://rubygems.org'
gem 'rack-app'
gem 'rack-app-worker'
@adamluzsi
adamluzsi / app.rb
Created June 26, 2016 16:12
rack-app mounting/resources
require "rack/app"
class App < Rack::App
require_relative 'app_child'
require_relative 'app_not_child'
mount App::Child, to: '/child'
namespace '/affects_mounting_too' do
@adamluzsi
adamluzsi / README.md
Last active July 27, 2016 07:39
rack-app params validation

validated_params block create an endpoint specific requirement. By validating the params it creates a validated_params content too, so you don't have to parse content with hand afterhand.

When you need use custom parser, such as JSON, you can use that too, there is two one requirement to do so:

  • implement the .parse(unserialized_string) interface
  • raise any kind of exception if the given string is malformed

you can access during the endpoint block the validated values under the validated_params method

Have fun! :)

@adamluzsi
adamluzsi / app.rb
Last active March 2, 2017 15:59
rack-app serve_file helper
require 'rack/app'
class App < Rack::App
desc 'endpoint to serve file back as stream'
get '/serve_file' do
serve_file '/path/to/file'
end
end
@adamluzsi
adamluzsi / app.rb
Last active March 2, 2017 15:59
rack-app payload stream
require 'rack/app'
class App < Rack::App
get '/payload_to_file' do
payload_to_file('/out/file/path')
end
get '/payload_stream_receive' do
payload_stream{|chunk| puts(chunk) }