2014-04-01から1ヶ月間の記事一覧
inf-rubyでpryを使う場合、init.elに以下の内容を追加します。 (add-to-list 'inf-ruby-implementations '("pry" . "pry")) (setq inf-ruby-default-implementation "pry")プロンプトの内容は好みに合わせて変更もしてください。 何も変更しないとirbのまん…
Ruby1.9系からsystemコマンドで環境変数を設定できるようになりました。まずは普通のsystemコマンドを見て行きます。 >> require 'dotenv' #=> true >> Dotenv.load #=> {"USER_NAME"=>"Den2Taro", "PASSWORD"=>"Unique and Exciting Campus", "SENSOR"=>"12…
Dotenvは.envの値をRubyの組み込み変数「ENV」に格納してくれます。 ENV自体はHashのようなインターフェイス(keyとかvalueとか)を持っています。 しかし、数値を格納できないという欠点があります。 仮に.envに数値を入れとしても > Dotenv.load => {"USER…
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はifやdefやclassの末尾におけるendを勝手に挿入してくれる拡張elです。 今迄何となくこういった拡張は入れずにいたのですが...入れると便利ですねこれ 導入 emacs24なら M-x package-install ruby-endの上で、 (require 'ruby-end) これでeval-buff…
テラミスティカはカタンに文明個別スキルを付加したようなボドゲです 主要なパラメータトークンだけで労働力、コイン、司祭、魔法力と多彩。 これに加えて、勝利点に魔法属性力、果ては6種類の建物、イベントカード(魔法由来とターン固有、選択性と3種類…
FlashAirは遊び甲斐のありそうなSDカード型無線LANカードです。基本的な用途は、デジタルカメラに内臓してスマホと連動させる事でカメラ画像の同期です。 この用途で先行する類似品に「Eye-Fi」があります。が、この子がひと味違うのはこれ自体がWebサーバ風…
VBoxで仮想イメージを作っても、一部環境でVHD等の一定の形式にしか対応していないなんてケースもチラホラ見受けられます。 VBoxのエクスポート欄にはOVF形式系にしか対応していないので、このままではダメです。 そこで登場するのが公式提供のclonehdコマン…
Google Driveで誤爆同期する事ありますよね。 rmコマンドで景気よく共有ディレクトリごと抹殺して同期掛けちゃったりとか( 気付いたら、Web上のDriveまで同期が掛かってデータが亡くなって見えたりとか。 これがプレゼンのデータだったり、参考論文データだ…
pushd---ディレクトリを突っ込む $ pushd ~/Documents ~/Documents ~ $ pushd ~/Downloads ~/Downloads ~/Documents ~ dir 突っ込んだディレクトリを確認する $ dirs ~/Downloads ~/Documents ~表示オプションを使うと、少し可視性がよくなります $ dirs -p …
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…
Groonga自体もSqliteよろしく気軽に扱えるDBです。 ただ、既に動いてるシステムだとか本気で巨大なデータを扱う時にはやっぱり単体では厳しい局面もあります。 そこで登場するのがMroonga! なんとMySQL...そして今をトキメクMariaDBまで扱える拡張です。 コ…
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系スクリプトを一行毎に実行したり 値を確認したり内部で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系(私は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…
...表に出したくない情報ってありますよね。 API鍵とかクレジットカード情報とかパスワードとかポエムとか。これらを環境変数を使って便利に扱うgemが"dotenv"です。 $ gem install dotenv普通にやると >> puts ENV['USER_NAME'] # => nil と、まぁ普通に格…
前回の続きです。 sewellはジゴクめいたRroonga検索クエリを綺麗に処理してくれるgemです。 クエリの生成法 文字列から Sewell.generate('foo AND bar -fizz', ['buzz']) #=> ( buzz@:foo ) + ( buzz@:bar) - ( buzz@:fizz ) Sewell.generate('hoge' ['ramen…
rroongaの全文検索条件を記述する方法は大きく分けて二種類あります。まずは、Ruby式にblockとregrepの活用。 これは前回の記事で扱いました。 Groonga['bookmarks'].select{|x| x.word =~ "buta"} 他のものは、クエリ形式があります。 引数として渡すので、…
Groongaはオープンソースのカラムストア機能付き全文検索エンジンです。 こういうのを、インプロセスDBとも呼ぶようです。 さて、本題であるRroongaはこれをRubyの構文で扱えるようにしたgemです。 前準備 $ brew install groonga $ gem install rgoonga $ r…
rackは Rack provides a minimal interface between webservers supporting Ruby and Ruby frameworks. との解説にあるように、webサーバとRubyスクリプトを結びつける役割を担います。 Rackがサーバを抽象化してくれる事で、柔軟な運用が可能となるわけです…
CurbはCurlをRubyスクリプトらしく使うgemです。 Curlで出来る事は大抵できます。 その上記法がRubyに則るので、可視性と記述性が大幅に向上します。 githubにログイン ログインにも対応しています。 オプションを山盛りしなくてもいいのです c = Curl::Easy…
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はCapybaraベースなので、当たり前とえば当たり前ですが #Gemfile group :test do gem 'factory_girl_rails' end ## spec/devise_steps.rb step 'ログイン' do FactoryGirl.create(:user) Capybara.app_host = "ht…
launchyはRubyスクリプトからブラウザを呼び出すgemです。 将来的にはメーラー等々も対応するようです。sinatra等々と組み合わせるとlocalhost稼働なアプリを自動起動できます。 CLI上では $ launchy http://ruby-lang.org/Rubyスクリプト上では*1 uri = "ht…
三倍体とは... 体格等々の性能が上がる代わりに子孫を残せなくなった生物の事です。有名どころでは、 ライオンと虎の間の子である「ライガー」 種無しスイカ 倍以上のサイズがある養殖魚 など。 遺伝子改造等々ではなく、 特定の薬品を調合する、受精卵をぬ…
memqはリストの中にあればリスト自体、 なければnilを返してくる関数です。 (memq 'a '(a b)) ;; => (a b) (memq 'a '(b v)) ;; => nil というわけで、window-systemと合わせて使うと リスト中に一致したものがある場合、条件を実行する式を書く事ができます…
cocoa EmacsさんはデフォではSHELLの設定を拾いに行ってくれません。 というわけで、xmpfilterのような、外部スクリプトを呼び出すもので不具合がでます。これを解決するのがexec-path-from-shellです。 いつも通りelpaで当該elを突っ込んだ後、 init.elに以…
これを使うと、クラス実体の生成を抽象化する事ができます。 将来、全く予期していなかった型をサポートする事になっても対応できます。 実例 class SkillsFactory def self.create_instance(player, skill) case data[:key] when :type_A return TypeA.new(…
天下のGithubがgitignore集を公開しています。 https://github.com/github/gitignore CやらEagleなんかもあって眺めているだけでも楽しいリストです。さて、今回の記事ではこのありがたいノウハウ集からRails用のモノを頂戴する方法です。 以前書いた記事を…
‘dired-jump’ または (‘C-x C-j’)を使うとdiredモードを起動しつつ現在のファイルにポインティングすることができます ファイル名変更や削除の時に使うと少し楽です