Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env ruby
class BufferedString
class Buffer < String
def initialize
@eof = false
super
end
# goes in start method for the server
if m = Waves.config.monitor
fork { m.call }
end
module Waves
module Servers
class Base
attr_accessor :application, :host, :port, :server
# returns the PID of the server process
def self.run( application, host, port )
module Waves
module Foundations
module Compact
app.module_eval <<-_CODE
module Resources
class Map
include Waves::Resources::Mixin
handler( Exception ) do
Waves::Views::Errors.new( request ).server_error_500
end
@dyoder
dyoder / dog.rb
Created November 7, 2008 05:24
dog.rb
class Dog
attr_accessor :request
def initialize( request )
@request = request
end
def get
“Fido” if request.path == ‘/name’
require 'rubygems'
require 'autocode'
class Object
include AutoCode
# fall back to creating a module that automatically loads
# from a directory of the snake-cased name, ex: Foo::Bar => 'foo/bar.rb'
auto_create_module true, Module.new do
auto_load true, :directory => lambda { self.class.name.snake_case }
module HelloWorld
include Waves::Foundations::Compact
module Resources
class Map
include Hoshi::View :html4
on( :get, [ 'hello', :name ] ) { hello( captured.name ) }
module MyApp
module Configurations
class Production < Development
host '0.0.0.0'
port 80
application do
use Rack::Static, :root => "public"
run Waves::Dispatchers::Fast.new
end
end
module HelloWorld
include Waves::Foundations::Compact
module Resources
class Map
on( :get, [], :query => { :name => true } ) { "Hello #{query.name}" }
end
end
module Pages
module Resources
class Default
include Waves::Resources::Mixin
include Pages::ResponseMixin
on( :get, [ :resource, { :name => 'home' }] ) { show }
# matching against /