Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

この記事は Ruby Advent Calendar 2015 の 8日目です。 比較的あまり知られていないと思うオススメの Ruby の機能を 7つ紹介します。 Enumerator.new Enumerator.new は知ってはいても、あまり使わない人が多いように思います。 私は非常によく使います。 理由は スコープを新たに導入したい Producer-Consumer パターン。値の生成と消費でフェーズの違いを明確化したい。 そのメソッド内で1度使いたいだけなのに yield するメソッドを別に作るのはちょっと気が引ける。名前空間を汚したくない。 全部、一度配列にしちゃうとメモリが気になる。メモリ消費を節約したい。 ネストを浅くしたい Enumerable モジュールの機能が欲しい といったところです。 たとえば下記のようなかんじで使います。 # Producer フェーズ use
最近の RSpec は、それまで obj.stub(hoge: value) と書けたものが、 allow(obj).to receive(:hoge).and_return value と書かないといけなくなったりとか、正気の沙汰とは思えないような変更をしたりするので、何年かぶりに Test::Unit を使ってみようとリハビリ中です。 RSpec は、テストケースを入れ子にできたり、テストケースや example がクラスやメソッドではなく、文字列で自由に書くことができたりしたのが良かったのですが、最近の Test::Unit ではそれもできるようになっています。 [ruby-list:48926] [ANN] test-unit 2.5.2 このリリースはとみたさんに使ってもらえるように改良したリリー スです。新しく追加した--locationはRSpecの--line_number
1.9.3をインストールした頃とオプションが変わってきたので、自分用メモ書きを兼ねてアップします。 環境は Mavericks 10.9.5 です。 ruby-build 更新 まずインストールする前に、何らかの方法で ruby-build を更新してください。更新しないと rbenv install 2.2.1 できませんので。 Homebrew を使ってインストールしている場合 brew update ruby-build brew upgrade ruby-build で良いでしょう。 git を使ってインストールしている場合 ruby-build を git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build でインストールしている場合には、 rbenv-update プラグ
こんにちは、クラスメソッドの稲毛です。 複数バージョンの Ruby を切り替えるだけでなく、ローカルディレクトリ毎に Ruby のバージョンを指定できる「 rbenv 」がとても便利だったので、インストール方法などを記しておきます。 ビルド環境の構築 Ruby をビルドする環境が構築されていない場合は、下記 ruby-build の Wiki を参考にビルド環境を構築する。 Suggested build environment rbenv + ruby-build のインストール rbenv で Ruby のインストールを行うので rbenv のプラグイン「 ruby-build 」を併せてインストールする。 Linux の場合 ここでは既に Git がインストールされているものとします。 $ git clone https://github.com/sstephenson/rbenv.
[~/github/myrepo]$ bundle install --path=vendor/bundle/ /Users/sjun/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/Users/sjun/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError) Referenced from: /Users/sjun/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundl
gemは、Rubyのライブラリ管理のコマンド。Rubyのライブラリを検索・インストール・アップデート・削除など、苦労最小で操作する仕組みを提供してくれる。今までgemを使って、多くの素晴らしいライブラリをインストールしてきた。しかし、自分が作ったものをgemでインストール可能な形式で公開したことはなかった...。 できることならgemでインストールできるようにしてみたい。では、自作のRubyコードは、どうすればgemでインストールできるようになるのか?果たして、簡単にできることなのか?調べてみた。 作業環境 MacBook Pro Retina15 OSX 10.9.5 Rubyバージョン $ ruby --version ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13] Gemバージョン 最新のG
2014-08-13 Rubyで知らなかったメソッドとかちょっとだけ 配列 今までこう書いてた (1..20).to_a こう書ける事を知った [*1..20] 添字 今までこうしてた 10.times do |idx| p "#{idx+1} ループ目" end こう書いたら素敵だった 10.times.with_index(1) do |idx| p "#{idx} ループ目" end if 数字 ずっともっといい書き方があると思ってたけどこう書いてた i = 10 p "hoge" if i >= 5 && i <= 15 やっぱりあった i = 10 p "hoge" if i.between?(5, 15) first, last めんどくさいなぁと思って書いてた arr = [*1..50] 5.times.map{ |idx| arr[idx] } 衝撃が走った arr =
2013-10-21 Rubyで作ったスクリプトをgem化して、一人でひっそりと使う方法 Ruby Gem Rubyでスクリプトを書いていたんですが、色々なプロジェクトで使うので、非公開でgem化できないかと調べていました。 結果としては、ソースはprivate repositoryで管理して、gemはそのソースを元に作成することにしました。 以下はその手順です。 前提 既にスクリプトはRubyで作ってあるものとします。 便宜上、gem_testという名前のgemを作成することにします。 なお、名前に-(ハイフン)を入れると、そこで切られてしまいModule名やフォルダが分けられてしまいますので、お気をつけ下さい。 手順 gemプロジェクトのテンプレート作成 $ bundle gem gem_test これによりgem_testフォルダ配下にファイルが作成されます。 これからの作業は全てg
日本語での情報があまりなかったのでまとめておく。 なお、プログレスバーのライブラリとして ruby-progressbar を使用した。 require 'open-uri' require 'ruby-progressbar' URL = "http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz" content_length = nil progress_bar = nil open(URL, "rb", :content_length_proc => lambda{ |content_length| if content_length # プログレスバーの最大長にcontent-lengthを指定 progress_bar = ProgressBar.create(:total => content_length) end
ひさしぶりに英語学習熱がよみがえってきたので、Duo3.0使って勉強するか〜と思っていたらDuo3.0の復習CDを分割するCUEシートが見つかったので、これは、英文と和訳を歌詞として入力して、androidの音楽プレーヤーで英文・和訳を見えるようにできれば、学習しやすいじゃん!と思い、やってみました。 Duo3.0って発売して10年以上たちますが、いまだに売れ筋の単語集なのですね。 ざっくりとした手順を書いてみます。わたしはMacつかっているんですが、1.のfoobar2000のくだりはVMWare Fusionを使ってWindowsでやりました。3のくだりはWindowsでもできると思います(未確認)。 1.Duo3.0の復習CDを分割してmp3にする。 「英語の会」というサイトに書いてあったやりかたを踏襲します。Duo3.0の文ごとに分割できるCUEシートを使って分割を行っています。
正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlやPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/
Spice Lifeの五十嵐邦明さんの一橋大学のRuby概論スライドがかなりすばらしかったのでまとめてみました。こんなキャッチーな資料がネットで手に入るというのは本当にありがたい限りです! (05-02 07:45) MATSUOKA Koheiさんの2014年度の講義資料を追加 ちなみに、スライドがたくさんあるので3部作ですw (1)『Ruby概論のスライドがすばらしかったのでまとめてみた(第一部)』<= 今ここ< strong> (2)『Ruby 概論のスライドが素晴らしかったのでまとめてみた(第2部)』 (3)『Ruby 概論のスライドが素晴らしかったのでまとめてみた(第3部)』 🗻 2014年ブログ一橋大学でRubyの非常勤講師をはじめました MATSUOKA Koheiさんが講師をされている2014年に現在開催中のRuby講義の資料です。勉強になります! Ruby講義第1回:
Infrastracture as code流行の副産物として、もうOpsはある程度Rubyでライブラリを書けるようになりました。 折角Rubyでライブラリを書いたなら、安全&ラクに配布するためGemパッケージにしましょう、出来る人には今更でしょうが知らない人は真似してみてね。 ちなみに意外と誤解されてる点、gemにする=Rubygems.orgで公開する、ではありません、してもOKというだけで。 目標 gemファイルを置いて、gemコマンドで自分のライブラリをサーバに導入する。 こんなかんじで。 gem install -l my_libs-0.0.1.gem じゃあやってみましょう。 Gemの雛形をつくろう Gemの作り方は色々あるようですが、私はもっぱらbundlerです。 bundle gemで必要なファイル群を作成します、便利ですね。
「jiji (ジジ) 」は、オープン・フリーのFX自動取引システムです。 完全自動でのFX取引を実現 レートデータの取得から証券会社への発注まで、プログラミングしたルールに従った完全自動でのFX取引を実現します。 注:「必ず利益が出せる取り引きルール」を提供するソフトウェアではありません。取り引きルールを作成・検証し、実際に運用を行うためのフレームワークです。 取引ルールはRubyで 取引ルールはオブジェクト指向プログラミング言語「Ruby」で記述します。 オブジェクト指向言語ですので、よく使う機能の部品化・再利用が容易に行えます。 バックテスト機能を搭載 過去のデータを使用した取引ルールの検証(バックテスト)機能を実装済み。 運用前に、実際のレートデータを使用して動作を確認しておくことが可能です。(※1) 外出先からも操作可能 jijiはスタンドアロンなサーバーとして動作するWebアプリ
$ ruby1.9.3 ng.rb /var/lib/gems/1.9.1/gems/net-http-persistent-2.8/lib/net/http/persistent/ssl_reuse.rb:70:in `connect': Connection reset by peer - SSL_connect (Errno::ECONNRESET) from /var/lib/gems/1.9.1/gems/net-http-persistent-2.8/lib/net/http/persistent/ssl_reuse.rb:70:in `block in connect' from /usr/lib/ruby/1.9.1/timeout.rb:54:in `timeout' from /usr/lib/ruby/1.9.1/timeout.rb:99:in `timeout'
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く