sudo apt install -y build-essential libssl-dev zlib1g-dev
wget "http://mirrors.evowise.com/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz"
tar xfz openssh-7.4p1.tar.gz
cd openssh-7.4p1
./configure
make
sudo make install
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'yaml' | |
require 'json' | |
require 'bundler/inline' | |
gemfile _install=true do | |
source 'https://rubygems.org' | |
gem 'pry' | |
gem 'puma' | |
gem 'sinatra', require: 'sinatra/base' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Docs | |
def self.extended(version) | |
version.include Swagger::Blocks | |
end | |
def root | |
Swagger::Blocks.build_root_json [self] | |
end | |
concerning :App do |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Usually normalization is performed during `before_validation` | |
# or in a setter. But neither would help with normalization of | |
# where conditions. | |
# | |
# This will add `normalize` to ActiveRecord with support for | |
# where conditions. For example, | |
# | |
# class User | |
# normalize(:email) { email.downcase } | |
# end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This class is used to render jbuilder templates in grape. | |
# | |
# There is an existing grape-jbuilder gem but it depends | |
# on tilt-jbuilder gem which | |
# - does not support partial! with :collection | |
# - does not support template compilation | |
# | |
# In constrast this template handler supports all features of jbuilder | |
# and uses template compilation (5x-10x times faster than without). | |
class Tilt::Jbuilder < Tilt::Template |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Gem::Specification.new do |s| | |
s.name = 'docs' | |
s.version = '0.0.1' | |
s.files = ['docs.rb'] | |
s.require_path = '.' | |
s.add_dependency('swagger-ui_rails', ">= 2.1.0.alpha.7.1") | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'fiddle' | |
A = Class.new | |
B = Class.new | |
C = Class.new A | |
p C.superclass # => A | |
(Fiddle::Pointer[Fiddle.dlwrap C] + 16)[0, 8] = Fiddle::Pointer[Fiddle.dlwrap B].ref | |
p C.superclass # => B |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def method_calls(detailed: false, thread: nil) | |
[].tap do |log| | |
ident = -1 | |
trace = TracePoint.new(:call, :return, :c_call, :c_return) do |tp| | |
break if thread and thread != Thread.current | |
case tp.event | |
when :call, :c_call | |
if tp.event == :call or detailed | |
ident += 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# rails 3.X patch to remove extra allocations on field access | |
module ActiveRecord::AttributeMethods::Read::ClassMethods | |
def internal_attribute_access_code(attr_name, cast_code) | |
access_code = "(v=@attributes[attr_name]) && #{cast_code}" | |
unless attr_name == primary_key | |
access_code.insert(0, "missing_attribute(attr_name, caller) unless @attributes.has_key?(attr_name); ") | |
end | |
if cache_attribute?(attr_name) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def track_sql(&block) | |
timing = Hash.new 0 | |
track = ->(_,start,finish,_,data) do | |
Thread.exclusive do | |
timing[data[:name]] += (finish - start) | |
end | |
end | |
ActiveSupport::Notifications.subscribed(track, 'sql.active_record', &block) | |
timing |
NewerOlder