Skip to content

Instantly share code, notes, and snippets.

@zakuroishikuro
zakuroishikuro / base36utils.rb
Last active August 29, 2015 13:57
36進数で英文を書いてみる
# 36進数でちょっと遊ぶ (簡単な英文を書く)
# http://qiita.com/manuluu/items/ad2c471a1a1c6fd91a63
module Base36Utils
def get_symbols(str)
syms = str.scan(/[^a-zA-Z]/).uniq.sort.join
end
def to_base36(base10, symbols="")
base10.to_s(36).gsub(/\d/){|d|symbols[d.to_i]}
@zakuroishikuro
zakuroishikuro / aautils.rb
Created March 16, 2014 14:41
AAの構造を数値として保存して遊ぶ
module AAUtils
def get_chars(aa)
aa.chars.uniq.sort.join
end
def to_num(aa, chars)
aa.tr(chars, "0-9a-z").to_i(chars.size)
end
@zakuroishikuro
zakuroishikuro / hieisay.rb
Last active August 29, 2015 13:57
ヒェーと対話
# シェルで比叡と対話する (hieisay)
# http://qiita.com/manuluu/items/90d867025cc617a29f5a
require 'optparse'
Version = '214.6'
DEFAULT = :default
class Hiei
@zakuroishikuro
zakuroishikuro / fibonacci.rb
Last active August 29, 2015 13:57
フィボナッチ数列
def fibonacci(num)
[1,1].tap{|a|(num-2).times{a<<a[-2,2].inject(:+)}}[0,num]
end
#p fibonacci 10 #=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
@zakuroishikuro
zakuroishikuro / notification.rb
Last active August 29, 2015 13:59
RubyからMacの通知センターに通知するメソッド (AppleScript経由)
def notification(message, title:"Ruby", subtitle:"", sound:"")
[message, title, subtitle, sound].each{|arg| arg.gsub!(/"/, '\\\\\"')}
scpt = 'display notification "%s"' % message
scpt << ' with title "%s"' % title
scpt << ' subtitle "%s"' % subtitle unless subtitle.empty?
scpt << ' sound name "%s"' % sound unless sound.empty?
system %|osascript -e "#{scpt.gsub(/"/, '\"')}"|
end
@zakuroishikuro
zakuroishikuro / script_path.rb
Created April 20, 2014 16:28
実行しているスクリプトが保存されているフォルダのパスを取得する
File.expand_path(File.dirname(__FILE__))
# スクリプトのパスからの相対パスを使いたいとき
# "./foo.rb"みたいにするとカレントフォルダによって変わってしまうので
@zakuroishikuro
zakuroishikuro / simple_download.rb
Last active August 29, 2015 14:00
シンプルなダウンロードメソッド (テキストもバイナリもそのまま)
require 'open-uri'
@dir = Dir.home # home dir
# @dir = File.expand_path(File.dirname(__FILE__)) # script dir
def download(url, name)
open("#{@dir}/#{name}", "wb"){|file|file.write(open(url).read)}
end
@zakuroishikuro
zakuroishikuro / file0.txt
Last active August 29, 2015 14:12
プロ生ちゃんのカレンダーのあれ (Ruby) ref: http://qiita.com/zakuroishikuro/items/6a1cdc48609875b8e131
require 'date'
last = Date.new(Time.now.year, Time.now.month, -1)
days = (1..last.day).map{|d| '%2d' % d}
days.unshift *[nil] * (last + 1 << 1).wday
puts last.strftime "%B %Y"
puts days.each_slice(7).map{|week| week * "\t"}
@zakuroishikuro
zakuroishikuro / file0.txt
Last active August 29, 2015 14:12
Hashのキーを文字列からシンボルに変換する ref: http://qiita.com/zakuroishikuro/items/5b08d65d4fef79982f19
def symbolize_keys(hash)
hash.map{|k,v| [k.to_sym, v] }.to_h
end
hash = {'key':'value', 'key2':'value2'}
symbolize_keys(hash) #=> {:key=>"value", :key2=>"value2"}
@zakuroishikuro
zakuroishikuro / cal.rb
Created January 9, 2015 05:16
Calendar
# Twitterに投稿できるくらい短くしたかったけど無理で諦めた。
# 捨てるのももったいないのでここにメモっておく
require'date'
n = Time.now
l = Date.new(n.year,n.month,-1)
puts l.strftime("%B %Y");
puts "ver. 1"