酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Praggerを使ってdateに格納されたURLを保存する

モジュール名の決め方がかなり適当なので、良い感じの名前を考えないと。というかこれ位なら標準のモジュールを使えば出来そうな気がする……。

=begin
* save_string
dateに格納されたURLを保存する

** 解説
dateに格納されたURLをc:/example_picture/に保存する

- module: save_string
  config:
   path: 'c:/example_picture/'

** 使い方
- module: send_gmail
  config:
   path: 保存するファイルパス

** 更新履歴
- 2009/09/25 ver1.1 CH3COOH (http://d.hatena.ne.jp/ch3cooh393/) 
  URLにクエリが付いていたら落ちる不具合の修正
- 2009/09/21 ver1.0 CH3COOH (http://d.hatena.ne.jp/ch3cooh393/)
=end

require 'open-uri'
require 'uri'

def save_string(config, data)

  # config周りの代入
  path = config['path']

  # 文字列の場合は配列に格納し直す
  if data.class == String
    bodies = [data]
  elsif data.class == Array
    bodies = data
  else
    return false
  end

  # 配列の要素毎に送信処理を行う
  bodies.each do |url|
    
    # URLからファイルパスを生成
    uri = URI.parse(url)
    filename = path + File.basename(uri.path)
    print filename + "\n"

    open(filename, 'wb') do |file|
      open(url) do |data|
        file.write(data.read)
      end
    end
  end
end