タグ

Rubyに関するcelt69cobraのブックマーク (30)

  • 階層の深いHashを作成するときに知っておいたら便利なこと - (゚∀゚)o彡 sasata299's blog

    2009年11月10日23:49 Ruby 階層の深いHashを作成するときに知っておいたら便利なこと Ruby で階層の深いハッシュ(ハッシュの値がさらにハッシュとか)を作成するのって面倒です。何が面倒って毎回宣言しないといけないんですよー。まぁ他の言語やってた人なら当たり前なのかもしれませんが、Perl 出身の僕としては大変メンドクサイわけです。 例えばこのようなデータ構造を考えてみます。 #!/usr/bin/ruby hash = {} hash["hoge"] = 1 p hash # {"hoge"=>1} hash["foo"]["bar"] = 1 p hash # undefined method `[]=' for nil:NilClass (NoMethodError) 最初に hash = {} と宣言しているので hash["hoge"] = 1 の部分は問題なく

  • Enumerator とブロックの省略 - まめめも

    1.9 では Enumerator が組み込みになり、大きく拡張されています。ついでにブロックの省略に対する考え方にも影響があります。結構重大な変更のわりに、この話はあまり議論や周知がされていないような気がしたので、現状の Enumerator について、その機能と問題点をまとめてみました。 Enumerator の機能 まず、each や map など、イテレータっぽいメソッドをブロックなしで呼び出すと Enumerator が得られます。 p [1,2,3].each #=> #<Enumerable::Enumerator:0xb7d38260> p [1,2,3].map #=> #<Enumerable::Enumerator:0xb7d38210> Object#to_enum または enum_for を使って、指定したメソッドによる Enumerator を明示的に作ること

    Enumerator とブロックの省略 - まめめも
  • Ruby の関数オブジェクト - Proc とブロックの使い方

    1. 関数オブジェクトとは これまで、Ruby のイテレータから、「ブロック付きメソッド」について見てきた。 Ruby のブロック付きメソッドとイテレータ - yield の様々な使い方 Ruby のイテレータ (2) – Enumerable と Comparable モジュール 今回は、他の言語で「関数オブジェクト」と呼ばれるものを生成するための、Proc クラスについて調べる。 Proc - Rubyリファレンスマニュアル によると、 Proc はブロックをコンテキスト(ローカル変数のスコープやスタックフレーム)とともにオブジェクト化した手続きオブジェクトです。 Ruby の解説を初めて読んだとき、Proc クラスは分かりにくかった。同時に、以下の項目も理解しずらかった。 イテレータ ブロック付きメソッド Proc オブジェクト proc lambda{} &変数 今思えば、これらを

    Ruby の関数オブジェクト - Proc とブロックの使い方
  • Rubyのblock、Proc、lambdaを理解する - このブログは証明できない。

    新年おめでとうございます。2009年の最初のネタはプログラミングのネタにすることにしました。 Rubyについてのステキなエントリーがあったので、紹介します。 no title 私は翻訳能力がないばかりか、リーディング能力も貧相です。ぜひ、原文を読んでみてください。 はじめに Rubyblock、Proc、lambdaはパワフルですが、解りにくい。Rubyはクロージャを使う方法が4つあって、それぞれチョットずつ違います。ここでは、そのへんを解説したいと思います。 Block もっとも簡単で、かつRubyっぽいと言えば、Blockですね。 array = [1, 2, 3, 4] array.collect! do |n| n ** 2 end puts array.inspect # => [1, 4, 9, 16] 何が起こっているか? まず、block付きでArrayの"collect

  • 逆引きRuby – www.namaraii.com – Index of TAKEUCHI, Hitoshi

    逆引きRubyRubyを使ってやりたい事から、その方法を調べられる逆引きのリファレンスです。 逆引きRubyはもともとWikiで運用していました。このため、サイトのコンテンツは私以外の多くの方によって作成・編集されたものです。 2017年に静的HTML(jekyll)の管理へ移行しましたが、2018年10月からScrapboxへ移行しました。どなたでも編集いただけますので、ご協力いただける方はよろしくお願いします。 逆引きRuby (https://scrapbox.io/rubytips/逆引きRuby)

    celt69cobra
    celt69cobra 2012/07/27
    hash
  • サンプルコードによるRuby入門

    配列の宣言 array = [1,2,3,4,5] 配列の要素の参照 配列の要素を参照するには、以下のようにします 配列[添字] 先頭の要素と2番目の要素を出力するサンプルです puts array[0]; puts array[1]; 配列の要素の代入 配列[添字] = 値 とします 先頭の要素に20を代入するサンプルです。 array[0] = 20 配列の要素の個数 次のようにします array.size 配列の要素を順番に処理する eachというのを使います。 配列.each do |配列の要素| # ここに配列の要素に対する処理を書きます end たとえば配列の要素すべての値を表示する例です array.each do |element| puts element end 重複を取り除く uniqというのを使います 配列.uniq たとえば[1,1,2,3]という配列に.uniq

    サンプルコードによるRuby入門
  • 見につく!生活情報ネット

    お金仕事、生活の中の様々な悩みを「そうだったのか!」に変えます 楽な仕事ってどんな仕事?消費者金融カードローンのおすすめは?年会費無料のおすすめクレジットカードを紹介して!国が認めた借金救済制度「債務整理」を解説、などなど、見ておきたいコンテンツがいっぱいです! 知らないと損するかも?ぜひ、ご覧ください。

  • 第1回 mruby誕生の経緯を明かそう

    Webサービスの分野などで人気を博してきたオブジェクト指向のプログラミング言語「Ruby」に2012年4月、組み込み向けの軽量版「mruby」が登場した。 Ruby(CRuby)の生みの親である、まつもとゆきひろ氏が、組み込み分野に強みを持つ福岡県の企業や大学などと共同で経済産業省の「地域イノベーション創出研究開発事業」として開発したものである(Tech-On!関連記事01、同02)。 mrubyの最大の特徴は、実行環境(仮想マシン:VM)の大きさが最小構成で550kバイトと小さく、他のアプリケーションにVMごと組み込みやすいことだ。C言語などで記述した体のアプリケーションの中で、ネットワーク処理やテキスト処理などC言語の苦手な処理やRubyの得意な処理をmruby側にオフロードさせる、といった使い方ができる。 ネットワーク側とのやり取りが増えつつあるデジタル家電など組み込み機器での

    第1回 mruby誕生の経緯を明かそう
  • あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して

    あなたは,下記のコードを理解できない。 p f /g+h/i これはRubyのコードである。「p」は,コンソールに出力する関数である。 問: だいたい,何をやっているコードですか? ※例えば,四則演算など。 構文をおおまかに説明して下さい。 どれが変数で,どれが関数で,どれが演算子か? ↓回答 回答: 一意に決定できない。 下記に, このコードの複数の解釈方法と, この件が引き起こす問題 について述べる。 ※なお,この問題が起きるのは動的言語に限らず,静的言語でも同様に発生しうることを前もって述べておく。 (1)分数の計算とみなすパターン 先行するコードを下記のように書いた場合: test1.rb # 変数に数値を代入 f = 2 g = 1 h = 2 i = 1 # 演算結果をpで出力する p f /g+h/i 実行結果: >ruby test1.rb 4 「分数の計算」とみなされる。

    あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して
  • 軽量Ruby「mruby」技術紹介 | 東芝情報システム株式会社

    近年、情報家電やモバイル端末などの情報機器だけでなく、産業機械やオフィス器具など、あらゆる機器の情報化が進められる中、組込みソフトウェアの規模と役割は飛躍的に高くなっています。しかしながら、組込みソフトウェアの開発現場では、依然としてC言語を中心とした開発が主流であり、開発効率の向上が課題となっています。 一方で、Webサービスなどのサーバー利用分野においては、日で開発されたプログラミング言語であるRuby(CRuby/MRI)を中心に生産性の向上が進められています。 そこで、今後ますます大規模・複雑化し、高品質、短納期化、低コスト化が求められる組込みソフトウェア開発において、これらの課題を解決する為に、「軽量Ruby」が産学共同プロジェクトによって開発されました。 弊社は、アドバイザーとして軽量Ruby開発プロジェクト(*1)に参画し、組込み関連分野のアドバイスを行いました。また

  • 第1回Ruby開発環境勉強会 - Kentaro Kuribayashi's blog

    社内で、Ruby開発環境勉強会を行いました。趣旨としては、 Rubyプログラマ歴ひと月未満の僕が、最近自分でやってみた開発環境について説明・実演する それを聞いているひとが「こんなことも知らないのか」とあきれて、いろいろ教えてくれる という会です。いろいろ勉強になったので、とてもよかったです。開発環境やツールまわりの勉強会、面白いので、次回以降もなんかしら開催したいと思います。また、 西園寺おんじ氏: http://p.booklog.jp/book/51223 刺身氏: http://blog.kyanny.me/entry/2012/05/30/164601 の2名も発表してくれました。 とはいえ、単に「教えて」というだけいっても意味ないので、以下の軸に沿って問題を整理しつつ、それぞれについて説明・実演をしつつ、みなさんの意見をうかがう感じですすめました。 シェルの設定 irb/pry

    第1回Ruby開発環境勉強会 - Kentaro Kuribayashi's blog
  • 正規表現で最短マッチを知っとくとちょっと便利かも - (゚∀゚)o彡 sasata299's blog

    2012年05月01日21:34 Ruby 正規表現で最短マッチを知っとくとちょっと便利かも 正規表現ってあるじゃないですか。そうです。アレです。 とっても便利で、いろんな場面で役立つと思うんですが、ときどき最短マッチを使いたくなって「最短マッチってどう書くんだっけなぁ?」ってなってググることがあります(よね!) 通常は最長マッチになる 通常、正規表現内で * とか + とか付けると、直前の表現の0回/1回以上の繰り返しを表しますが、この書き方だとできるだけ長い要素にマッチしようとします。大事なことなのでもう一度言います。できるだけ長い要素にマッチしようとするんです。 大抵はそれで構わないんですが、ときどきそれでは困るケースがあります。例えばこんなケースを考えてみましょう(あんまり良い例が思いつかない)。 ・"名前(ニックネーム)"という形式 ・名前と(ニックネーム)の間には半角or全角ス

  • RubyでWebスクレイピングするためのサンプル - t-taira blog

    サンプルで使ったライブラリ gem install nokogiri gem install mechanize Nokogiri HTMLを操作するためのライブラリ tenderlove/nokogiri · GitHub Mechanize Webサイトへ自動でアクセスするためのライブラリ tenderlove/mechanize · GitHub HTMLを操作するサンプル 型番で検索して、価格コムの最安値を出力するサンプル # coding: utf-8 require 'rubygems' require 'nokogiri' require 'open-uri' model_number = 'L32-V09' page = open("http://kakaku.com/search_results/#{model_number}/") html = Nokogiri::HT

    RubyでWebスクレイピングするためのサンプル - t-taira blog
  • サクサク引ける Rubyリファレンスマニュアル

    キーボード操作 [↓]次の項目を選択 [↑]前の項目を選択 [Enter]選択された項目を開く Fork me on GitHub ≫ https://github.com/miyamae/rubydoc-ja/tree/master 静的なファイルだけで構成されているので、ダウンロードしてローカルで利用することもできます。 作ってる人=みやまえ@BitArts

    サクサク引ける Rubyリファレンスマニュアル
  • 知って得する21のRubyのトリビアな記法

    (追記:2013-08-16) 記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 ちょっとトリビアだけど、知っていると意外と便利なRubyの記法を21個拾ってみたよ(Ruby1.9限定)。 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺にクラス定数だけでなくクラスを返す式が書けるよ。 class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh # => 'Fu fu fu..' def io(env=:develop

  • これからRubyを始める人たちへ

    (追記:2012-12-03) 記事を電子書籍化しました。「Gumroad」を通して100円にて販売しています。詳細は文末に追記しましたので、購入ご検討のほどよろしくお願いしますm(__)m 電子書籍「これからRubyを始める人たちへ」EPUB版 Rubyの特徴 Rubyは、まつもとゆきひろ氏(通称Matz)により設計されたオブジェクト指向プログラミング言語です。Rubyの特徴を一言で言うならば、それは「間口が広くて奥が深い言語」ということになります。 「間口が広い」というのは、インタフェースがシンプルで誰でもが簡単に使い始められることを意味します。「奥が深い」というのは、プロフェッショナルによる長期使用に耐えうる物の言語であるということを意味します。「間口が広い」ということと「奥が深い」ということは来競合する概念ではありませんが、その両方をバランスよく組み合わせるには、対象に対する

  • 独学でコーディング! - a-newcomer.com

    ここ数年、会社を辞めて自分のペースで仕事を請け負うフリーランスという形態で仕事をする人が増えています。フリーランスには様々な職業があり、代表的なものでは翻訳業やイラストレーター、YouTuberもフリーランスに分類されます。そして代表的なフリーランスの職業がもう一つあります。それはプログラマー/エンジニアです。そのプログラミングの大部分を占める工程がコーディングであり、知識と技術を身につければ、憧れのフリーランスに鞍替えすることも夢ではありません。 それではコーディングの知識と技術を取得するにはどのようなルートがあるのでしょうか?現実として学校に通うか、プログラミングを請け負う会社に入社するか、あるいは独学で取得するかのいずれかを選択することになります。そこで今回は最も費用の少ない独学でコーディングを学ぶ方法を紹介したいと思います。 独学でコーディングの知識と技術を身につけるには まずはプ

    独学でコーディング! - a-newcomer.com
  • オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル

    トップ 目次 はじめに コマンド Rubyの起動 環境変数 Ruby 言語仕様 Ruby でのオブジェクト オブジェクト クラス プロセスの実行 Ruby プログラムの実行 終了処理 スレッド セキュリティモデル Ruby の文法 字句構造 プログラム・文・式 変数と定数 リテラル 演算子式 制御構造 メソッド呼び出し(super・ブロック付き・yield) クラス/メソッドの定義 その他 多言語化 正規表現 手続きオブジェクトの挙動の詳細 組み込みライブラリ Builtin libraries 標準添付ライブラリ All libraries C API All C API その他 pack テンプレート文字列 sprintf フォーマット Ruby用語集 Rubyで使われる記号の意味(正規表現の複雑な記号は除く) 疑似BNFによるRubyの文法 配布条件 このマニュアルのヘルプ

  • Ruby vs Python! 〜def vs def〜 - DT日記

    記事はRuby Advent Calendar jp: 2011の参加記事です。いえーい。日は五日め……? スタートの12/1はこのAdvent Calendarの主催者にして中学生Rubyコミッターことそらはー(@sora_h)のCod.note - Coffeescripting with Ruby、12/2はudzura (Uchio Kondo)さんのblog.udzura.jp - almost-sinatra.rb の深淵を覗くでした。 3日めと4日めは……? 12/3のRubySpec の走らせ方と、12/4のRuby の力じゃ!いまこそ Capybara を使え!!!も公開されてました。 記事中の「Rubyなメソッドについて」 訂正があります。no6vさんありがたうございました。あとでたぶん補足記事書きます。 対象読者 Ruby初心者・初級者・中級者向け。具体的にはR

    Ruby vs Python! 〜def vs def〜 - DT日記
  • Rubyで論理プログラミングしようよ! - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 Rubyで論理プログラミングしようよ! : melborne.github.com - 人生は選択の連続だよ 1つの選択が君の未来を変えるよ そして残念なことに 後からその失敗に気がついても 選択をやり直すことは人生ではできないんだよ.. コンピュータプログラムにも似たようなところがあるよ プログラムは一度走り出したら止まらないから 途中の分岐で選ばれた選択を 後から変えるのは得意じゃないんだ 問題1 例えば次のような問題を考えてみるよ xが1,2,3の何れかで yが4,5,6の何れかであるとき x + y = 7 となるx, yの組みを求めよ x, yには複数の選択肢があって xの決定はyの決定に影響を与えるから その組み合わせを決めるためには 人間がするのと

    Rubyで論理プログラミングしようよ! - hp12c