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

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

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

Array に保持している内容をファイルに書き出す module を作成しました。

前回作成した ファイルを読み込んでその内容を保持する と対になる処理なので、やはり class にしたほうが良かったかもしれないなぁと思っています。

Gist にも登録済みです。

#! ruby
#-*- encoding: utf-8 -*-

module FileWriter
  LINEFEED_CODE_LF = "\n"

  def write(path, content, linefeed_code = nil)
    file = File.open(path, "w")
    content.each do |line|
      if linefeed_code == nil
        file.write(line)
      else
        file.write(line + linefeed_code)
      end
    end
    file.close
  end
end

if __FILE__ == $0
  require 'test/unit'
  require './array-to-tempfile'

  class FileWriterTest < Test::Unit::TestCase
    include FileWriter
    include ArrayToTempfile

    def test_write
      content = ["line1", "line2", "line3"]
      path = get_tempfile_path
      write(path, content)

      File.open(path, "r") do |file|
        file.each do |line|
          assert_equal(content.join, line)
        end
      end
    end

    def test_write_with_linefeed_code
      content = ["line1", "line2", "line3"]
      path = get_tempfile_path
      write(path, content, FileWriter::LINEFEED_CODE_LF)

      File.open(path, "r") do |file|
        file.each_with_index do |line, index|
          assert_equal(content[index] + FileWriter::LINEFEED_CODE_LF, line)
        end
      end
    end
  end
end

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

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

Googleアドセンス用(PC)

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

関連記事

no image

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

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

記事を読む

no image

プログラミングの「面倒くせー」を減らす試み

プライベートで書くコードや、ちょっとしたスクリプトなんかは Ruby で書くようにしていますが、どう

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

icatch_100612765-resized

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

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

記事を読む

icatch_474695210-resized

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

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

記事を読む

icatch_12845006573-resized

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

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

記事を読む

no image

with_index メソッド

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

記事を読む

no image

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

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

記事を読む

icatch_4081722858-resized

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

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

記事を読む

Googleアドセンス用(PC)

Message

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


6 − 二 =

次の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 ↑