Skip to content

Instantly share code, notes, and snippets.

View nnabeyang's full-sized avatar

noriaki watanabe nnabeyang

View GitHub Profile
@nnabeyang
nnabeyang / git_log_reverse_p.txt
Created March 24, 2012 08:00
GitのNotesで文章を管理
commit 917538814d304a01b750db8c84d3fe0e08c9e435
Author: noriaki watanabe <nabeyang@gmail.com>
Date: Thu Mar 22 09:12:22 2012 +0900
initial commit
diff --git a/src/unit.rb b/src/unit.rb
new file mode 100644
index 0000000..e69de29
@nnabeyang
nnabeyang / README.md
Created April 30, 2012 08:15
wiki2html_windows

wiki2html -- A wiki to html converter

wiki2htmlについて

wiki2htmlはlivedoor wikiのような記法で書かれた テキストファイルをHTMLに変換するツールです。以下の方針に従って開発しています。

  • できるだけ多くのエラーを発見する
  • 設定ファイルによる記法の変更可能性
  • HTMLが生成されるまでの時間は遅くない
@nnabeyang
nnabeyang / myconcern.rb
Created July 25, 2012 12:50
複数のモジュールにあるStaticeMethodsを1つのクラスのクラスメソッドにまとめる
module Concern
def self.extended(base)
base.instance_variable_set("@dependencies", [])
end
def append_features(base)
if base.instance_variable_defined?("@dependencies")
base.instance_variable_get("@dependencies") << self
else
super
@dependencies.each {|dep| base.send(:include, dep)}
@nnabeyang
nnabeyang / myrails.rb
Created July 25, 2012 13:15
validatesの簡易版
class Class
def class_attribute name
class_eval <<-RUBY, __FILE__, __LINE__ + 1
def self.#{name}() nil end
def self.#{name}=(val)
singleton_class.class_eval {
undef_method :#{name}
define_method(:#{name}) { val }
}
val
@nnabeyang
nnabeyang / controller_and_view.rb
Created July 29, 2012 16:04
railsのコントローラーとビューの連携はこんな感じ
require 'erb'
class ERB
def self.call(source)
new(source, nil, nil, '@output_buffer').src
end
end
class Template
def initialize(source, path)
@path = path
@source = source
@nnabeyang
nnabeyang / tsort_example.rb
Created July 31, 2012 01:04
Rails::Initializable::Collectionのtsort_eachはこんな感じ
class Node
attr_reader :before, :after, :name
def initialize(name, config)
@name = name
@before = config[:before]
@before = config[:after]
end
def to_s
@name
end
@nnabeyang
nnabeyang / hello.ru
Created July 31, 2012 03:55
ctrl+cでrackサーバーをシャットダウンする
require './hello_rack'
run HelloRack.new
@nnabeyang
nnabeyang / configurable.rb
Created August 1, 2012 15:24
railsのEngine, Applicationはclass Cのようにメソッドが無い場合は、インスタンスメソッドを実行する
module Configurable
def instance
@instance ||= new
end
def method_missing(*args, &block)
instance.send(*args, &block)
end
end
class C
extend Configurable
@nnabeyang
nnabeyang / application.rb
Created August 2, 2012 05:34
静的ページのミドルウェア(Rack)
require './static'
class Application
class << self
def instance
@instance ||= new
end
def method_missing(*args, &block)
instance.send(*args, &block)
end
end
@nnabeyang
nnabeyang / index.html
Created December 28, 2012 04:53
xhr2でバイナリデータを送信するテストです。ボタンをクリックするとクライアントから3バイトの情報がArrayBufferで送られます。それをサーバーがバイナリとして受け取り、それをそのままクライアントに送り返します。クライアント側で受け取った3バイトの情報をtextareaに表示します。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<title>xhr2 test</title>
<body>
<textarea id="response"></textarea>
<button id="send">send</button>
<script>
var txtArea = document.getElementById('response');
document.getElementById('send').addEventListener('click', function(e) {