"title".center(20) # => " title " " title ".center(20, "#") # => "###### title #######"
![[Ruby]あまり見ないけどたまに便利なメソッド[String編] - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/d666bb2bb761516d396216b3b5016fb18bbfc3ac/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JTVCUnVieSU1RCVFMyU4MSU4MiVFMyU4MSVCRSVFMyU4MiU4QSVFOCVBNiU4QiVFMyU4MSVBQSVFMyU4MSU4NCVFMyU4MSU5MSVFMyU4MSVBOSVFMyU4MSU5RiVFMyU4MSVCRSVFMyU4MSVBQiVFNCVCRSVCRiVFNSU4OCVBOSVFMyU4MSVBQSVFMyU4MyVBMSVFMyU4MiVCRCVFMyU4MyU4MyVFMyU4MyU4OSU1QlN0cmluZyVFNyVCNyVBOCU1RCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZDg1MDAzZDhlMDcwNzA4ODQyODI2MWZkYThlMDUwZTc%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbmFvNTgmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWE2MGNlMzhjZTdlZTk5N2FkMmE1Yjk5MjkxYTVjYmNm%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Db8840b0e22db4003d50f044cc15ea575)
Batteries includedCrystal’s standard library comes with a whole range of libraries that let you start working on your project right away. Check the API docs # A very basic HTTP server require "http/server" server = HTTP::Server.new do |context| context.response.content_type = "text/plain" context.response.print "Hello world, got #{context.request.path}!" end address = server.bind_tcp(8080) puts "L
続きを書きました。 RubyでただのArrayだと思って・・の続きです。正月中に整備してgem化しました。 GrnMini ongaeshi/grn_mini Groonga(Rroonga)を簡単に使えるようにラップしたものです。 カラム指定不要でデータを追加することが出来ます。 永続化、高度な検索クエリ、ソート、グループ化(ドリルダウン)、スニペット、ページネーションなどを簡単に使うことが出来ます。 検索エンジンがすぐに作れます。 インストール $ gem install grn_mini 基本的な使い方 実体はRroongaの薄いラッパーですが難しいことを考えずに使えるよう工夫しています。 require 'grn_mini' array = GrnMini::Array.new("test.db") 初めてデータを追加する時にカラム種類を類推して作成します。追加するデータが文字列の
続きを書きました。 Ruby Advent Calendar 22日目の記事です RroongaというRubyで使える全文検索エンジンがあって愛用しているのですが、使う前の準備でカラム指定やデータ型を指定したり、全文検索のためのインデックステーブルを作るのが少し大変でした(大規模なアプリケーションの時はしっかり定義出来るので便利なのですが)。 普段使いで全文検索するために、実験的にRubyのArrayのように使えるようにしてみました。 インストール Rroongaを使うにはgemのインストールが必要です。他の全文検索エンジンと違ってそれ以外のソフトウェアのインストールが不要なのがいい所です。Windowsでも問題なく動きます。 $ gem install rroonga 今回書いたコードは以下にまとめてあります。 ongaeshi/grn_array - GitHub $ git clon
🗽 APIのサンプルTwitterを模倣したサンプル(?)が、公式のGitHubのREADMEに書かれていたので転載。 app/api/Twitter.rbを作成して、次のようなコードを書きます。 module Twitter class API < Grape::API # versionは:headerや、:paramなどもあり version 'v1', using: :path, vendor: 'twitter' format :json helpers do def current_user @current_user ||= User.authorize!(env) end def authenticate! error!('401 Unauthorized', 401) unless current_user end end resource :statuses do d
この記事はRuby Advent Calendar 2013の6日目の記事です。 昨日はShindo200さんのRuby で paiza.jp のオンラインハッカソン問題に挑戦するときに少し役に立ちそうなことでした。 概要 Rubyのデファクトスタンダードなテストフレームワークと言えるRSpecですが、現在バージョン3.0のリリースへ向けて開発が進められており、先日2013年11月8日には3.0.0.beta1がリリースされました。 この記事ではRSpec 3における変更点と、RSpec 3へのアップグレード手順、また既存のspecを最新の記法に変換するツールを紹介します。 追記 RSpec 3は2014年6月2日に正式リリースされました。この記事は2013年12月6日に書かれたものですが、正式版においても通用する内容になっています。 正式版における主要な変更点は、以下のページが参考になる
はじめに チーム内でコーディング規約を作っても,ついクセで違う書き方をしたり気にしない人がいたりして形骸化しがちだと思います.またレビュー時に細かい違いを指摘するのも面倒です.そんなときはrubocopを入れましょう インストール これでrubocopコマンドがインストールされ,rubocop foo.rbとするとチェックできます. コマンドラインからいちいち実行したくないので,各エディタのプラグインをインストール.すると,以下のようにコーディングルールに合わない箇所を指摘してくれます. ここでは「bodyが1行のときは後置ifか,&&や||を使え」と言われています. 設定 rubocopが準拠するコーディング規約は同じ開発者が提案しているものですが,.rubocop.ymlファイルを編集することで自分達に合った形に変更することができます. うちではチームで話し合い,10箇所ぐらい変更しま
Padrino is a Ruby web framework built upon the Sinatra web library. Padrino was created to make it fun and easy to code more advanced web applications while still adhering to the spirit that makes Sinatra great! Lightweight The Padrino code base has been kept simple and easy to understand, maintain and enhance. The generator for each new project creates a clean and compact directory structure keep
puts や print などの標準出力に文字列を出力するメソッドはちょっとしたスクリプトから規模の大きいプロダクトまで幅広く使われる。これらのメッセージ出力メソッドは使うのはお手軽だが、テストコードを書くことを考えると意外と面倒になる。そこで標準出力の内容を簡単にテストするための gem パッケージを作った。 stdout https://rubygems.org/gems/stdout ターミナルから以下のコマンドを投入すればインストールされる。 似たような機能のものは無くもなかったが、要件にイマイチ合わなかったので作ったほうが早いと思った。思想としては 1) 標準出力に出力されるはずのメッセージを一行ごとに配列オブジェクトとして取得できる 2) 小さくてシンプルお手軽、である。ちなみに Hadoop Streaming でも標準出力を使うので Ruby で Hadoop を利用する際
[Sitespec](https://github.com/r7kamura/sitespec)という静的サイト生成ツールを作り、このブログを移行した。 ## Sitespec Sitespecは、Webアプリとテストから静的サイトを生成するためのツール。 WebアプリにはRackを、テストにはRSpecを使う。 Rackを使った適当なWebアプリを用意し、 RSpecでHTTPリクエストを発行するように記述したテストを実行すると、 レスポンスの内容から静的ファイルが生成されるという仕組みになっている。 参考までに紹介しておくと、静的サイト生成ツールには他に [Middleman](http://middlemanapp.com/)や[Octopress](http://octopress.org/)、[Movable Type](http://www.movabletype.jp/) な
あるととても便利だと思います はじめに エンジニアの@ryooo321です。 よろしくお願いします。 ご存知の方も多いかもしれませんが、今回はRubyからRedisを使う際にとても扱いやすいredis-objectsをご紹介したいと思います。 https://github.com/nateware/redis-objects 特徴 ・ORMではない ・Redisのデータ型(counter, value, list, hash, set, sorted-set)をサポート ・ロック機能も利用可能 好きなところ ・モデルの任意のプロパティをRedisに保存するような感覚で利用できる点。 ・Redisのキー情報をシームレスに管理できる点。 ・ARモデルの一部プロパティをRedisに移したりできるので、データストア単位でなく理想の単位でモデルを定義できる点。 This
2013.11.02 Ruby on Rails 4.0.1リリース!大量のバグ修正、3系からの移行も少し簡単になりました 本日、Ruby on Rails 4.0の最初のアップデートである、Rails 4.0.1がリリースされました。 6月に4.0がリリースされてから約4ヶ月、かなり久しぶりのアップデートとなりますが、どのような変更が含まれているのでしょうか。 まとめ 量が多いので最初にまとめです。 今回のリリースは大量のdiffを含みますが、そのほとんどは細かいバグ修正です。 Railsのリリース時期的には3.2.13 → Rails 4.0.0 → 3.2.14 → 3.2.15 → Rails 4.0.1となるため、3.2.14以降で適用されていた細かい修正も取り込まれています。4系が3系にようやく追いつきました。 4系はなんかデグレっぽいバグや非互換が多いなーと思っていた箇所が、
Gemfile の 「group :test, :development do」ブロックに書いている 個人的に最強な設定 を晒したいと思います。(2013/10/24 現在) 作業環境 Ruby 2.0.0p247 Rails 4.0.0 Gemfileに設定している内容 ※ コメントに随時変更したものを追記しますー group :test, :development do gem 'pry-rails' gem 'pry-doc' gem 'pry-stack_explorer' if RUBY_VERSION >= '2.0.0' gem 'pry-byebug' else # 以下はRuby1.9の時のみ使う(pry-byebugの代わりに) # debuggerは1.9以下でしか動作しない, remote は byebug で使えないようになった gem 'pry-debugger
LambdaDriver by yuroyoro Rubyで、Procやlambdaで関数合成できるようにしたかったので、lambda_driver.gemというのを作った。 内容的にはこの辺で書いたヤツをgemにした感じ。 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 「関数型Ruby」という病(3) - カリー化(Proc#curry, Proc#flip) - ( ꒪⌓꒪) ゆるよろ日記 こんな風に、カッコよくコードが書ける。 require 'lambda_driver' # [:foo, :bar, :baz].map{|s| s.to_s }.map{|s| s.upcase } # [:foo, :bar, :baz].map(&:to_s).map(&:upcase) [:foo, :bar, :baz].map(
今仕事でRailsアプリケーションを組むときに、test/unitじゃなくてRSpecを使ってる。mock周りの使い勝手がいいとか、語彙が馴染みやすいとかいろいろ魅力があるんだけど、その「可読性」を保つにはなかなかコツがいると思う。言うまでもなくRSpecはRubyのコードを「英語の表現として自然に見える」ようにすることを意図して語彙や書き方を決めている。これは英語圏のエンジニアには非常に素敵なことではあるんだけど、英語が苦手で英作文なんて始めて数分で泣きたくなるようなへたれ外国語学部生にとっては正直やっかいだし、周りの人達の大半は英語に慣れていない人達*1だったりするので、せっかく可読性が高い綺麗な表記でさえむしろ意図を理解する妨げになったりする。いっそドイツ語で書いて「お勉強」に活用してやろうかという衝動に駆られたけども、誰一人として読めない上に一週間後の俺ですら理解に苦しみそうなので
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く