Skip to content

Instantly share code, notes, and snippets.

@lnznt
lnznt / client1.rb
Last active August 29, 2015 14:13
Ruby: Racc を利用した Prolog ミニパーサ ref: http://qiita.com/lnznt/items/3ab55937136b06cf44f8
require 'pp'
require 'socket'
host, port = 'localhost', 3333
insert = -> clause {
TCPSocket.open(host, port) do |s|
s.puts "assert(#{clause})."
s.gets
end
文法: 数字 '.' (例:「1.」「12.」などは妥当。「.1」などは不正)
a = 10
p [1,2,3].map {|n| n * a } #=> [10, 20, 30]
@lnznt
lnznt / file1.txt
Created January 10, 2015 22:39
Ruby: インスタンス変数とクラス変数 ref: http://qiita.com/lnznt/items/4f71e57c9bd1a520e49a
$ ruby sample-ivar.rb
foo は呼ばないでください.
foo は呼ばないでください.
foo は呼ぶなッ!!3 度目!!
--------
foo は呼ばないでください.
foo は呼ばないでください.
foo は呼ぶなッ!!3 度目!!
@lnznt
lnznt / file0.txt
Last active August 29, 2015 14:13
Linux:シェルスクリプト: ファイル xxx が消えるまで待つ ref: http://qiita.com/lnznt/items/ed15c26166c053e7ae2f
:
: while_exist で「xxx.part」が消えるまで待って、それから warm_halt でシャットダウンします
:
$ while_exist xxx.part ; warm_halt
:
: 上のコマンドは返って来ません。このまま出かけましょう。
:
@lnznt
lnznt / file0.txt
Last active August 29, 2015 14:13
Ruby: method_missing を使ってみた ref: http://qiita.com/lnznt/items/ee2f7763ee882826da63
p [].array? #=> true # [].kind_of?(Array) と同じこと
p {}.array? #=> false # {}.kind_of?(Array) と同じこと
@lnznt
lnznt / file10.txt
Created January 4, 2015 04:14
Ruby: Enumerator::Lazy で URI生成 ref: http://qiita.com/lnznt/items/a84d0fcda076d5c1a842
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
@lnznt
lnznt / file4.txt
Last active August 29, 2015 14:12
Ruby: OpenStruct のキーは to_sym される ref: http://qiita.com/lnznt/items/f61c269d10d757a4ecab
p :key.eql? 'key' #=> false
@lnznt
lnznt / notifier.rb
Created January 1, 2015 02:41
Notifier.rb
#!/usr/bin/env ruby
module Notifier
attr_reader :listeners
def on(event, *xs, &b)
@listeners ||= Hash.new {|h,k| h[k] = []}
@listeners[event].push *xs, b
end
@lnznt
lnznt / file2.txt
Created December 31, 2014 07:12
Ruby: Forwardable によるデリゲート(委譲) ref: http://qiita.com/lnznt/items/a821368f73de88358c6d
$ ruby sample2.rb
W, [2014-12-31T15:59:36.757060 #24309] WARN -- : (警告) foo は呼び出さないでください
E, [2014-12-31T15:59:36.757153 #24309] ERROR -- : (異常) bar は呼び出したらダメ!!