ruby
ベンチマークとかよくわからないけど、timeというコマンドでできるみたいなので、ちょっとやってみた。benchrmark.rb #!/usr/bin/env ruby puts (1..1000).to_a.inject(:+) benchmark.io #!/usr/bin/env io Range setRange(1, 1000) asList reduce(+) print …
aereal/music-chord · GitHub 短絡的にMusic::Chordと名づけました。いろいろやばい気がします。これは、OSのAPIを叩いて音声を再生するとかそんなすばらしいものではなくて、構成音からコードネームとかを得るとか、そういった用途に使います。 しかし、肝…
12進数を扱おうとしたなにか。 class ::Fixnum def duo self % 12 end end とりあえずやりたいことは達成できたのでよしとする。
module ::Boolean def then self end def else self end end class ::TrueClass include Boolean def then yield self end def else self end end class ::FalseClass include Boolean def then self end def else yield self end end リファレンスに # -> B…
def import(feature, as={}) ret = require feature self.class.instance_eval do as.each do |(orig, dest)| c = const_get(orig) remove_const(orig) if const_defined?(orig) const_set(dest, c) end end unless as.empty? ret end import "date", :Date …
def get_each_const(const, context=::Object) const.to_s.split(/::/).inject(context) {|parent, c| parent.const_get(c) } end module Foo module Bar module Hoge module Fuga end end end end bar = get_each_const "Foo::Bar" # -> Foo::Bar fuga = ge…
ひとりで書いているし、ガチガチに作っているわけでもないけど、気をつけるようにしていることとか。 Tab indent, No space indent タブインデントに決め打ちしておけば、近い将来に自分がインデント幅8に目覚めても、エディタの設定をいじればすむ。 インデ…
Config = { # 対応するメディアタイプの拡張子 :typemap => %w(xhtml html atom json) } class Resource Config[:typemap].each do |i| # Resource#to_xhtml, Resource#to_html, ... を定義する define_method("to_#{i}") do # Resource#to_xml はコアで対応…
begin require "dl/win32" rescue LoadError require "Win32API" end def alert(wnd, text, caption, mode=0) msgbox = Win32API.new("user32", "MessageBox", %w(p p p i), "i") msgbox.call(wnd, text, caption, mode) end if $0 == __FILE__ class Numeri…
ERB を Web アプリケーションのビューに使うときなんかに、変数とかを使うときによく考えないと、余計なメソッドを呼ばれたり、めんどうなので。 def render_erb(template, vars={}) require "erb" obj = Object.new obj.class.instance_eval do vars.each d…
うまくいえないけど。 a,b,c,d,... というアルファベットの羅列 (べつにアルファベットじゃなくてもいいけど) があって、それをもとのインデックスと同じインデックス以外にランダムに配置する、というソートをやってみる。 alphabet = ("a".."z").to_a.sort…