Skip to content

Instantly share code, notes, and snippets.

View shakemurasan's full-sized avatar
🤔
I wish a splatoon3....

Yasuhiro Matsumura shakemurasan

🤔
I wish a splatoon3....
View GitHub Profile
@shakemurasan
shakemurasan / clock.rb
Created August 22, 2017 13:43
clockworkで毎分、指定のURLにアクセスするスクリプト
# ---------- getting started ----------
# gem install clockwork
# nohup clockwork clock.rb &
# ---------- stop process ----------
# ps -x | grep clock
# kill [id]
require 'clockwork'
require 'net/http'
class NullObjectExample
require 'naught'
NullObject = Naught.build
def null_object
null = NullObject.new
null.foo # => nil
null.bar # => nil
end
@shakemurasan
shakemurasan / render_observer.rb
Last active February 6, 2017 12:07
Railsでviewがレンダリングされた際、標準出力にそのファイル名を出力するコード
class RenderObserver < Rails::Railtie
@rendered = Set.new([])
config.after_initialize do
ActiveSupport::Notifications.subscribe "render_template.action_view" do |*args|
data = args.extract_options!
unless @rendered.include?(data[:identifier])
puts "#{data[:identifier]}"
@rendered.add(data[:identifier])
end
end
@shakemurasan
shakemurasan / puzzle2.rb
Created September 17, 2016 08:51
プログラマ脳を鍛える数学パズル:Q2 (別解)
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def print_enable_combinarion(from, to)
s = ['+', '-', '*', '/', '']
(from..to).each do |num|
a = num.to_s.split("")
[a[0]].product(s, [a[1]], s, [a[2]], s, [a[3]]) do |c|
next if abort?(str = c.join)
@shakemurasan
shakemurasan / puzzle18.rb
Last active August 26, 2016 13:41
プログラマ脳を鍛える数学パズル:Q18
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
ROOT_NUM = [4, 9, 16, 25, 36, 49, 64]
def ichigo
@result = []
(2..(ROOT_NUM[-1] / 2)).each { |i| search_pair(1, (2..i).to_a, [1]) }
p @result
@shakemurasan
shakemurasan / puzzle17.rb
Created August 21, 2016 03:12
プログラマ脳を鍛える数学パズル:Q17
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def pair2one(num)
@count = 0
countup(0, num) # 男子が先頭の場合を計上.
countup(1, num) # 女子が先頭の場合を計上.
puts @count
end
@shakemurasan
shakemurasan / modules_multiple.rb
Last active August 7, 2016 03:18
メタプログラミングRuby 第2版 P33 のサンプルコード+α
module M1
end
module M2
include M1
end
module M3
prepend M1
include M2
@shakemurasan
shakemurasan / puzzle15.rb
Last active July 2, 2016 08:52
プログラマ脳を鍛える数学パズル:Q15
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def step_count(a, b, n)
if a + b >= n
@count += 1 if a + b == n
return
end
@shakemurasan
shakemurasan / puzzle04.rb
Last active July 2, 2016 08:53
プログラマ脳を鍛える数学パズル:Q04
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def cut_bar(bar, m)
t = m
rt_bar = bar.dup
bar.each_with_index do |b, i|
if b > 1
t -= 1
@shakemurasan
shakemurasan / puzzle03.rb
Last active July 2, 2016 08:53
プログラマ脳を鍛える数学パズル:Q03
# -- 処理時間計測の自作ライブラリ --
require './process_measure.rb'
# ------------------------------
def reverse_card_open(card_num)
cards = Array.new(card_num, false)
1.upto(card_num) do |i|
i.step(card_num, i+1) do |j|
cards[j] = !cards[j]