タグ

rubyに関するsatoshipのブックマーク (208)

  • Ruby のアスタリスクオペレータ(*) のメモ - わからん

    元ネタ reference - Tricky operators in Ruby - Stack Overflow 久しぶりに stackoverflow のメモ。 なにか Tricky なオペレータないですか? というお題に、S〓bastien Le Callonnec さんは * だよ! と答えます。 a,b,c = *[1,2,3] a # => 1 b # => 2 c # => 3 *d = 1,2,3 d # => [1, 2, 3] 後者は、関数定義の引数のところで使うやつですね。僕も知ってます。 次に挙げられたのは case 式での利用例。 first = ["one", "two"] second = ["three", "four"] number = "one" p case number when *first "first" when *second "secon

  • クラスのインスタンス変数について

    アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...Google Cloud Platform - Japan

    クラスのインスタンス変数について
  • コーディング規約をまとめてみた (Ruby編) - bojovs::blog

    色々なところで見かけるコーディング規約を見て意識はしているのですが、 その時の気分で書き方を変えてしまうことが多々あったので、自戒を込めてコーディング規約をまとめてみました。 「なぜこの規約が存在するか」を明確にするために、できる限り理由も併記しています。 ただかなり主観的な部分があるので、あまり意味がないかもしれません…。 「この記事のこの規約は気に入らない。」と思うことがきっとあると思います。 その時はコメント欄などに理由も合わせて書いてくれると嬉しいです。 この記事ではRubyのコーディング規約をまとめています。 近いうちにRailsとCoffeeScriptのコーディング規約もまとめるつもりです。 Rubyのコーディング規約は以下のページを参考にまとめました。 https://github.com/styleguide/ruby https://github.com/bbatsov

  • The End of Monkeypatching

    Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. Monkey-patching is so 2010. We're in the future, and with Github and Bundler there is now rarely a need to monkey-patch Ruby code in your applications. Monkey-patching is the dangerous-yet-frequently-useful technique of re-opening existing classes to change or add to their behavior. For example, if I have always felt that

  • まつもと直伝 プログラミングのオキテ 第21回 オープンクラスとRuby on Rails

    Rubyには「オープンクラス」という機能があり,使い方次第で強力な道具になります。今回はこのオープンクラスを解説します。オープンクラスを活用している「Ruby on Rails」のライブラリActiveSupportについても紹介します。 オープンクラスについての説明に入る前に,Rubyにおける通常のクラス定義について,復習しておきましょう。クラスFooを定義するには以下のように書きます。 この定義ではクラス名がFoo,FooのスーパークラスはBarになります。FooはBarクラスを継承しています。クラス文の内側にあるdefによってplus2メソッドが定義されます。FooクラスはスーパークラスであるBarクラスが備えているメソッドなどを受け継ぎますから,Fooクラスのオブジェクトは,Barクラスのメソッドに加えてplus2メソッドが使えるということになります。 このように新しいクラスを定義

    まつもと直伝 プログラミングのオキテ 第21回 オープンクラスとRuby on Rails
  • [ruby][howto]クラスを生成するクラスの作り方

    Rubyな話。 「とあるオブジェクト群はそのなかでクラスタに分かれていて、クラスタごとに振る舞いが違うんだけど、そのクラスタの数が不定」という状況がたまぁ〜にある。Ruby なおまえらがよく知っている例としては Active Record パターンとかはそう。Active Record パターンだとオブジェクトは DB の行で、したがって振る舞いは DB のテーブル(かビュー)によって決まるんだけど、Active Record の基底クラスを設計している段階ではどんなテーブルがあるかなんてのは当然すべてのパターンを網羅的に作成しておく事はできない。 んで、Rails についてくる ActiveRecord::Base だと、そのへんはかつては「クラスが継承されたときにそこにフックして派生クラスに実装を注入」というインド人もびっくりの力技で解決されていて(今見たら今はそこまでじゃないが)、ま

    [ruby][howto]クラスを生成するクラスの作り方
  • Ruby's new as a factory

  • シンタックスハイライトを実装する(Ruby & Parslet 編) | Webシステム開発/教育ソリューションのタイムインターメディア

    問題 世の中にはシンタックスハイライトを行うツールが既に多数存在しています。例えば以下のようなものがあります: GNU Source-highlight (コマンドラインツール)SHJS (JavaScriptでの実装; クライアントサイドで動的にハイライトする)SyntaxHighlighter (SHJSと同様) メジャーな言語やフォーマットなら標準でシンタックスハイライトの設定が同梱されていますが、 ニッチな言語やフォーマットだとまずそのような設定は存在しません。 それならば独自に設定を書けばいいのですが、 大抵のツールでは構文の定義方法が特定のパーツに該当する正規表現を並べるだけなので、 言語によっては構文の妥当な記述が不可能な場合もあります。 となると独自に実装せざるを得ません。 例えば Vim の :help ドキュメントを良い感じに Web ブラウザ上で見るためのツール を作

    シンタックスハイライトを実装する(Ruby & Parslet 編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • 第19章 スレッド

    rubyスレッド スレッドは「みんな一斉に動く」というのが建前だが、実際には少しの時間ず つ順番に動いているわけだ。厳密に言えばマルチCPUのマシンでそれなりに工 夫すれば同時に二つ動いたりもできるが、それでもCPUの数以上のスレッドが あればやはり順番に動かなければならない。 つまりスレッドを作り出すためにはどこかで誰かがスレッドを切り替えてやら ないといけないわけだが、その手法には大きく分けて二種類ある。 カーネルレベルスレッドと ユーザレベルスレッドだ。これはどちらも読んで字の如く、ス レッドというものをカーネルで作るかユーザレベルで作るかという違いである。 カーネルレベルならマルチCPUを生かして複数のスレッドを同時に動かしたり もできる。 ではrubyのスレッドはどうなのかと言えば、これはユーザレベルスレッドで ある。 そして(それゆえ)同時に動けるスレッドは厳密にただ一つと制限

  • るびま

    『るびま』は、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 直

  • 極めるメソッド

    $Id: method.rd,v 1.4 2003/06/18 23:28:28 aamine Exp $ 極めるシリーズその 2、メソッド使いこなしちゃうぜ講座。 メソッド定義のきほん よいこのみなさんは知ってるとおり Ruby では def method_name( arg, arg, opt_arg = default, *rest_args, &block_arg ) 内容… end でメソッドが定義できる。メソッドとは何か? 関数とは違うのか。 まあ、似たようなもんだと思ってもいいと思う。 オブジェクト指向教条主義の人なら怒るだろうけど、 実際使う時は理論なんてどうでもいいのだ。 動作を理解した後に呼び方がふさわしくないと思うようになったら それから変えればいいんじゃない? で内容だが、opt_arg は省略可能な引数。 rest_args も書かなくていいって点では省略可能だが

  • Ruby用拡張ライブラリをCで作る --- Little Penguin

    Ruby用拡張ライブラリをCで作る Helloクラス Rubyのソースにしてみればおそろしく簡単な下記のソースを、今回はCで記述し てみることにする。 class Hello def hello print "Hello, Ruby World.\n" end end 完成品のソース(hello_rb.c) #include <stdio.h> #include <ruby.h> VALUE hello(void); Init_Hello(){ VALUE cHello; cHello = rb_define_class("Hello", rb_cObject); rb_define_method(cHello, "hello", hello, 0); } VALUE hello(void){ printf("Hello, Ruby World.\n"); return Qnil; } ソ

  • SOCKSify Ruby

    What is it? SOCKSify Ruby redirects any TCP connection initiated by a Ruby script through a SOCKS5 proxy. It serves as a small drop-in alternative to tsocks, except that it handles Ruby programs only and doesn't leak DNS queries. How does it work? Modifications to class TCPSocket: Alias initialize as initialize_tcp The new initialize calls the old method to establish a TCP connection to the SOCKS

  • Pry - an IRB alternative and runtime developer console

    Pry is a powerful alternative to the standard IRB shell for Ruby. It features syntax highlighting, a flexible plugin architecture, runtime invocation and source and documentation browsing. Quickstart Install Pry: $ gem install pry $ pry Try it out: (Displaying source for FileUtils.rm) pry(main)> cd FileUtils pry(FileUtils):1> show-method rm From: /opt/ruby/lib/ruby/1.9.1/fileutils.rb @ line 556: N

  • YARD - A Ruby Documentation Tool

    What Is YARD? YARD is a documentation generation tool for the Ruby programming language. It enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily, and also supports extending for custom Ruby constructs such as custom class level definitions. Above is a highlight of the some of YARD's notable features. And of course YARD comes with muc

  • GitHub - rbenv/rbenv: Manage your app's Ruby environment

    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

    GitHub - rbenv/rbenv: Manage your app's Ruby environment
  • Setting up a new machine for Ruby development

    It used to be a jarring experience to setup a new machine for development, but progress has paved the dirt road into a silky smooth autobahn. These are the tools we use today: Homebrew: Remember how painful it used to be to get imagemagick installed? Now it takes about a minute. “brew install imagemagick”. Same story for git and other Linux dependencies. rbenv/ruby-build: We have some apps running

    Setting up a new machine for Ruby development
  • DateTime に月、日、時、分、秒を足す。 - こせきの技術日記

    DateTimeに秒を足す方法がなかなか見つからなくて苦労した。結局ActiveSupportのソースから探した。 Rationalを足せば良い。 require 'date' t = DateTime.now # 1ヶ月後 t >> 1 # 1日後 t + 1 # 1時間後 (1/24日後) t + Rational(1, 24) # 1分後 (1/1440日後) t + Rational(1, 24 * 60) # 1秒後 (1/86400日後) t + Rational(1, 24 * 60 * 60) 秒を足すことばかり考えてたけど、「Ruby DateTime 時間」で検索したらあっさり見つかった。 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/44399 でもマニュアルにも書いといてほしいです。いっぺんT

    DateTime に月、日、時、分、秒を足す。 - こせきの技術日記
  • 俺でも分かるRakeの使い方 - とある技術の備忘録

    Ruby目次 Rakefileの簡単な書き方 名前空間 - Rakefileが増えてきたら ブロック引数 - D・R・Y! D・R・Y! タスクの動的生成 ありがとう参考先------------------------------------------------------------ Rakeというのはrubyで処理内容を定義できるビルドツール。currentDirectoryのRakefileというタスクを定義したファイルを読み込んで色々タスクを実行してくれます。引数でファイル名を指定できるけど、基的にはRakefileがデフォルトなのでそれに従った方がいいです。 $ rake タスク名> # 指定のタスクを実行。 $ rake パラメータキー>=値> タスク名> # パラメータ指定ありで、指定のタスクを実行。 $ rake -h # 使い方を表示。 $ rake -T # 定

  • Ruby においてメソッドがどこで定義されているのかを調べる方法 - vivid memo

    ruby-talk の 381425 で 「どのメソッドが呼び出されているのか調べる方法を知りたい」 という内容の質問がありました。 私も知らなかったのですが、Method オブジェクトを使えば簡単に知ることができるそうです。 というわけで、メソッドがどこで定義されているのかを調べる方法を書いておきます。 メソッドを定義しているクラスまたはモジュールへの参照を取得する あるメソッドがどのクラス (またはモジュール) で定義されているかを知りたければ、そのメソッドに対応する Method オブジェクトを取得し、Method#owner メソッド を呼び出します。 それだけで、メソッドを定義しているクラス (またはモジュール) への参照を取得できます。 ちなみに、ある名前のメソッドに対応する Method オブジェクトを取得するには、Kernel#method メソッド を使用します。 'あい

    Ruby においてメソッドがどこで定義されているのかを調べる方法 - vivid memo