Ruby 2.1の基本構文/基本文法まとめ&Pryの使い方:若手エンジニア/初心者のためのRuby 2.1入門(2)(1/7 ページ) オープンソースのオブジェクト指向プログラミング言語「Ruby」の文法を一から学ぶための入門連載。最新版の2.1に対応しています。今回は、Rubyの変数、定数、リテラル、演算子、条件分岐とループ(繰り返し)、コメントの基本的な使い方について解説。Ruby 2.1での新機能や便利な実行ツール「Pry」のインストールと使い方も紹介します。
# [:foo, :bar, :baz].map{|s| s.to_s }.map{|s| s.upcase } # [:foo, :bar, :baz].map(&:to_s).map(&:upcase) [:foo, :bar, :baz].map(&:to_s >> :upcase ) # => ["FOO", "BAR", "BAZ"] # [:foo, :hoge, :bar, :fuga].select{|s| s.to_s.length > 3} # => [:hoge, :fuga] [:foo, :hoge, :bar, :fuga].select(&:to_s >> :length >> 3._(:<)) # => [:hoge, :fuga] project page rubygems.org Build status Installation Add this li
新年おめでとうございます。2009年の最初のネタはプログラミングのネタにすることにしました。 Rubyについてのステキなエントリーがあったので、紹介します。 no title 私は翻訳能力がないばかりか、リーディング能力も貧相です。ぜひ、原文を読んでみてください。 はじめに Rubyのblock、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
目次 10. ブロックと手続きオブジェクト これは、Rubyに数あるクールな特色のなかでもその際たるものです。 ほかの言語の中にもこの特徴を持っているものがありますが、そこでは (クロージャー などの)他の名前がついています。 でも、ほとんどの有名なプログラミング言語にはないものです。 では、このクールな新しいこととはいったい何でしょう。 それは、コードのブロック を作って(doとendの 間のコードをこういいます。)、それをオブジェクトとしてくるんで (手続きオブジェクト(proc) と呼びます。)、変数に保存したり メソッドに渡したりして、それでもって、そのブロックの中のコードは好きな時に (何度でも)実行させることが出来るという能力です。 なので、この特徴はメソッドと似ているのですが、これがオブジェクトに付属しているものでは ないところが異なります(それ自身 がオブジェクトなのです
分散テスト実行システムRRRSpecをリリースしました | クックパッド開発者ブログ 公開したらいろいろ反応があって嬉しいのだけれども、ちょっと補足したいところもあったし、様々な事情により今書いてしまうのが妥当なので、個人の日記でポエムっぽく補足する。 名前 RRRSpecで「とりぷるあーるすぺっく」。 マシンのスケーリングについて 「なんとか理論」って書いているが、実際のところすごく活用しているわけでは全くない。専門の人からしたら小学生ですか〜と言われるレベルなので、お断りとして大学の学部生が教養で学ぶレベルという形になっている。 ただ、こういうスケーリングに関係するところで、初歩的な方法ではあっても"It works"な結果が得られているので、勝てば官軍、動けば正義なところはある。実際、オークションの値段を決めるのにも、いくらで入札するのか、いくらまでだったら値上げするのか、落札できな
2013年2月の Ruby 20周年にリリースされた安定版 2.0.0 のブランチメンテナとしてここ1年あまり活動してきましたが、Rubyアソシエーション様の 2014年度「Ruby安定版保守委託」の内容が 2.0.0 のメンテナンスとなっていますので[1]、4月からは 2.0.0 のメンテナを交代することになるかもしれません。わたしはRubyアソシエーションの中のひとではないので募集状況などどうなりそうなのか知らないので、たぶん、ですが。先日リリースした 2.0.0-p451 がわたしの手による 2.0.0 のパッチレベルリリースとしては最後のものになるかもしれません。その後もバックポートは続けてるのでまだ活動はしてますけどね。 またそうした状況は置いておくとしても、Ruby 2.0.0 のメンテナンスにおけるポリシーや、個々の事例についてわたしがどう考えて判断したのかについて書き残して
This is one of the final post leading up the the launch of the Build a Ruby Gem Ebook, which is now available for sale in 3 packages, including 14 chapters of code and over 2 hours of screencasts. The world isn’t black and white (as much as we’d like to believe it is). Just because our gem’s functionality may work for us, doesn’t mean it’ll work for everyone. Fortunately, we can give users the abi
JITコンパイルの生成元を、ASTからYARVインストラクションへ変更した話です。 JITコンパイルを行う元となる情報として、プログラムをパースした結果の構文木(AST)と、それをさらにコード化したYARVインストラクションがあります。今まではASTに基づいてCFGを生成していました。 ASTを使うことには、以下の利点があります。 安定している。文法が変わらない限り、ASTが変わることはあまりありません。YARVインストラクションは最適化の対象なので、いつ変更されるかわかりません。 生成されるCFGを最適化しやすい。YARVインストラクションはMRIの実行エンジンで効率的に実行できるように設計されており、JITコンパイラにとって最適とは限りません。ASTを直接変換した方が効率的なCFGを生成しやすいといえます。 疎結合。ASTは文法の表現であるという意味でYARVインストラクションより抽象
Ruby で非同期処理をするのに Sidekiq を使い始めた 基本的な使い方については Rails - sidekiqの使い方 - Qiita を見れば分かる 上記記事に書かれてないことについてつらつらと自分用にメモを残しておく いちいちワーカクラス書かないといけないの ActiveRecord と ActionMailer に便利メソッドが自動的に生える Delayed extensions · mperham/sidekiq Wiki スケジューリングしたい Scheduled Jobs · mperham/sidekiq Wiki 3時間後に実行したい場合こんな感じ MyWorker.perform_in(3.hours, 'mike', 1) MyWorker.perform_at(3.hours.from_now, 'mike', 1) どうせ Sidekiq のデーモン起動し
Rubyにはシングルトンメソッドと呼ばれる機能があります。これは、特定のオブジェクトにだけ実装されるメソッドのことです。 class User < Struct.new(:name, :age, :job) end charlie = User.new('Charlie', 12, :programmer) liz = User.new("Liz", 15, :teacher) dick = User.new("Dick", 31, :doctor) def charlie.passcode '22360679' end def liz.passcode '17320508' end charlie.passcode # => "22360679" liz.passcode # => "17320508" dick.passcode # => # ~> -:18:in `<main>':
「松浦亜弥」という人がいて僕の記憶の中でこの人はこの10年間はるな愛のものまねに代表されるキュートなアイドルだったんだけどふとしたキッカケからYOUTUBEで彼女が松たか子の「みんなひとり」を歌っているのを聴いてその歌の巧さに驚愕して他の歌もいろいろ聴いてみてその結論として彼女が「本物のシンガー」であることを確信するに至った。彼女の紡ぎだすひとつひとつの音が繊細さと力強さの間で絶妙に丁寧にコントロールされていてそれが全体として日本語の歌を説得力のある表現に昇華させる力につながって本当に素晴らしいと思った。興味を持って彼女のことを調べるともう10年も前から聴かせる歌を歌うようになっていて一方でここ数年はメディアの露出も大分減って27歳になって結婚もしてこの3月でファンクラブも終わるということを知った。彼女の歌の素晴らしさを今更知ったことを悔しく思うけどその一方で今それを知ることができて本当に
最近mrubyにコミットしているので自分の活動をまとめます。 mrubyを小さくした話 mrubyでは、文字列の扱いはシンプルにchar*を構造体でラップしていました。 struct RString { MRB_OBJECT_HEADER; mrb_int len; union { mrb_int capa; struct mrb_shared_string *shared; } aux; char *ptr; }; そのため1つの文字列毎に、構造体分と文字列分の2回のmalloc/freeが発生していました。 ここでCRubyのRStringを見てみます。 #define RSTRING_EMBED_LEN_MAX ((int)((sizeof(VALUE)*3)/sizeof(char)-1)) struct RString { struct RBasic basic; union {
Ruby版class Fib def self.fib n case n when 0 then 0 when 1 then 1 when 2..Float::INFINITY then fib(n - 1) + fib(n - 2) else raise TypeError, 'n' end end end puts Fib.fib 1 puts Fib.fib 3 puts Fib.fib 13 Rubyのcaseによるパターンマッチは強力ですね。 Elixir版defmodule Fib do def fib 0 do 0 end def fib 1 do 1 end def fib(n) when (is_integer n) and (n > 0) do fib(n - 1) + fib(n - 2) end end IO.puts Fib.fib 1 IO.puts Fib.f
Releases, Offers & More Be the first to hear about our newest content, best promotions and upcoming events. Plus get 25% off your next purchase. Newsletter Sign Up Download Accounts Your email address is your account identifier. You can create a password, or just download from the links sent via email. My Orders (Resend order emails) How We're Different Hands-on instructions Solutions to real-worl
rbdockというRuby/Rails/Sinatra用のDockerfileを生成するgemをつくった tcnksm/rbdock rbdock | RubyGems.org | your community gem host 実験的に作ってみた.RubyやRails,Sinatraアプリケーションを動かすためのDockerfileを生成する. これを作った理由は,今まで自分でRuby/Rails/Sinatraのコンテナを作ってみたり,Web上のRuby+Docker関連の記事などを見ていると,どれも同じようなDockerfileを書いていたため. さらに,Dockerの流れを見ていると, コンテナは必要なものだけを入れるようになりそう.つまり,RedisならRedisの,nginxならnginxの,RailsならRailsのコンテナをそれぞれ作るようになりそう. コンテナの起動やコン
Ruby の HTTP クライアントライブラリ Faraday が便利そう Ruby の HTTP クライアントライブラリ Faraday が便利そう API ラッパの開発には RestClient gem だとか OAuth の必要なものは Net/HTTP + OAuth gem を使ってた Twitter gem や Instagram gem など API ライブラリのソースを読んでみると Faraday gem というものがよく使われてた なんとなく気になったので Faraday について調べてみた ついでに Tumblife gem を Faraday を使うようにした 以下そのメモ Faraday って何? Faraday is an HTTP client lib that provides a common interface over many adapters (su
$ gem install faraday Successfully installed faraday-0.8.8 Parsing documentation for faraday-0.8.8 Installing ri documentation for faraday-0.8.8 1 gem installed require 'faraday' ROOM_ID = '<ここに2で取得したマイチャットIDを入れる>' # my chat CHATWORK_TOKEN = '<ここに3で取得したトークンを入れる>' conn = Faraday::Connection.new(url: 'https://api.chatwork.com') do |builder| builder.use Faraday::Request::UrlEncoded builder.use Farada
─ 問題1 ─ data.csvファイルには、5人のプレイヤー(Alice, Bob, Jimmy, Kent, Ross)が二種類のゲーム(gameA, gameB)をプレイした結果が次のような形で格納されている。各ゲームの平均点を求めよ。 data.csv player,gameA,gameB Alice,84.0,79.5 Bob,20.0,56.5 Jimmy,80.0,31.0 Kent,90.5,15.5 Ross,68.0,33.0 data = File.read('data.csv') headers, *scores = data.lines.map { |line| line.chomp.split(',') } scores # => [["Alice", "84.0", "79.5"], ["Bob", "20.0", "56.5"], ["Jimmy", "80
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く