You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
twitter bootstrapを更に便利に使うgemがtwitter bootstrap railsです。 railsアプリを作りましょう。 rvmでgem set作ります。 rvm --create 1.9.3-p125@tbrsample railsアプリ生成します。 gem install rails --no-ri --no-rdoc rails new tbrsample gemを指定しましょう。 Gemfileのgroup :assetsに追加します。 cd tbrsample vim Gemfile gem "twitter-bootstrap-rails" どん bundle install --without=production bootstrapをgenerateしましょう。 必要なjsやcssをapp/assets配下に配置します。 rails g bootst
Rubyのrandの挙動はややこしく、最近さらにややこしくなったのでメモ。 乱数メソッドの種類 Rubyには3種類のrandがある。 Kernel#rand (ふつうのrand) Random.rand Random#rand ふるまい(before 1.9.2) 1.9.2までは、 Random#randは引数にInteger, Float, Rangeを扱うことができるのに対し、 Kernel#rand, Random.randではIntegerしか扱うことができない rand 10 #=> 7 rand 7.5 #=> 4 rand 10..20 #=> TypeError: can't convert Range into Integer Random.rand 10 #=> 8 Random.rand 7.5 #=> 3 Random.rand 10..20 #=> TypeEr
Ruby 製のプロセス監視ツール、God を試してみた。(書いてる時点より5ヶ月前…。) モダンに監視したいなぜなら TIG が落ちるから(笑) 実は Un*x 系の OS なら素朴な監視は割と簡単にできる。 psgrep/etc/rc.d/* とか /etc/init.d/* とかsendmail辺りで事足りる。要するに 定期的に ps を叩いて、この文字列のパターンがない場合はこのプロセスが落ちてるから mail 投げて起動スクリプトを呼ぼう ってだけ1。これだけでプロセスが落ちてたらまた起動し直すということが可能なので、知らん間にサーバ落ちててオレ涙目っていう状態を減らすことはできる。少なくともすでに上の道具が使えているなら新しいことを覚える手間はないので、どうしてもすぐ監視を始めたい場合にはこれだけでも十分有効だと思う。 でも効率が良くない。ちょっと複雑なことを考え始めると for
ラングバプロジェクト ラングバプロジェクトはカラムストア機能も備える高速・高機能な全文検索エンジンgroongaを用いた全文検索システムを提供するプロジェクトです。groongaの機能をRubyから利用するためのライブラリ、様々な文書から検索対象のテキストを抽出するユーティリティ、検索用Webインターフェイスなどを提供します。提供する機能の一覧は以下の通りです。 rroonga: groongaの機能をRubyから利用するためのライブラリ ActiveGroonga: rroongaをWebアプリケーションから使いやすくするためのライブラリ ActiveGroonga Fabrication: FabricationにActiveGroongaサポートを追加するライブラリ racknga: 検索用Webアプリケーションの構築・運用を支援するユーティリティ Packnga: 多言語対応ドキュ
{{toc_here}} はじめに Unicornは、Unix系システムで動作するRackアプリケーション用サーバ。接続時間が短いことを前提とした設計となっている。 - http://unicorn.bogomips.org/ preforkモデル Unicornはpreforkモデルを採用している。 Reverse Proxy └TCP Socket[0.0.0.0:8080] > Unicorn(Master) ├(fork)─Worker[0] < TCP Socket[0.0.0.0:8080] ├(fork)─Worker[1] < TCP Socket[0.0.0.0:8080] ┆ └(fork)─Worker[N-1] < TCP Socket[0.0.0.0:8080] マスタプロセスからforkした複数のワーカープロセスがあり、クライアントからのリクエストを
前回、前々回の記事では、Rackの生まれた背景、Rackとは何か、実際にRackアプリケーションを作る際に使えるものをご紹介しましたが、もう一つまだ説明していない重要な要素がRackにはあります。今回は、そのミドルウェアという仕組みについてご紹介します。 ミドルウェアとは ミドルウェアとは何かを一言で言うと、「別なアプリケーションをラップして、リクエストやレスポンスを加工したり、処理を切り換えたりするRackアプリケーション」です。 この仕組みがあることで一体何ができるのでしょうか。Webアプリケーションを作っていると、リクエストやレスポンスをアプリケーションに行く前やアプリケーションの処理の後に加工したくなることはよくあります。例えば、条件に応じてURLの書き換えをしたり、エンコーディングの変換をしたり、Cookieの処理をしたり…といったことが日常茶飯事です。こういう処理を、サーバと
In math, a unary operation is an operation with a single input. In Ruby, a unary operator is an operator which only takes a single ‘argument’ in the form of a receiver. For example, the – on -5 or ! on !true. In contrast, a binary operator, such as in 2 + 3, deals with two arguments. Here, 2 and 3 (which become one receiver and one argument in a method call to +). Ruby only has a handful of unary
When I stumbled across Richard Huang’s DRY bundler in capistrano, I got excited thinking I’d learn even more about bundler’s internals and maybe even a few more tricks with using bundler and capistrano together. Unfortunately, all I really got was to use this in my deploy.rb: require 'bundler/capistrano' Now that will probably be enough for most people. But if you’re already using bundler 1.0 with
Application_Timeouts CONTRIBUTORS DESIGN FAQ HACKING ISSUES KNOWN_ISSUES LICENSE Links NEWS PHILOSOPHY README SIGNALS Sandbox TUNING unicorn_1 Unicorn Configurator HttpServer OobGC PrereadInput StreamInput TeeInput Util Worker Methods #after_fork #after_worker_exit #after_worker_ready #before_exec #before_fork #check_client_connection #client_body_buffer_size #default_middleware #early_hints #list
Rackの動きについてコードを追ってみたよ Rackのバージョンは1.4.1です。 Rackの動きの前に、まずはざっくりRackで動かすっていうのを確認してみよう。 rack up! まずは適当にRackの設定ファイル兼クラスを定義する require 'rack' require 'pp' class Sample def call(env) pp env [200, {"Content-Type" => "text/plain"}, ["rack up!\n"]] end end run Sample.new これを rack up する sugamasao@GRAM% rackup sample.ru [2012-02-13 23:35:44] INFO WEBrick 1.3.1 [2012-02-13 23:35:44] INFO ruby 1.9.3 (2011-11-30)
require_dependencyってなんなんだろ。しょっちゅうrailsソース内ででてくるけど。ということで調べてみた。 require_dependencyを定義している場所 activesupport/lib/active_support/dependencies.rbの Object.send(:define_method, require_dependency) { |file_name| Dependencies.depend_on(file_name) } define_methodで定義してる。最初 'def require_dependency' で検索したけどひっかからなくてここにたどり着くまでそこそこ時間がかかった、、、。 requireとの違い require_dependencyで呼び出しているメソッド、depend_onは <code> def depend_
トップ 目次 はじめに コマンド Rubyの起動 環境変数 Ruby 言語仕様 Ruby でのオブジェクト オブジェクト クラス プロセスの実行 Ruby プログラムの実行 終了処理 スレッド セキュリティモデル Ruby の文法 字句構造 プログラム・文・式 変数と定数 リテラル 演算子式 制御構造 メソッド呼び出し(super・ブロック付き・yield) クラス/メソッドの定義 その他 多言語化 正規表現 手続きオブジェクトの挙動の詳細 組み込みライブラリ Builtin libraries 標準添付ライブラリ All libraries C API All C API その他 pack テンプレート文字列 sprintf フォーマット Ruby用語集 Rubyで使われる記号の意味(正規表現の複雑な記号は除く) 疑似BNFによるRubyの文法 配布条件 このマニュアルのヘルプ
前回の続き。Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blogにあったうちrequireとincludeについて書いたので、次はmodule_functionとextendの話を。 module_functionは何のためにあるのか まず前回のおさらい。 モジュールの中で特異メソッド(def self.hogeという形)として定義されたものはincludeするとクラスメソッドになるし、MyModule.hogeという形で呼べる モジュールの中でメソッド(def fugaという形)として定義されたものはincludeするとインスタンスメソッドになる。が、MyModule.fugaという形では呼べない で、module_function。これを使うとどうなるかというと、 m
Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blogを読んでて、もしかしたらちょっと誤解があるのかなと思ったのでrequireとincludeとextendの話を。 requireはKernelモジュールのメソッド Rubyで外部ライブラリを読み込むには、require を利用します。 Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blog これはその通り。もっと具体的に言うと、requireは引数のファイル名のRubyファイルを読み込んで実行するメソッドです。引数が絶対パスだったときはそのファイルを、そうでない場合はロードパスを優先順位上位から辿って最初
Objecttank@rubyのDBアクセスライブラリをDBIからSequelに移行中。Sequelの参考ページhttp://sequel.rubyforge.org/http://www.slideshare.net/zhesto/ruby-off-rails-japanesehttp://xxx.mostevildanceclassics.com/page/r/SequelRubyインストール sudo gem install sequel とりあえず実行sequelのコマンドラインツール。railsのscript/consoleのようなもの。 sequel mysql://user:password@localhost/dbname DBという名前の変数に接続オブジェクトが格納されるテーブル名=userがあったとすると、、、 DB[:user].filter(:id => 10).a
Ramazeさんのとっても便利な Kernel#acquire を紹介してみたいと思います。acquire は簡単に言えば require のようなものですが、require とは違って次のようにして複数のライブラリを一気に呼び出すことが出来ます。 acquire 'lib/**/*' これで ./lib 以下にある拡張子 .rb, .so なライブラリがごそっと読み込まれます。ちょっと便利だと思いませんか?もちろんこういうのが気持ち悪いと思う人は普通に require すれば良いだけですから安心して下さい。Ramazeさんは、Rails における ActiveSupport や Waves における AutoCode のようなオートロードを行なわないので、そういう点で簡単お手軽にライブラリをロードしてくれる acquire の存在価値はあると思います。 また Kernel#__DIR__
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く