Skip to content

Instantly share code, notes, and snippets.

View holysugar's full-sized avatar

HORII Keima holysugar

  • Aiming, Inc
  • Tokyo
View GitHub Profile
@holysugar
holysugar / temporary_table_class.rb
Last active August 29, 2015 14:02
テンポラリテーブル使うコードたたき台みたいな
require 'active_record'
def temporary_table_class(name, sql = nil, primary_key: nil, &block)
name = name.to_s.tableize
if block
ActiveRecord::Schema.define do
create_table(name, :temporary => true, &block)
end
elsif sql
@holysugar
holysugar / org.jenkins-ci.node.plist
Created May 13, 2014 07:29
jenkins ノード永続化 with launchd
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.jenkins-ci.node.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/java</string>
<string>-Dfile.encoding=UTF-8</string>
@holysugar
holysugar / build.observr
Last active August 29, 2015 13:57
Dockerfile 等の変更を検知して自動ビルド→テスト(serverspec); notify は趣味で書き換え
# vim: ft=ruby
# Run me with:
# ovservr build.observr
# ovservr については https://github.com/kevinburke/observr
require 'terminal-notifier-guard'
def notify(message, succeeded = true)
type = succeeded ? "success" : "failed"
system("terminal-notifier-#{type} -message '#{message}' -title 'Docker'")
@holysugar
holysugar / Vagrantfile
Created February 28, 2014 05:32
Docker Registry を立てる Vagrantfile のサンプル
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos65-x86_64-20131205"
config.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box"
#config.vm.network :public_network, ip: "192.168.1.99", bridge: "en0: Ethernet"
#!/usr/bin/env ruby
require 'json'
require 'msgpack'
print JSON.load(ARGF.read).to_msgpack
@holysugar
holysugar / type.rb
Created December 18, 2013 06:47
なんとなくプロトコル定義からデータ構造を自動生成するためのひな形
require 'hashie'
require 'pry'
class CoercionError < StandardError; end
class ValueCoercer
def initialize(name, klass)
@name = name
@klass = klass
end
def define_print_routes(sinatra_class)
def sinatra_class.print_routes(io = $stdout)
routes.each do |verb, signatures|
next if verb == "HEAD"
signatures.each do |signature|
path = signature.first.source
path.gsub!(/(\A\\A|\\z\z)/, '')
puts "%-6s %s" % [verb, path]
end
end
module AttrAccessorWithDefault
extend ActiveSupport::Concern
module ClassMethods
def attr_accessor_with_default(key, &block)
define_method(key) do
instance_variable_get("@#{key}") || instance_eval(&block)
end
define_method("#{key}=") do |v|
instance_variable_set("@#{key}", v)
end
@holysugar
holysugar / Vagrantfile
Last active December 28, 2015 23:29
Ubuntu を Vagrant の :public_network で試す時に default route を public_network 側などに設定する chef のコード(やっつけ
agrant.configure("2") do |config|
# ... 省略されています
config.vm.network :public_network, ip: "192.168.1.10", bridge: "en0: Ethernet"
config.vm.provision :chef_solo do |chef|
chef.json = {
:route => {
:gateway => '192.168.1.1'
@holysugar
holysugar / member.sh
Created November 21, 2013 07:43
GitHub の organization のメンバーリスト
curl -u username https://api.github.com/orgs/organizationname/members | jq '.[].login'