Skip to content

Instantly share code, notes, and snippets.

Avatar
🚴‍♂️

takuma-saito

🚴‍♂️
View GitHub Profile
View in1.txt
0 0 2 21 2 23 15 18
4 22 24 17 12 4 11 19
3 3 11 15 5 12 6 8
18 23 6 12 18 24 15 11
9 7 19 18 16 18 14 18
2 17 10 6 5 7 20 7
5 24 5 24 18 0 1 3
24 21 6 8 21 23 18 13
View 0_sudoku.rb
module Puzzle
class Board
include Enumerable
def initialize(board)
@board = board
end
def rows(row)
@board[row * 9, 9].compact
end
def cols(col)
View appstore-sign.sh
### [apple store, appstore]
# キーと公開鍵認証リクエストを作成
$ openssl req -newkey rsa:2048 -out server.csr -keyout server.pem -days 365 -subj '/emailAddress=your_mail_address@gmail.com/CN=YOUR NAME/C=JP' -batch -nodes
# キーのインポート
$ security import kaigi.pem
$ mv ~/Downloads/ios_distribution.cer kaigi.cer
$ openssl x509 -in kaigi.cer -inform DER -out kaigi.cer.pub -outform pem
View traversable.rb
require 'uri'
require 'open-uri'
require 'nokogiri'
module Traversable
Target = Struct.new(:url, :depth, keyword_init: true)
def traverse(root, max_depth = 2)
root_url = URI.parse(root)
host = root_url.host
targets = [Target.new(url: root_url, depth: 0)]
View url_mappable.rb
require 'open-uri'
module Concern
def self.extended(base)
base.instance_variable_set(:@__deps, [])
end
def included(base)
if (deps = base.instance_variable_get(:@__deps))
deps << self
else
View validatable.rb
module Validatable
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def validate(attribute, &block)
attr_accessor attribute unless defined?(attribute)
alias_method "#{attribute}_orig=", "#{attribute}="
define_method("#{attribute}=") do |val|
self.__send__("#{attribute}_orig=", val) if block.(val)
View delegatable.rb
module Delegatable
def self.included(base)
base.class_eval do
def self.delegate_method(method, to)
define_method(method) do |*args|
instance_variable_get(to).__send__(method, *args)
end
end
end
end
View breadcrumb.rb
class String
def underscore
self.scan(/[A-Z][a-z]+/).map { |name| name.tr('A-Z', 'a-z') }.join("_")
end
end
class Crumb
def initialize(mgr, &block)
@mgr = mgr
@block = block
end
@takuma-saito
takuma-saito / gmail_search.rb
Created May 3, 2020
Gmail の検索条件を ruby の DSL で扱えるようにした
View gmail_search.rb
class Gmail
def initialize(&block)
@block = block
@items = []
end
def run
self.instance_eval(&@block)
@items.join(" ")
end
def cond(condition, &block)
@takuma-saito
takuma-saito / main.rb
Created May 3, 2020
覆面算(汎用版)
View main.rb
# 問題:
# http://hidesugar.web.fc2.com/ym2/ym2musikuizan2.txt
# ABCDEF * G = FABCDE
# 解答: 230769 * 4 = 923076
def solve(sx, sy, sz, mapping)
x = sx.inject(0) {|sum, x| sum * 10 + mapping[x]}
y = sy.inject(0) {|sum, y| sum * 10 + mapping[y]}
z = Enumerator.new do |e|
t = (x * y)
You can’t perform that action at this time.