ファイルを読み込んでその内容を保持する

公開日: : 最終更新日:2014/01/26 Ruby

Ruby で書いたスクリプトを module 化していく試みの一貫です。

ファイルを読み込んで、その内容を Array に保持する module を作成しました。こういうのは module ではなく class のほうが使いやすいかもしれませんが、今のところこれで充分なのでこういうコードになっています。

Gist に登録済みです。

#! ruby
#-*- encoding: utf-8 -*-
 
module FileReader
  DELETE_LINEFEED_CODE = true
  KEEP_LINEFEED_CODE = !DELETE_LINEFEED_CODE
 
  def read(path, delete_linefeed_code = true)
    content = Array.new
    File.open(path, "r") do |file|
      file.each do |line|
        content.push(line) unless delete_linefeed_code
        content.push(line.chomp) if delete_linefeed_code
      end
    end
    return content
  end
end
 
if __FILE__ == $0
  require 'test/unit'
  require './array-to-tempfile'
 
  class FileReaderTest < Test::Unit::TestCase
    include FileReader
    include ArrayToTempfile
 
    def test_read
      # setup
      expected = ["line1\n", "line2\n", "line3\n"]
      write_array_to_tempfile(expected)
 
      # exercise
      actual = read(get_tempfile_path, FileReader::KEEP_LINEFEED_CODE)
 
      # verify
      assert_equal(3, actual.size)
      assert_equal(expected, actual)
      expected.each_with_index do |element, index|
        assert_equal(expected[index], actual[index])
      end
 
      # teardown
      delete_tempfile
    end
 
    def test_read_delete_linefeed_code
      #setup
      content = ["line1\n", "line2\n", "line3\n"]
      write_array_to_tempfile(content)
      expected = ["line1", "line2", "line3"]
 
      # exercise
      actual = read(get_tempfile_path)
 
      # verify
      assert_equal(3, actual.size)
      assert_equal(expected, actual)
      expected.each_with_index do |element, index|
        assert_equal(expected[index], actual[index])
      end
 
      # teardown
      delete_tempfile
    end
  end
end

ちなみに、Ruby のバージョンは次の通りです。

$ ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [i386-cygwin]

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

icatch_100612765-resized

CentOSのバージョン6.5(64ビット)にRuby2.1.2をインストールする

2014/08/10 時点での最新安定版である Ruby 2.1.2 をインストールしてみたので、そ

記事を読む

no image

amazon-ecs を使って Amazon から関連商品情報を取得するサンプル

次のサンプルスクリプトを書いたが、これに続くもの。 amazon-ecs を使って Amazon

記事を読む

icatch_12845006573-resized

CentOSのバージョン6.5(64ビット)にamazon-ecsをインストールする

Amazon の Product Advertising API を使う作業があったので、Produ

記事を読む

no image

配列の内容をファイルに書き込む

Ruby で書いたスクリプトを module 化していく試みの一貫です。 Array に保持してい

記事を読む

no image

Redcarpet を使って Markdown をパースする

Ruby から Redcarpet を使って Markdown をパースしてみた。 せっかくなので

記事を読む

no image

VPS に Nokogiri をインストールしたときのトラブル

Bundler を使って Nokogiri をインストールしようとしたが、次のようにエラーメッセージ

記事を読む

icatch_4081722858-resized

CentOSにRubyのBundlerをインストールして使い始める人向けの簡単なまとめ

Bundler を使ってないと環境を移したときに面倒だってことが身に染みて分かったので Bundle

記事を読む

no image

amazon-ecs を使って Amazon から商品情報を取得するサンプル

次の仕事で使うことになるかもしれないので、どんなことができるのか調査したときに作成したスクリプト。

記事を読む

no image

with_index メソッド

with_index というメソッドを知ったのでメモ。どういうときに使うかのサンプルを載せておく。

記事を読む

icatch_474695210-resized

amazon-ecsを使った検索のエラー原因を確認する

Amazon が提供しているサービス Product Advertising API を手軽に扱える

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


+ 八 = 9

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑