chomp(rs = $/) -> String[permalink][rdoc][edit] self の末尾から rs で指定する改行コードを取り除いた文字列を生成して返します。ただし、rs が "\n" ($/ のデフォルト値) のときは、実行環境によらず "\r", "\r\n", "\n" のすべてを改行コードとみなして取り除きます。 rs に nil を指定した場合、このメソッドは何もしません。 rs に空文字列 ("") を指定した場合は「パラグラフモード」になり、実行環境によらず末尾の連続する改行コード("\r\n", "\n")をすべて取り除きます。 例 p "foo\n".chomp # => "foo" p "foo\n".chomp("\n") # => "foo" p "foo\r\n".chomp("\r\n") # => "foo" $/ = "\n" # デ
[edit] メタ文字列とリテラル、メタ文字とエスケープ 式展開 文字 任意の1文字 文字クラス 特別な文字列に対するマッチ 繰り返し キャプチャ グループ 部分式呼び出し(subexpression call) 選択 アンカー 条件分岐 オプション エンコーディング コメント フリーフォーマットモード 非包含オペレータ (absence operator) (実験的) 一覧 特殊変数 参考文献 正規表現(regular expression)は文字列のパターンを記述するための言語です。また、この言語で記述されたパターンも正規表現と呼びます。 正規表現を用いると、文字列が指定したパターンを含んでいるかどうかを判定し、また含んでいるならばそれが文字列中のどの場所であるかを知ることができます。 /pat/ %r{pat} などの正規表現リテラルや Regexp.new などで正規表現オブジェク
やりたいこと 複数のアプリケーションを一つのサーバで管理している場合に、同じ修正を複数のアプリケーションに行わないといけない場合がある。 その場合の一括文字修正の処理を書いてみました。 サンプルでは www 配下にある、****/app/views/tasks/index.html ファイルの中身の Time.now を Time.new.utc へ変換すします。 実行方法 # ruby replacement.rb dir_name で実行 # アプリケーションの設置ディレクトリの取得を行うクラス class FileGet attr_accessor :file_name attr_reader :dir_list def initialize(dir_name) @dir_list = get_dir(dir_name) @file_name = "/app/views/tasks/
テキストファイルから文字列を読み込むための基礎を解説。ファイル操作をブロックで記述する方法や、ファイルを開く際に「テキスト読み出し専用モード」でアクセスしたり文字コードを指定したりする方法、BOM付きファイルを処理する方法を説明する。 ← 前回 連載 INDEX 次回 → Rubyでテキストファイルを開くときには、アクセスモード(読み込み、書き込みなど)やエンコーディング(文字コード)の指定が必要である。また、ファイルから文字列の読み込みや書き込み(=入出力)の際には、全体を読み込むのか、行や文字ごとに読み込むのか、と考慮すべき事柄がたくさんある。全てを一度に学ぶのは大変なので、今回は、読み込み(入力)に絞り、基本的な方法を示す。さらに後日公開予定の「ファイルから1文字ずつ読み込む(入力する)には?」(次回)と「ファイルから1行ごと/段落ごと読み込む(入力する)には?」(次々回)で、読み込
readlines(rs = $/, chomp: false) -> [String][permalink][rdoc][edit] readlines(limit, chomp: false) -> [String] readlines(rs, limit, chomp: false) -> [String] データを全て読み込んで、その各行を要素としてもつ配列を返します。既に EOF に達していれば空配列 [] を返します。 テキスト読み込みメソッドとして動作します。 limit で最大読み込みバイト数を指定します。ただしマルチバイト文字が途中で切れないように余分に読み込む場合があります。 [PARAM] rs: 行の区切りを文字列で指定します。rs に nil を指定すると行区切りなしとみなします。空文字列 "" を指定すると連続する改行を行の区切りとみなします(パラグラフモード)
[edit] 要約 ファイルアクセスのためのクラスです。 通常 Kernel.#open または File.open を使って生成します。 IO クラスがインクルードしている File::Constants は File クラスに関係する定数を格納したモジュールです。また File::Stat は stat 構造体( stat(2) 参照)を表すクラスです。 目次 特異メソッド absolute_path absolute_path? atime basename birthtime blockdev? chardev? chmod chown ctime delete directory? dirname empty? executable? executable_real? exist? expand_path extname file? fnmatch fnmatch? ftype
2018/07/20: 公開 2020/11/04: 細部を更新 こんにちは、hachi8833です。BPS社内勉強会でのkazzさんのスライドを元にした記事をお送りいたします。 RubyのEnumerableのコレクション系メソッドのいくつかを合間合間に再実装しながら進める構成になっています。 ⚓ Rubyのforは原則使わないこと Rubyである程度書けるようになれば、ループでforを使う人はまずいないと思います。Rubyスタイルガイド↓でも「2-07【統一】forは原則使わない」とあります。 Rubyスタイルガイドを読む: 文法(2)アンダースコア、多重代入、三項演算子、if/unless # forの場合(まず使わない) list = (1..5).to_a.freeze for element in list puts "forによる表示: #{element}" end # e
=begin =end で囲まれた部分はコメントアウトされる。 一行コメントアウトは、 # # の後ろはコメントアウトされる。
この記事のサマリ ・Ruby1.9以降は、シンボルをキーとしてhashの宣言として、{key1: value1, key2: value2}といった記法が追加された(よくみかける) ・hashには、newするときにデフォルト値を設定できるが、デフォルト値は共有なので破壊的メソッドで破壊されると思わぬ動作になることがあるので注意しましょう。 背景 Rubyのhashについて、Ruby1.9以降は、シンボルを使ったhash用に新しいリテラルが用意されていて、railsでは当たり前のように使っているのですが、当たり前すぎるからか、ほとんど説明している記事がなかったので初歩的なhashs宣言方法という切り口でまとめました。また、デフォルト値を使っていて「あれ?」ってなったことがあったので備忘としてまとめておきます。 hashとは 任意のオブジェクトのインデックス(キーと呼びます)を使って、キーと値
gsub(pattern, replace) -> String[permalink][rdoc][edit] 文字列中で pattern にマッチする部分全てを文字列 replace で置き換えた文字列を生成して返します。 置換文字列 replace 中の \& と \0 はマッチした部分文字列に、 \1 ... \9 は n 番目の括弧の内容に置き換えられます。置換文字列内では \`、\'、\+ も使えます。これらは $`、$'、$+ に対応します。 [PARAM] pattern: 置き換える文字列のパターンを表す文字列か正規表現。文字列を指定した場合は全く同じ文字列にだけマッチする [PARAM] replace: pattern で指定した文字列と置き換える文字列 例 p 'abcdefg'.gsub(/def/, '!!') # => "abc!!g" p 'abcabc'.g
break, next, return next: 以降は実行せず、次のループを開始 break: ループを抜ける。 return: メソッドを抜ける JavaScriptでいうと、next は continue に相当。 return するとブロックを抜けて、メソッドも抜けることに注意。 def block_next puts '----' (1..5).each do |i| next if i % 3 == 0 puts i end puts 'end' end def block_break puts '----' (1..5).each do |i| break if i % 3 == 0 puts i end puts 'end' end def block_return puts '----' (1..5).each do |i| return if i % 3 == 0 p
sort_by -> Enumerator[permalink][rdoc][edit] sort_by {|item| ... } -> [object] ブロックの評価結果を <=> メソッドで比較することで、self を昇順にソートします。ソートされた配列を新たに生成して返します。 つまり、以下とほぼ同じ動作をします。 例 class Array def sort_by self.map {|i| [yield(i), i] }. sort {|a, b| a[0] <=> b[0] }. map {|i| i[1]} end end Enumerable#sort と比較して sort_by が優れている点として、比較条件が複雑な場合の速度が挙げられます。 sort_by を使わない以下の例では比較を行う度に downcase が実行されます。従って downcase の実行速度が
[edit] 要約 集合を表すクラスです。要素の間に順序関係はありません。 目次 特異メソッド [] new インスタンスメソッド & + - << == === ^ | add add? classify clear clone collect! delete delete? delete_if difference disjoint? divide dup each empty? filter! flatten flatten! include? inspect intersect? intersection keep_if length map! member? merge proper_subset? proper_superset? reject! replace reset select! size subset? subtract superset? to_a to_s un
Ruby For Beginners Ruby Monday Study Group curriculum for beginners This book has been written after we have run 4 beginners groups at our Ruby Monstas groups in Berlin, and it outlines the current state of our beginner groups curriculum. After completing this curriculum you’ll be able to read, understand, and write basic Ruby code yourself: You can use this knowledge to create small tools that mi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く