Skip to content

Instantly share code, notes, and snippets.

View danimal141's full-sized avatar
💁‍♂️
Get wild and tough

Hideaki ishii danimal141

💁‍♂️
Get wild and tough
  • Tokyo, Japan
View GitHub Profile
$! raise された例外オブジェクト
$" require で読み込まれたファイルの配列
$#
$$ 現在のプロセス ID
$%
$& 正規表現にマッチした箇所の文字列
$' 正規表現にマッチした箇所より後ろの文字列
$(
$)
$* Ruby スクリプトに指定された引数。ARGV と同じ
@danimal141
danimal141 / alias_method_chain.rb
Created April 12, 2014 14:11
How to use alias_method_chain
require 'active_support/core_ext/module/aliasing'
class A
def foo
'foo'
end
end
class B < A
def foo_with_bar
# Before
def get_file_names path
file_names = []
Dir.glob(path).each do |file|
file_names << File.basename(file) if File::ftype(file) == "file"
end
return file_names
end
# After Refactoring
@danimal141
danimal141 / define_accessor.rb
Created March 20, 2014 04:18
Define accessor sample
class Class
def define_accessor *args
args.each do |prop|
self.class_eval do
define_method prop do
return instance_variable_get("@#{prop}")
end
define_method "#{prop}=" do |val|
return instance_variable_set("@#{prop}", val)
@danimal141
danimal141 / fibonacci.rb
Created March 16, 2014 03:51
fibonacci sequence in Ruby
# without memoizing
def fibonacci n
n < 2 ? n : fibonacci(n - 2) + fibonacci(n - 1)
end
10.times { |i| p fibonacci(i) }
# memoize
module Fibonacci
@@memo = [0, 1]
@danimal141
danimal141 / fibonacci.coffee
Last active August 29, 2015 13:57
fibonacci sequence in JavaScript
#without memoizing
fibonacci = ->
if n > 2 then n else fibonacci(n - 2) + fibonacci(n - 1);
for i in [0..10]
console.log('i = ' + fibonacci(i))
#memoize
fibonacci = do ->
memo = [0, 1]
@danimal141
danimal141 / class_methods2.rb
Created March 15, 2014 09:30
ClassMethods test 2
require 'active_support/concern'
module M1
# ActiveSupport::Concernをextendしとけばdef included(klass)~とかしなくても勝手にClassMethods取り込んでくれる
# ActiveSupport::Concernがincludeで呼び出されるappend_featuresを上書きしてるぽい
extend ActiveSupport::Concern
def method_i
p 'InstanceMethodですよー'
end
@danimal141
danimal141 / class_methods.rb
Created March 15, 2014 09:01
ClassMethods test
module M1
class << self
def included(klass)
p klass
klass.extend ClassMethods
end
end
def method_i
p 'InstanceMethodですよー'
@danimal141
danimal141 / overloading.html
Created October 19, 2013 06:58
function overloading sample
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>function overloading</title>
</head>
<body>
<div id="target1" style="width:100px; height:100px;"></div>
<div id="target2" style="width:100px; height:100px;"></div>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="format-detection" content="telephone=no">
<meta name="keywords" content="">
<meta name="description" content="">
<title>progress_sample</title>