Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

2014-04-01から1ヶ月間の記事一覧

inf-rubyでpryを使う

inf-rubyでpryを使う場合、init.elに以下の内容を追加します。 (add-to-list 'inf-ruby-implementations '("pry" . "pry")) (setq inf-ruby-default-implementation "pry")プロンプトの内容は好みに合わせて変更もしてください。 何も変更しないとirbのまん…

Kernel.systemのコマンド内部で環境変数を扱う事ができる

Ruby1.9系からsystemコマンドで環境変数を設定できるようになりました。まずは普通のsystemコマンドを見て行きます。 >> require 'dotenv' #=> true >> Dotenv.load #=> {"USER_NAME"=>"Den2Taro", "PASSWORD"=>"Unique and Exciting Campus", "SENSOR"=>"12…

再読み込みする設定ファイルはKernel.loadを使うと幸せになれるかもしれない

Dotenvは.envの値をRubyの組み込み変数「ENV」に格納してくれます。 ENV自体はHashのようなインターフェイス(keyとかvalueとか)を持っています。 しかし、数値を格納できないという欠点があります。 仮に.envに数値を入れとしても > Dotenv.load => {"USER…

emacsでirbを使うinf-ruby

inf-rubyはemacsでirbを使う拡張です。 ...今迄ですか? 泥臭くmulti-termを開いてirbとかタイプしてました( 導入 M-x package-install [RET] inf-ruby [RET]enhanced-ruby-modeを使っている場合はinit.elに (add-hook 'enh-ruby-mode-hook 'inf-ruby-minor-…

ruby-endでend閉じの際楽をする

ruby-endはifやdefやclassの末尾におけるendを勝手に挿入してくれる拡張elです。 今迄何となくこういった拡張は入れずにいたのですが...入れると便利ですねこれ 導入 emacs24なら M-x package-install ruby-endの上で、 (require 'ruby-end) これでeval-buff…

Terra Mysticaとかいう凄い脳が疲弊するけど面白いボードゲームがある

テラミスティカはカタンに文明個別スキルを付加したようなボドゲです 主要なパラメータトークンだけで労働力、コイン、司祭、魔法力と多彩。 これに加えて、勝利点に魔法属性力、果ては6種類の建物、イベントカード(魔法由来とターン固有、選択性と3種類…

遊び甲斐のありそうなSDカード型無線LAN「FlashAir」

FlashAirは遊び甲斐のありそうなSDカード型無線LANカードです。基本的な用途は、デジタルカメラに内臓してスマホと連動させる事でカメラ画像の同期です。 この用途で先行する類似品に「Eye-Fi」があります。が、この子がひと味違うのはこれ自体がWebサーバ風…

Vitualbox公式提供のclonehdコマンドで安全に仮想ハードディスクの形式変換を行う

VBoxで仮想イメージを作っても、一部環境でVHD等の一定の形式にしか対応していないなんてケースもチラホラ見受けられます。 VBoxのエクスポート欄にはOVF形式系にしか対応していないので、このままではダメです。 そこで登場するのが公式提供のclonehdコマン…

Google Driveで誤爆同期しても希望を捨ててはいけない

Google Driveで誤爆同期する事ありますよね。 rmコマンドで景気よく共有ディレクトリごと抹殺して同期掛けちゃったりとか( 気付いたら、Web上のDriveまで同期が掛かってデータが亡くなって見えたりとか。 これがプレゼンのデータだったり、参考論文データだ…

popdやpushdでcd ../../.... なアレから抜けられる

pushd---ディレクトリを突っ込む $ pushd ~/Documents ~/Documents ~ $ pushd ~/Downloads ~/Downloads ~/Documents ~ dir 突っ込んだディレクトリを確認する $ dirs ~/Downloads ~/Documents ~表示オプションを使うと、少し可視性がよくなります $ dirs -p …

RuboCopで実現する美しく調和のとれたRubyスクリプト

RuboCopはRubyのコーディング規則確認ツールです 導入 $ gem install rubocop $ rbenv rehash $ exec $SHELL つかってみる 以下、ダックタイピングの写経で使ったduck.rbです。 class Duck def quack puts "Quaaaaaack!" end def is_duck? true end def feat…

MroongaがあればMySQLでもGroongaを使える

Groonga自体もSqliteよろしく気軽に扱えるDBです。 ただ、既に動いてるシステムだとか本気で巨大なデータを扱う時にはやっぱり単体では厳しい局面もあります。 そこで登場するのがMroonga! なんとMySQL...そして今をトキメクMariaDBまで扱える拡張です。 コ…

irbの入出力履歴を確認する

irbでも入出力履歴を残す事が出来ます。~/.irbrcに次のような文面を追加します*1 #~/.irbrc IRB.conf[:SAVE_HISTORY] = 100 IRB.conf[:HISTORY_FILE] = "~/irb_hisotory.log" IRB.conf[:EVAL_HISTORY] = 100 この状態でirbを起動し、適当に色々描いてみます…

byebugをつかってRuby2.0系のスクリプトをデバッグする

byebugをつかうと、 ruby2.0系スクリプトを一行毎に実行したり 値を確認したり内部でirbを実行できたり(!)します bash@ruby-code$ byebug byebugtest.rb [1, 10] in /Users/shironoryouta/src/ruby-code/byebugtest.rb => 1: def sample_func( a, b ) 2: a +…

Capybara系でGeherkinがエラーを吐いたら...ミススペルを疑おう

Capybara系(私はTurnip)でテストを走らせたら、 Geherkinが火を噴きました。 コマンドとその結果 $ bundle exec rake db:migrate RAILS_ENV=test && bundle exec rspec spec/features/*.feature /Users/shuzo/src/fund_manager/vendor/bundle/ruby/2.0.0/g…

公開したくない情報はdotenvにしまってしまう

...表に出したくない情報ってありますよね。 API鍵とかクレジットカード情報とかパスワードとかポエムとか。これらを環境変数を使って便利に扱うgemが"dotenv"です。 $ gem install dotenv普通にやると >> puts ENV['USER_NAME'] # => nil と、まぁ普通に格…

Sewellを使ってジゴクめいたRroongaクエリの可視性を上げる

前回の続きです。 sewellはジゴクめいたRroonga検索クエリを綺麗に処理してくれるgemです。 クエリの生成法 文字列から Sewell.generate('foo AND bar -fizz', ['buzz']) #=> ( buzz@:foo ) + ( buzz@:bar) - ( buzz@:fizz ) Sewell.generate('hoge' ['ramen…

rroongaの全文検索条件記述方法

rroongaの全文検索条件を記述する方法は大きく分けて二種類あります。まずは、Ruby式にblockとregrepの活用。 これは前回の記事で扱いました。 Groonga['bookmarks'].select{|x| x.word =~ "buta"} 他のものは、クエリ形式があります。 引数として渡すので、…

rroongaを使ってrubyでカラムの全文検索をやってみる

Groongaはオープンソースのカラムストア機能付き全文検索エンジンです。 こういうのを、インプロセスDBとも呼ぶようです。 さて、本題であるRroongaはこれをRubyの構文で扱えるようにしたgemです。 前準備 $ brew install groonga $ gem install rgoonga $ r…

Rackでお天気確認ページを表示してみる

rackは Rack provides a minimal interface between webservers supporting Ruby and Ruby frameworks. との解説にあるように、webサーバとRubyスクリプトを結びつける役割を担います。 Rackがサーバを抽象化してくれる事で、柔軟な運用が可能となるわけです…

Curb--CurlをRubyスクリプトらしく使う

CurbはCurlをRubyスクリプトらしく使うgemです。 Curlで出来る事は大抵できます。 その上記法がRubyに則るので、可視性と記述性が大幅に向上します。 githubにログイン ログインにも対応しています。 オプションを山盛りしなくてもいいのです c = Curl::Easy…

Turnipのstep定義でidを指定したい場合

Turnipのstep定義でidを指定したい場合は、 findメソッドに:cssオプションを持たせて使います。 ## hoge.step step ":css_tag に :content が表示" do |css_tag, content| expect(find(:css, css_tag).text).to eq(content) end ## piyo.feature When "span#…

TurnipでもFactory Girlを使う(文章補強中...)

TurnipでもFactory Girlが使えます。 TurnipはCapybaraベースなので、当たり前とえば当たり前ですが #Gemfile group :test do gem 'factory_girl_rails' end ## spec/devise_steps.rb step 'ログイン' do FactoryGirl.create(:user) Capybara.app_host = "ht…

Rubyスクリプトからブラウザを呼び出すgem launchy

launchyはRubyスクリプトからブラウザを呼び出すgemです。 将来的にはメーラー等々も対応するようです。sinatra等々と組み合わせるとlocalhost稼働なアプリを自動起動できます。 CLI上では $ launchy http://ruby-lang.org/Rubyスクリプト上では*1 uri = "ht…

なんだかチート技っぽい「三倍体」という存在

三倍体とは... 体格等々の性能が上がる代わりに子孫を残せなくなった生物の事です。有名どころでは、 ライオンと虎の間の子である「ライガー」 種無しスイカ 倍以上のサイズがある養殖魚 など。 遺伝子改造等々ではなく、 特定の薬品を調合する、受精卵をぬ…

memqとウィンドウ環境の読み込みに関して

memqはリストの中にあればリスト自体、 なければnilを返してくる関数です。 (memq 'a '(a b)) ;; => (a b) (memq 'a '(b v)) ;; => nil というわけで、window-systemと合わせて使うと リスト中に一致したものがある場合、条件を実行する式を書く事ができます…

exec-path-from-shellを使うとCocoa Emacsでも初期状態からSHELL環境を読みに行ける

cocoa EmacsさんはデフォではSHELLの設定を拾いに行ってくれません。 というわけで、xmpfilterのような、外部スクリプトを呼び出すもので不具合がでます。これを解決するのがexec-path-from-shellです。 いつも通りelpaで当該elを突っ込んだ後、 init.elに以…

【自習メモ】Factoryパターンとかいうものについて

これを使うと、クラス実体の生成を抽象化する事ができます。 将来、全く予期していなかった型をサポートする事になっても対応できます。 実例 class SkillsFactory def self.create_instance(player, skill) case data[:key] when :type_A return TypeA.new(…

Github推奨のgitignoreをcurlで落として反映させる。

天下のGithubがgitignore集を公開しています。 https://github.com/github/gitignore CやらEagleなんかもあって眺めているだけでも楽しいリストです。さて、今回の記事ではこのありがたいノウハウ集からRails用のモノを頂戴する方法です。 以前書いた記事を…

Dird-jumpで現在開いているファイルに一気に飛ぶ

‘dired-jump’ または (‘C-x C-j’)を使うとdiredモードを起動しつつ現在のファイルにポインティングすることができます ファイル名変更や削除の時に使うと少し楽です