仕事でformによるファイルアップローダを作っていた。これはヘルパーライブラリとして切り出すと他のところでも使い回せるなーとか思っていたら、「社内ライブラリを OSS 化すべきだ」という記事のことを思い出した。 一方、QA@ITで「今時rubygems作るんならBundlerだよねー」というご指摘をたくさんいただいたことも思い出した。 ということで、仕事のために書いたけれどもビジネスロジックは含んでいないライブラリを「Tupper」として切り出し、Bundlerを使ってrubygemsとして公開するところまでの作業記録を晒してみる。 % bundle gem tupper create tupper/Gemfile create tupper/Rakefile create tupper/LICENSE create tupper/README.md create tupper/.giti
2012 9月2日 00:20 勢いでhiroshimarbというgemを作った。反省する気なんてあんまりない。 あらまし 広島Ruby勉強会で Hiroshima.rbでなにか gem を作りたいですよね。という話を前からちょくちょくしてたので、勢いで作成してみた。実際は反省している。 gemを公開するといっても、何か機能がないと寂しいので、 $ hiroshimarb open とすることで、Hiroshima.rbのウェブサイト を表示するようにしてみました。 インストール方法は $ gem install hiroshimarb リポジトリはgithubにあります。 gemの作成方法 せっかくなので gem の作成方法というか 本gemを作るにあたって作業内容を書いておきます。 プログラムの作成 まずはプログラムをかくためにプロジェクトの雛形を作ります。 gemを作りやすい構成にな
国内販売のアナウンスやSoftware Designで特集が組まれるなど注目が高まっているChef。ですが用語が多いといった「とっつきにくさ」もあるように思います。 そこで今回は「とりあえず使ってみたい」「メリットを知りたい」という方向けにChefを紹介したいと思います。 Chefとは ChefはRubyで実装されたサーバー構成管理ツールです。管理対象であるファイル、ユーザー、パッケージ、サービス等をどのように構成するかは、Rubyによる言語内DSLで記述します。 つまりコードを書いて実行することでサーバーの構成管理ができるわけです。 What is Chef? - Opscode Open Source Wiki やってみよう Chefには大きく分けて 管理対象サーバーのローカル環境で実行するスタンドアロン版 中央のサーバーで設定内容などを管理するクライアントサーバ版 の2つがあります。
Rubyの例外について少し調べたので、まとめてみる。 多くのモダンな言語同様にRubyでは例外処理機構が組み込まれている。 ファイルを開こうと思ったらファイルが存在しなかった ネットワーク先のサーバが反応しなくてタイムアウトした 定義されていない(存在しない)メソッドを呼んだ 0で割り算をしてしまった など想定外の問題に遭遇したときに、その問題を無視せずプログラマが何らかの対応処理をするための枠組みを提供する。 C言語など古い言語では、関数からの戻り値でエラーコードを返し、それによって呼び出し側がエラー処理をその場で記述する。例えば、fopen(3)が失敗すると戻り値としてNULLが戻ってきてグローバル変数のerrnoに失敗の理由を示すエラーコードが設定される。 #include <stdio.h> #include <string.h> #include <errno.h> int ma
半年ほど前に書いた「コーディング規約をまとめてみた (Ruby編)」に引き続き、Railsのコーディング規約もまとめてみました。前回と同じように、できるだけ理由を併記するよう努めました (主観的なものも含まれていますが…)。 気に入らない規約や、この記事に書かれている規約以外にも気をつけていることなどありましたら、コメントなどで教えてもらえると嬉しいです (理由も合わせて書いてくれると助かります)。 Railsのコーディング規約は以下のページを参考にまとめています。 http://guides.rubyonrails.org/contributingtorubyonrails.html#follow-the-coding-conventions https://github.com/bbatsov/rails-style-guide 前提 コード例は「コーディング規約をまとめてみた (Ru
いまさらだけど、必要になったのでpure RubyなPDF生成ライブラリ「Prawn」を試してみる。 DSL風に書ける、Rubyらしいライブラリのようだ。参考: http://prawn.majesticseacreature.com/ http://prawn.majesticseacreature.com/docs/prawn-core/ http://prawn.majesticseacreature.com/docs/prawn-layout/ Hello, World!! WEBrickを使った、アクセス時に生成して表示するサンプル。 require 'rubygems' require 'webrick' require 'tempfile' require 'prawn' server = WEBrick::HTTPServer.new(:BindAddress =>
音の鳴るエディタ - ✘╹◡╹✘の技術的解説。 おさらい 音の鳴るエディタ 眼を閉じた状態で"Hello"と入力して、画面を見ずに正しく"Hello"と入力されていることを確認したい。 そこで、キーを叩く度にそれぞれ固有の音が鳴るようにした。 プログラミングしながら演奏できる。 開発者集めてジャムセッションとかできると思う。 人月の神話っぽくならないように注意したい。 仕組み Vimはキーイベントが取れるので、キーを押したときにカーソルの下にある文字を取得して、それを非同期でRubyのプログラムに渡す。objective-c調べて書くの面倒だからRuby使った。Rubyの方は、文字列の文字コードと見て適当に半音階ずつの周波数を決める。a, b, c, d, ...と半音ずつ上がっていく。キーイベントでキーが取得できて非同期でシステムコマンド呼び出せるエディタだったら何でも使えると思うけど、
こんにちは、@IT編集部の西村賢です。先日、札幌Ruby会議2012で、Ruby言語を使ってiPhone(iOS)アプリが開発できる「MobiRuby」を開発している増井雄一郎 (@masuidrive) さんにお話を聞くことができました。立ち話ですが、4分ほどの即席インタビュー動画をお届けします。 MobiRuby開発者の増井雄一郎さん MobiRubyを使って開発したゲームの例 動画の内容を簡単にまとめると、以下のとおり。 MobiRubyはmruby環境でiPhone(iOS)アプリを開発できるSDK つまり、Rubyだけでアプリが書ける ネイティブ環境(Cocoa)のAPIが全て叩ける mrubyのVMをバンドルした形でアプリが配布される コンパイルしたアプリはAppStoreにも登録できる(すでに審査を通過したアプリもある) 現在はα版。来年のQ1にはプロダクションレベルに持って
自社サービスにAPIを実装する事ってあまりないですよね。 kamadoのプロダクトも現在はAPIは公開してません。 もし提供するのであれば、簡易的な方法ですが、ユーザーテーブルにtokenカラムを追加して、API用のルーティングを作成する…という方法が考えられると思います。 しかし、その実装時間でより良いAPIが実装出来るとしたら素晴らしいですよね。 そこで紹介したいのがgem doorkeeperです。 日本語の記事が見当たらなかったので記事にしました。 github https://github.com/applicake/doorkeeper gem doorkeeperってどんな機能があるのか? 簡単に説明すると、 ・アプリケーションの管理機能 ・アプリケーションの承認管理 ・スコープの設定 いってしまえば、Facebook API(に近い実装)そのまま実装出来ます。 しかもOAu
(追記:2014-3-3) Gvizについてのまとめ頁を作りました。 Gvizの目次 - Rubyの世界からGraphvizの世界にこんにちは! このブログとかでたまに無向だとか有向だとかのチャートの方じゃないグラフが書きたいと思うことがあるよ。でまさかこのご時世で今更VISIOとかあり得ないからGraphvizのdotファイルを書くことになるんだけどDOT言語は制御構造を持ってないから結局より高級な言語によるインタフェースが必要になるよ。でRubyの出番ってことになるんだけどGithubで”graphviz ruby“で検索すると1200件以上ものリポジトリがヒットするんだよ。でこの中から適当なものを選んで使えばいいってことなんだろうけどさすがにこれだけあるとどれを選んでいいか全然わからないから結局The Ruby Toolbox当たりで”graphviz“にヒットする20件くらいの中か
Kiry@TBです。 前回は遅ればせながらmrubyをインストールしみてました。 ※ところが、じつはMobiRubyにmrubyが含まれているっぽい・・・ たぶんmrbc(コンパイラ)だけだと思いますが。 今回はMobiRubyをインストールしてみました。 なかなか勝手がわからず、すこしハマりつつなんとかサンプルゲームの起動ができましたので、その手順を。 まずはRVMのgemsetを作成します。 名前はそのまま mobiruby とします。 rvm gemset create mobiruby rvm gemset use mobiruby 現状のgemを確認してみます。 $ gem list *** LOCAL GEMS *** bundler (1.1.5) rake (0.9.2.2) rubygems-bundler (1.0.3) rvm (1.11.3.5) この後
ドメインウェブの設定が見つかりません 考えられる原因 ドメインウェブの設定がまだ行われていない。 ドメインウェブの設定がまだ反映されていない。(反映には数時間~24時間かかることがあります) ドメインウェブ・DNSの設定が誤っている。 アカウントが存在しない、契約が終了している、削除されている。
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
DRY原則に従おうとするほど、テストコードがどんどん読みづらくなる。 The RSpec Bookに答えがあるかと思って読んでみたものの、「あるある」と一言述べているだけだった。辛い。 テストコードが読みづらくなる例を示すために、1つRubyのライブラリをつくった。 値とパターンを与えてValidationを行う機能を提供するライブラリ。 実装60行、テスト120行なので、詳しく見たければすぐ読めると思う。 最近不本意ながらキラキラネームの命名力が上がってきたと思う。 avalon - A validator implementation for Ruby https://github.com/r7kamura/avalon 冗長だが読みやすい例 letもsubjectもローカル変数も何も用いずに率直に書いたテストコード例がこちら。 冗長だが読みやすく、テストコードを見ればライブラリの使い
It's like JSON. but fast and small. MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. Next: MessagePack is supported by over 50 programming languages and environm
私がRSpec使ってテスト書く時はこんな感じで書いてるよ〜ってのを書いてみた。*1 テストを書く順番について TDDでコードを書く場合、先にテストを書く事になります。 そして、そのテストを書く順番ですが、私は下記のような順番で書くように意識しています。 設計する describe を書く itを書く subjectを明確にする before(context)を明確にする その他に、気をつけている点はこんな感じ 別のメソッド呼ぶ時は基本的にstubなどで潰す contextは「〜の場合」、it は「〜であること」になるようにする 一つずつ、詳細を書きます。 設計する テストを書き始める前に、まず実装しようとしてるクラス、メソッドを簡単に設計します。 少なくとも、「クラス名」「クラスメソッド or インスタンスメソッド」「メソッド名」「メソッドの戻り値」ぐらいは決めます。 describe を
なんかマジで簡単になった。最近ライブラリ作りまくってるのでその全体的な手順をメモ。 Ruby1.9の前提で書きますが、1.8でも出来るかもですね。Rubygemsの認証周りについては記載してませんが、画面に表示される英文読んでたら楽ショーで出来る思います gemのひな形を作る まずローカルにリポジトリを作ります。これはbundle gemコマンドを使います $ bundle gem your_project create your_project/Gemfile create your_project/Rakefile create your_project/LICENSE create your_project/README.md create your_project/.gitignore create your_project/your_project.gemspec create
TL;DR Rails 4.0 will allow you to stream arbitrary data at arbitrary intervals with Live Streaming. HAPPY MONDAY EVERYONE! Besides enabling multi-threading by default, one of the things I really wanted for Rails 4.0 is the ability to stream data to the client. I want the ability to treat the response object as an I/O object, and have the data I write immediately available to the client. Essentiall
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く