RSpec では subject と is_expected を利用して次のようにテストを書くことが出来ます。 context "test" do subject { 42 } # is_expected の内部で subject が呼び出される it { is_expected.to eq(42) } end raise_error を使いたかった 次のように raise が発生する場合は is_expected を利用することが出来ません。 context "test" do subject { raise RuntimeError } it { is_expected.to raise_error(RuntimeError) } end これは is_expected が内部で expect(subject) という風に呼び出されるためです。 raise_error をテストするため
Need to upgrade your app to 7.0? We can help with our productized consulting service. Mauro Otonelli on Rspec, Ruby When writing tests for services, you may sometimes want to use mock objects instead of real objects. In case you’re using ActiveRecord and real objects, your tests may hit the database and slow down your suite. The latest release of the rspec-mocks opens a new window library bundled
Unicode のコードポイントを指定して文字を得たり、逆にある文字のコードポイントを調べたり、ということをする機会は結構多いと思います。 が、Ruby でそれをやる方法をぐぐってもあまり上位に情報が出てこないなー、と思ったので簡単にまとめておきます。 Unicode コードポイントとは そもそも Unicode コードポイントとは何か。 Unicode というのは世界中の文字が集められた文字集合であり、Unicode に収録されている文字には順番に番号が振られています。 この番号のことをコードポイントといいます。 あるコードポイントが指す文字を表現するときに "U+" という文字の後ろに 16 進数表記のコードポイントを書いて表すことがあります。 例えば、コードポイント 0x3041 が指す文字 (ひらがなの 「あ」) を U+3041 と書いて表します。 各文字とコードポイントの関係は
Tiff ファイルの解析は ActionScript でやったことがあるので Ruby でもやっ てみた. Tiff の解析は他の画像形式に比べて面倒だけど,タグ (tiff の T) が取り出 せてしまえばあとはどうにでもできるだろう.ということで,今回はタグの一 覧を取り出すだけやってみる. 参考: CGファイル概説 第5章 第1節 コード filepath = ARGV[0] class IFDEntry attr_reader :tag attr_reader :type attr_reader :count_field attr_reader :data_field def initialize tag, type, count_field, data_field @tag = tag @type = type @count_field = count_field @data_f
RuboCop のバージョン 0.51.0 がリリースされました。 https://github.com/bbatsov/rubocop/releases/tag/v0.51.0 CHANGELOG から変更を見ていこうと思います。 破壊的変更 古い Ruby のサポート終了 https://github.com/bbatsov/rubocop/pull/4789 https://github.com/bbatsov/rubocop/pull/4787 RuboCop 0.51.0 から、古いバージョンのRubyのサポートが終了しました。 RuboCopに関係するRubyのバージョンには、2つの概念があります。 一つは、RuboCopを実行するのに使うRubyのバージョンです。これは、rubocopコマンドを実行した時に走るRubyインタプリタのバージョンになります。 もう一つは、Rubo
機械学習ブームなどにより、 Python を触り始める Rubyist が増えてきたと思います。その際に問題になりやすいのが環境構築です。Rubyだと rbenv がデファクトスタンダードになっているのに、なぜか Python に… 私の立ち位置もともとは、数年前まで 年に一回Python3でNLTKやらscikit-learnやら機械学習や自然言語処理の環境を作ろうと試みては失敗してPython使うものかと思っていた人でした。それが、Anacondaで環境導入すると、面倒なことは何も考えずに済むということを知り、CookpadではAnacondaを前提に環境構築を勧めていました。 今は、ymotongpooに「郷に入っては郷に従え」と言われたため、pip+virtualenv/venvで全てをこなしていますが、これで困ったことは特にありません。macOS, Windows, Linuxそ
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist
はじめに 機械学習ブームなどにより、 Python を触り始める Rubyist が増えてきたと思います。その際に問題になりやすいのが環境構築です。Rubyだと rbenv がデファクトスタンダードになっているのに、なぜか Python には pyenv に否定的な意見が多いんですよね。 私は pyenv を使っていますし、便利だと思っています。また、 Ruby は殆ど使わないのですが、RubyとPythonのツールスタックの違いについても調べました。 (参考: gem, bundler と pip, venv の比較) その視点から、 Rubyユーザーが自分でpyenvの使い方を自分で決める上で知っておいた方が良いだろうなと思う Ruby と Python の環境の違いをまとめてみます。 tl;dr 丁寧に解説しても、「Python使うにはこんな長い記事を読まないといけないの」とすぐに否
Ruby on Rails の 5.1.0.beta1がリリースされましたね! weblog.rubyonrails.org 仕事でRailsを使うものとしてちゃんと触っておかねばと思い、まずは自分の好きなJavaScript周りがどれぐらい良くなったのか見てみたところかなりびっくりしました。JavaScriptすごく開発しやすいです。 webpack があって yarn がありますし、ReactやVue、angular まで rake タスクでセットアップできます。ちょっと前までRailsでJavaScriptやるのが辛いなんて言っていたのが嘘みたいです・・・。 今回はRails 5.1.0 で Vue.js を使って新しくプロジェクトを作るところまでやってみました。 rails new rails webpacker:install:vue Webpackでのビルド Hot Modul
初心者がRubyの基礎を覚えたところで他人のコードを読むようになると、*args や map(&:to_s) のような謎の記法がでてきます。 この手の記法は名前がわからないとググラビリティが低くなるため、人によってはつまづきとなることが多いようです。 尋ねられることがたまにありますので、この機会にRails開発でよく使われるものを中心にまとめてみます。 引数 *args 変数名の冒頭に*(アスタリスク)が付いているもので、「可変長引数」または「splat引数」とかいいます。 引数を複数個設定でき、さらにメソッド内部で引数を配列として受け取ることができます。 def splatter(*args) p args end splatter('foo') # => ['foo'] splatter('foo', 'bar', 'baz') # => ['foo', 'bar', 'baz'] d
ref: http://ascii.jp/elem/000/001/230/1230449/ 「Ruby で Ruby を作りながら Ruby を学ぼう!」という ascii.jp の連載、おかげさまでほぼ予定通りに無事に終わりました。執筆の経緯を書いておきます。 昨年の 6 月ごろ、「抽象によるソフトウェア設計」や「型システム入門」のときにおせわになった編集者の鹿野さんに声をかけて頂きました。「ふつうの Ruby 入門はもうたくさんあるので、ちょっと変わった Ruby 入門を書けないか」という話でした。 それを聞いた瞬間、「Ruby インタプリタの開発を通して Ruby を学ぶ」という構想が湧きました。Ruby は主に Web やテキスト処理を対象としているので、言語処理系や記号処理を題材にした入門は目新しそうだし、なによりそういうのに興味を持つ Ruby ユーザがもっと増えてほしい。
株式会社LITALICOでWebエンジニア(Rails)を担当しています、@YudaiTsukamotoです。 この記事は『LITALICO Advent Calendar 2016』21日目の記事です。 はじめに 業務なり趣味なりでプログラミングを学習していくと、技術書を読む機会が誰しも有るのではないでしょうか? 初心者や、新人プログラマの時は、対象となる無数の技術書の中から自分にとって良い技術書を探す事は中々難しいのかなと思います。 技術書を選定する基準はいくつか有ると思いますが 「他人がオススメしている」 という選定軸はそれなりに有効であるという事を私は初心者から頑張って勉強した過程の中で学びました。 そこでLITALICO Advent Calendar 2016の21日目の本日、 不詳ながら私が新卒1年目の時に読んだ技術書(サイトも含む)の中から21個をピックアップしてみようかと
長いと思うので結果だけ リポジトリはこちら。 github.com 使い方はgit cloneしてmakeするだけと大変お手軽。 make TESTS="core/nil"のように、ディレクトリ指定もファイル名指定もできる。 全国のmrubyistの皆様に於かれましては、是非お試し願いたいところです。 以下つらつらと モチベーション 数年前に始めてからというもの、mrubyという船に乗りかかったからには「mrubyには〜がない」とか「mrubyはバグが多い」とか言われたくない。と思うぐらいには愛着というか責任感を勝手に持っている。 「mrubyはCRubyと動作が違う」というのはよくある話なのだが、これを極力減らしたい。(完全には無理だけど) 仕様が同じならCRubyの知識がそのままmrubyに使えるし、ドキュメントもCRubyのものがそのまま使える。 「CRubyのライブラリをmruby
I love debugging tools. One of the most frustrating things to me is – when I run a Ruby or Python program, I can’t find out what that program is doing RIGHT NOW. You might eagerly interrupt me – julia, you say, you can use pdb! or pry! or rbtrace!. So, let me explain. If I’m running a program on the JVM with PID 4242, I can run jstack -p 4242, and it will print the current stack trace of the Java
Introducing Helix Rust + Ruby, Without The Glue. This post is a write-up of the talk I gave at RailsConf 2016. You can find the slides here. There's a lot to love about Ruby – the sweet syntax, the focus on developer productivity and happiness, the mature ecosystem, and of course, the awesome community we built around the language. One thing that Ruby is not known for though, is being a particular
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く