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
@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 / 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 / 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 / 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 / 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)
# 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 / 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
$! raise された例外オブジェクト
$" require で読み込まれたファイルの配列
$#
$$ 現在のプロセス ID
$%
$& 正規表現にマッチした箇所の文字列
$' 正規表現にマッチした箇所より後ろの文字列
$(
$)
$* Ruby スクリプトに指定された引数。ARGV と同じ
@danimal141
danimal141 / c-pointers.c
Created February 15, 2015 00:14
Pointers in c
#include <stdio.h>
int main() {
int a = 10;
int *pa = &a;
int **ppa = &pa;
printf("%p\n", pa);
printf("%d\n", *pa);
printf("%p\n", ppa);
@danimal141
danimal141 / luhn_checksum.rb
Last active August 29, 2015 14:20
Luhn checksum
def check_sum val
sum = val.to_s.each_char.with_index.inject([]) do |memo, (char, i)|
next memo << double_digit_value(char.to_i) if i.odd?
memo << char.to_i
memo
end.inject :+
if (sum % 10).zero?
p "#{sum} is divisible by 10. Valid!"
else