thanks: @Mask, @tommay, @tenyo
- dumps backtraces to configured logger (#66)
- use Forwardable/def_delegators on main's eigenclass instead of instance (#67, #68)
- add support for PATCH routes (#79)
thanks: @tommay, @gunnarmarten, @nagius
- add Angelo::Templates as a better interface to Tilt
- haml / markdown support
- JSON array post body support (#48)
- add
request_body
helper for access to JSON array post bodies orrequest.body.to_s
- move
reload_templates!
toAngelo::Base::DSL
- support
Regexp
as only arg tobefore
andafter
filters - add post override support via
X-Angelo-PostOverride
header - update celluloid API usage (#58)
- add
default_headers
DSL method (#61)
thanks: @tommay
- Base.content_type -> DSL#content_type (for top-level apps)
thanks: @tommay, @kyledrake, @katjaeinsfeld
- refactor UnboundMethod -> instance_exec (#38)
- add angelo/main for sinatra-like top-level DSL (#37)
- make SymHash.new recurse array values
- remove 'layouts_' from view_dir/layouts/*
- return anything that respond_to? :to_json when content_type :json
- remove event restriction to SSE stash contexts
- add reload_templates! DSL method
- refactor testing helpers (#35)
- refactor ParamsParser#parse_post_body (#34)
- Responder.symhash refactored to Angelo::SymHash (#33)
- define_app now accepts a subclass of Angelo::Base (#32)
- testing auxiliary classes moved to angelo/minitest/helpers (#32)
- SimpleCov testing output support on MRI (#28)
- Mustermann wholly integrated
- include Angelo::Tilt::ERB by default
- add Tilt ~> 2.0 and Mustermann ~> 0.4 to gemspec
- require ruby >= 2.1 (also a Mustermann requirement)
thanks: @mighe, @tarcieri, @jc00ke, @gunnarmarten, @tommay
- RuntimeError if Angelo::Tilt::ERB is included and Tilt is < 2.0
- add deprecation warning - plan for Tilt inclusion by default
- fix/simplify routing hash (#27)
- Base.run, Base.run! now accept an options hash to pass to Reel (#26)
- update tests for 2.2.0 URI.parse (https://bugs.ruby-lang.org/issues/10669)
public_dir
accessor forwarded from base nowredirect
returns nil- travis tests against rbx (#23)
thanks: @mighe, @artworx
- send_file now accepts both full paths and paths relative to app file's dir (#20)
- erb templates now sorted by type, finer control of response template type (#19)
- refactor views dir and public dir setting into top level DSLish methods
- set views path with
views_dir 'vues'
- set public path with
public_dir 'publick'
- set views path with
thanks: @mighe
- refactor bind address, port, log level and error reporting setting into top level DSLish methods
- set bind address with
addr '0.0.0.0'
- set bind port with
port 4567
- set log level with
log_level ::Logger::DEBUG
- set error reporting with
report_errors!
- bind address and port can still be specified on
.run
or.run!
calls
- set bind address with
- remove command line option parsing completely
thanks: @mighe
- fix for responding more than once to websocket and sse requests (#17)
- clean up gemfile and gemspec
thanks: @mighe, @chewi
- add flag (default: false) to
Base.run
to trap INT and sleep or not - add
Base.run!
which calls.run
with flag set true - fix for form params keys with no values
thanks: @chewi
- add on_close setter to EventSource
- fix peeraddr forward on EventSource
thanks: @chewi
- fix stash socket iteration error handling (#11)
- chunked responses with
transfer_encoding :chunked
andreturn_obj.each
- chunked responses with
chunked_response(){|r| ... }
event
andmessage
helpers on sse objects
thanks: @chewi
- handle RequestError in before blocks for eventsource properly (#9)
thanks: @chewi, @samjohnduke
- multiple before/after filters with mustermann support (#3)
- accept extra headers in eventsource route builder (#6)
- handle errors in before blocks for eventsource-built routes (#6)
- let DELETE and OPTIONS routes see query params (#8)
- handle bad/malformed requests better
- add forward for SSE stash from Server for tasks
- fix crash on unsupported HTTP request types
- more info in debug messages from sockets/stashes
- handle more errors during ws read task
- add Base#send_data
- add ability to pass options to Mustermann instances
- recursively symhash JSON POST bodies
- add options route builder
- WebsocketResponder -> Responder::Websocket
- add Responder::Eventsource
- split Stash into module with Websocket and SSE classes
- add SSE eventsource route builder and helper
- add #event and #message to Stash::SSE
- add .sse_event and .sse_message to Base
- add send_file with disposition support
- remove disposition header from static file serving
- add log level settings
- make response logging default to :info level
- catch SystemCallError, IOError in Stash#each* methods
- before and after blocks now wrap websocket routes
- add :js content_type
- add halt method and handling
- add RequestError and handling
- make Mustermann::RouteMap not descend from Hash
- replace WebsocketsArray < Array with Stash
- fix WebsocketRepsonder.close_socket
- leave RSpec for Minitest
- fix for Reel::Connection::StateError -> Reel::StateError
- rename "socket" route definition to "websocket"
- reel 0.5.0 support (Reel::Server -> Reel::Server::HTTP)
- better testing of Responder#headers
- better handling of Responder#redirect
- add Base#request_headers helper
- rename Base.async -> Base.task, add Base#future
- add WebsocketsArray#all
- fix websockets pinging to ping all connected sockets
- add Responder#redirect
- add Base.async, Base.on_pong, and Base#async
- fix websockets context handling, removal
- add ping task to reactor
- better testing of websockets
- slightly better handling of socket errors
- static file content type fix
- basic static file support (i.e. /public files)
- basic ETag/If-None-Match support
- fix for params with no Content-Type header
- fix for socket paths with mustermann
- sorta common log-ish-ness
- memoize params
- slight changes for mustermann
- add '-o addr' bind to address cmd line option
- add '-p port' bind to port cmd line option
- add mustermann support
- fix gemspec
- add codename
- travis
- rspec and tests!
- lots of fixing broken that testing found
- contextualized websockets helper
- add Base.content_type
- Responder#content_type= -> Responder#content_type
- properly delegated to Responder
- inadvertent yank of 0.0.3
- added tilt/erb
- added before/after
- added content_type/headers
- better websockets error handling
- added websockets helper
- initial release
- get/post/put/delete/options support
- socket support