Skip to content

Instantly share code, notes, and snippets.

View okuramasafumi's full-sized avatar
:octocat:
Hire me!

OKURA Masafumi okuramasafumi

:octocat:
Hire me!
View GitHub Profile
@okuramasafumi
okuramasafumi / cVimrc
Last active August 29, 2015 14:14
My cVimrc
set nohud
map <C-h> :set hud!<CR>
set noautofocus
set cncpcompletion
map <C-n> nextCompletionResult
imap <C-n> nextCompletionResult
site 'https://github.com/*' {
@okuramasafumi
okuramasafumi / pref_to_lat_long.rb
Created November 6, 2018 12:30
Prefecture to lat/long
{
"北海道"=>{:lat=>"43.06417", :long=>"141.34694"},
"青森県"=>{:lat=>"40.82444", :long=>"140.74"},
"岩手県"=>{:lat=>"39.70361", :long=>"141.1525"},
"宮城県"=>{:lat=>"38.26889", :long=>"140.87194"},
"秋田県"=>{:lat=>"39.71861", :long=>"140.1025"},
"山形県"=>{:lat=>"38.24056", :long=>"140.36333"},
"福島県"=>{:lat=>"37.75", :long=>"140.46778"},
"茨城県"=>{:lat=>"36.34139", :long=>"140.44667"},
"栃木県"=>{:lat=>"36.56583", :long=>"139.88361"},
@okuramasafumi
okuramasafumi / hash_to_proc.rb
Created March 30, 2019 06:26
Hash to_proc demo
hash = {foo: 1, bar: 2, buzz: 10}
words = %i(foo bar buzz)
p words.map(&hash) # => [1, 2, 10]
proc_obj = hash.method(:[]).to_proc
p words.map(&proc_obj) # => [1, 2, 10]
@okuramasafumi
okuramasafumi / Description.md
Last active April 5, 2019 06:56
Weird rubygems error by redefining `find` method

Here, with broken_find.rb required, specification.rb raises an error saying stub is an Array.

/Users/okuramasafumi/.rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0/rubygems/specification.rb:1065:in find_active_stub_by_path': undefined method this' for #<Array:0x00007fc3e18ff960> (NoMethodError)

The error disappears with working_find.rb required.

The only difference is whether ifnone.call if ifnone exists or not.

However, in specification.rb uses find method without ifnone argument. This means ifnone is nil.

diff --git a/proc.c b/proc.c
index 19ce7a1d19..3eb8c9445d 100644
--- a/proc.c
+++ b/proc.c
@@ -1196,6 +1196,24 @@ iseq_location(const rb_iseq_t *iseq)
return rb_ary_new4(2, loc);
}
+static VALUE
+iseq_code_location(const rb_iseq_t *iseq)
Keynote: Vim Renaissance
By Prabir Shrestha
"I'm thankful to people in vim-jp"
"With LSP, you don't have to configure for every language!"
"If you're not using LSP, go use it!"
It works with every language, every OS, in Vim8 or Neovim...Great!
He talks about vim so passionately, that's awesome.
He says "Go use it!" so many times, I'd like to use LSP more!
@okuramasafumi
okuramasafumi / after.rb
Created May 18, 2020 12:54
ActiveModelSerializerのこう書きたい
class HogeSerializer < ActiveModel::Serializer
attributes :id, :hogehoge
has_many :fugas do |fuga|
fuga.attributes :id, :fugafuga
fuga.has_many :bars do |bar|
bar.attributes :id, :barbar
end
end
end
@okuramasafumi
okuramasafumi / bench.rb
Created November 12, 2020 07:08
Ruby sum benchmark
require 'benchmark'
huge_array = (1..10000000).to_a
Benchmark.bmbm do |x|
puts "Adding all numbers"
x.report(:sum) { huge_array.sum }
x.report(:plus_equal) { sum = 0; huge_array.each {|i| sum += i }; sum}
x.report(:inject) { huge_array.inject(:+) }
x.report(:inject_block) { huge_array.inject(0) {|memo, i| memo + i} }
@okuramasafumi
okuramasafumi / mydsl.rb
Last active February 16, 2021 12:55
MyDSL
# ライブラリコード
module MyDSL
class ClassMacro < Module
class StoredItem
attr_reader :name
attr_accessor :context
def initialize(name, block_args: [], &block)
@name = name
@block_args = block_args
@block = block