This document discusses testing code written for mruby, a lightweight Ruby implementation. It proposes using the mruby runtime itself to test code, rather than Ruby, by using the mruby-mtest library. This allows testing mruby code directly using the same binaries and libraries as production. Sample code shows how to structure tests and set up a test runner to execute tests against the mruby binary
これは、ETロボコン Advent Calendar 2014 - Adventarの 24日目のエントリーです。 昨日の記事はyamane (@yuri_at_earth) | Twitterさんによるmrubyの記事でした。mrubyは個人的にもいろいろと関わりがあり、気に入っている言語です。 mrubyは随分前からオープンソースとして公開されていますが、まだ触ったことのない人が多いと思います。本記事ではmrubyの環境を(さくっと)構築して、mrubyを使う方法をまとめます。 また、mruby 1.1.0で登場したデバッガ(mrdb)の使い方をまとめます。 記事を書いていたところ、ボリュームが大きくなり過ぎてしまったため、2記事に分割しました。mrubyについてよく知らないという人は以下の記事も参照ください。 ETロボコン2015の準備。mrubyの開発環境を知る - .logboo
githubよりmrubyデバッガを含むmrubyソースコードを入手し、ソースコードをmakeします。 $ git clone https://github.com/Kumikomi-Ruby/forum-mruby.git mruby $ cd mruby $ make ビルドによって生成された実行ファイルはmruby/binに格納されるため、必要に応じてパスを通して下さい。 $ echo "export PATH=\$PATH:MRUBY_ROOT/bin" >> ~/.bashrc $ source ~/.bashrc ※MRUBY_ROOTはmrubyソースコード格納ディレクトリ mrubyデバッガ(mrdb)を実行できることを確認します。 $ mrdb --version mruby 1.1.0 (2014-11-19) 2.2 基本操作 2.2.1. mrubyスクリプト(rb
mrubyは軽量に動作することを前提としたVMであるため、Rubyのように機能が豊富ではない。また、requireで動的にモジュールを読み込むこともできない。従って機能を追加するためには、追加機能のソースを入手し一緒にビルドしておく必要がある。 機能を追加するためにはmrbgemsを利用する。要はRubyGemsのようなもので、パッケージ単位で機能追加・削除ができる。追加手順は以下の通り。 build_config.rbの読み方 mrubyのビルド設定は「mruby/build_config.rb」に記述する。 build_config.rbはクローンした時点で以下の様な構成となっている。 build_config.rb(抜粋) # ホスト用ビルドの設定(デバッグモード無効) MRuby::Build.new do |conf| (対象とするツールチェーン・mrbgems・コンパイルオプシ
この投稿は Sansan Advent Calendar 2015 の 5 日目の記事です。 概要 最近は mruby-cli でマルチプラットフォームの実行バイナリを作成できるようになり、ちょっとした CLI のコマンドを作成する機会が増えたのではないかと思います。 そこで、オリジナルの CLI を簡単に作れるようなライブラリを作ってみました。 お気付きの方もいるかもしれませんが、Ruby の thor のようなものです。 qtkmz/mruby-hogun 準備 まずは mruby-hogun を組み込んだ mruby を用意します。 以下のような build_config.rb を作成し、mruby を作ります。 MRuby::Build.new do |conf| toolchain :gcc enable_debug conf.gem '../mruby-hogun' conf.
mrubyの機能拡張には、mrbgem(以下mgem)という所謂CRubyでのgemのような拡張モジュールを使います。mgemを開発していくと、もちろん以前作ったmgemの機能を再利用したい場合や、すでに存在する優れたmgemを使ってさらなる機能を実装したい場合が多くなるはずです。 昔は、mrubyのbuild_config.rbに粛々と依存するmgemを羅列していって、ビルドして依存関係に関する警告が出たらそのmgemを追加していくというかなり面倒な作りになっていました。 ですが、今は開発したmgemの所謂設定であるmrbgem.rakeファイルに依存関係を書いておくと、自動的にそれをmgem-listと呼ばれるmgemの登録リポジトリから検索してビルドしてくれるようになっており、以前と比べると非常に簡単になっています。 つまり言い換えると、mgem-listに登録していないmgemに関
この記事は、mruby advent calendar 2015 20日目の記事です。みなさん難しい記事が多いですが、私にそういうのは無理なので軽めの内容になっています。 はじめに mruby でコマンドラインツールを作成できる mruby-cli を使って、markdown を html に変換する gfmarkdown というコマンドを作ってみました。 mruby-cli は、コマンドを作成するための雛形の作成とコンパイルなどを行ってくれるもので、一つのソースから、Linux や Mac、Windows などで動作するバイナリを生成してくれます。 markdown から html への変換は、Github の API を利用しました。このため、インターネットへ接続できない環境では使用できません。 gfmarkdown のインストール 各アーキテクチャごとのバイナリを用意しているので、ダ
タイトルのままなのですが、pidから対象プロセスがopenしてるファイルとそのownerを解析し、CPU使用率やMemory使用率と合わせてレポートするワンバイナリなツールを作りました。 というのも、ホスティングにおいては負荷をかけているプロセスについて、リソース使用量を元にopenしているファイルパスやファイルのownerを迅速に知りたい場合が多いからです。 既にあるコマンド、lsofや/procやtopとかその辺を組み合わせるともちろんできるんですが、mruby-cliを使ってone-binaryで作ってみたかったのと、openしているファイルとCPU使用率やMemory使用量同時にサクっと素早く表示してくれるツールがパッと調べた所なかったので実装してみました。 pfds - report a snapshot of the current processes fd github.co
今回も長め。 メモツールの移行を思い立ったので、今までのデータを移すべくテキトーなツールをつくって見ました。 移行ツールと言いながらまだ 単一のMarkdownとBoostnote の相互変換くらいにしか対応していませんが、、、 github.com 前回のネタに続いてせっかくなのでGolangでなく、mruby-cli で作ってみました。 今回はその過程でやったことや作ってみて思ったこととかをつれつれなるままに書いてみようと思います。 dojineko.hateblo.jp やったこと mruby-cliでひな型を作る ガシガシ実装する 開発環境向けにコンパイルして、トライ&エラー 目的の機能が完成するまで 2 と 3 を繰り返す 出来上がったら docker でクロスコンパイル Githubにreleaseを登録しておしまい TDDとかなにそれ美味しいのみたいな感じですが、まぁそれは置
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ApacheCon NA 2013に参加し、早めにポートランド国際空港に到着しました。時間があるので、今日(2013年3月2日)からmrubyを始める人へ簡単なチュートリアルをしようと思います。 mrubyというプロジェクト mrubyとは、組み込み機器やアプリ組み込みに最適化された軽量スクリプト言語です。記述方法は既存のRubyのように書くことができます。C言語で書かれたホストアプリにmrubyを組み込むことで、ホストアプリをRubyの記述でコントロールすることができます。例えばmod_mrubyは、RubyでApache APIをつつけるようにmrubyをApacheに組み込むためのモジュールで、ApacheモジュールをRubyで記述する
久しぶりに mruby の話。 mruby、アブリケーションの配布方法が決まるだけでもだいぶ違う気がするなー。コマンド一発でインストール出来るのあったらツール作り出す人いるんじゃないかな。 — mattn (@mattn_jp) 2014, 9月 2 アプリケーション配布? mgem や Rakefile がそれだろ!と断定出来ない所に悔しさがある。 #mruby — mattn (@mattn_jp) 2014, 9月 2 確かにmgemコマンドが進化していない(設定を吐くだけ)ので、そこを改修する必要はありますねぇ — MATSUMOTO, Ryosuke (@matsumotory) 2014, 9月 2 この辺の話が出てたのを見て自分はどうしてたっけなと思ったので書いておく。 TL;DR mruby のライブラリ管理ツールの mgem を使う時に、rbenv と組み合わせて楽をして
git clone git@github.com:hone/mruby-cli.git cd mruby-cli.git docker-compose run compile $ find mruby/build | grep bin\/ ./mruby/build/i686-w64-mingw32/bin/test1.exe ./mruby/build/i686-pc-linux-gnu/bin/test1 ./mruby/build/x86_64-apple-darwin14/bin/test1 ./mruby/build/x86_64-pc-linux-gnu/bin/test1 ./mruby/build/i386-apple-darwin14/bin/test1 ./mruby/build/x86_64-w64-mingw32/bin/test1.exe
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く