Skip to content

Instantly share code, notes, and snippets.

View inf0rmer's full-sized avatar

Bruno Abrantes inf0rmer

View GitHub Profile
@inf0rmer
inf0rmer / hostapd-starter
Created June 30, 2015 18:55
Starting hostapd when WiFi goes down
#!/bin/bash
#
# Interface checker
# Checks to see whether interface has an IP address, if it doesn't assume it's down and start hostapd
# Author : SirLagz
#
Interface='wlan0'
HostAPDIP='10.0.0.1'
echo "-----------------------------------"
echo "Checking connectivity of $Interface"
@inf0rmer
inf0rmer / blanket-dynamic-actions-yard.rb
Created December 30, 2014 17:12
Documenting dynamically created REST actions in Blanket
# @macro [attach] REST action
# @method $1()
# Performs a $1 request on the wrapped URL
# @param [String, Symbol, Numeric] id The resource identifier to attach to the last part of the request
# @param [Hash] options An options hash with values for :headers, :extension and :params
# @return [Blanket::Response, Array] A wrapped Blanket::Response or an Array
def add_action(action)
#...
end
@inf0rmer
inf0rmer / blanket-exception-yard.rb
Created December 30, 2014 17:08
Blanket::Exception's initialize method documented
# Creates a new exception
# @param [HTTParty::Response] response the HTTP Response
# @return [Blanket::Exception] The Blanket Exception object
def initialize(response = nil)
#...
end
@inf0rmer
inf0rmer / blanket-raise-exception-direct.rb
Last active August 29, 2015 14:12
Raising a well-known exception directly in Blanket
raise Blanket::InternalServerError.new
@inf0rmer
inf0rmer / blanket-raise-exception.rb
Created December 30, 2014 16:58
Raising a well-known exception using EXCEPTIONS_MAP in Blanket
raise Blanket::Exceptions::EXCEPTIONS_MAP[500].new
@inf0rmer
inf0rmer / blanket-generating-exception-classes.rb
Created December 30, 2014 16:53
Automatically generating ~60 Blanket::Exception subclasses
STATUSES.each_pair do |code, message|
klass = Class.new(Exception) do
send(:define_method, :message) {"#{code ? "#{code} " : ''}#{message}"}
end
klass_constant = const_set message.delete(' \-\''), klass
Exceptions::EXCEPTIONS_MAP[code] = klass_constant
end
@inf0rmer
inf0rmer / http-statuses.rb
Last active August 29, 2015 14:12
Well-known HTTP status codes and their meanings (abridged)
STATUSES = {
# ...
400 => 'Bad Request',
401 => 'Unauthorized',
402 => 'Payment Required',
403 => 'Forbidden',
404 => 'Resource Not Found',
405 => 'Method Not Allowed',
406 => 'Not Acceptable',
407 => 'Proxy Authentication Required',
@inf0rmer
inf0rmer / blanket-adding-actions.rb
Created December 30, 2014 16:41
Adding RESTful actions using a "macro"-like interface
add_action :get
add_action :post
add_action :put
add_action :patch
add_action :delete
@inf0rmer
inf0rmer / blanket-wrapper-add-action.rb
Last active August 29, 2015 14:12
Blanket::Wrapper's macro-like interface for defining REST actions
def add_action(action)
define_method(action) do |id=nil, options={}|
request(action, id, options)
end
end
@inf0rmer
inf0rmer / blanket-wrapper-method_missing.rb
Created December 30, 2014 16:19
Blanket::Wrapper's dynamic method dispatching
def method_missing(method, *args, &block)
Wrapper.new uri_from_parts([method, args.first]), {
headers: @headers,
extension: @extension
}
end