Ruby

制御構造内で配列からキーと値を抜き出す

配列からキーと値を抜き出すの解決例。 Enumerable - Rubyリファレンスマニュアル Integer - Rubyリファレンスマニュアル ソース array_sample.rb として保存。 counter = ['zero', 'first', 'second', 'third', 'forth', 'fifth'] # Enumerable クラスの ea…

配列からキーと値を抜き出す

制御構造だけで済ませる方法はないのだろうか? サンプル counter = ['zero', 'first', 'second', 'third', 'forth', 'fifth'] max_length = counter.length - 1 for i in 0..max_length puts "#{i}: #{counter[i]}\n" end 実行結果 % ./sample.rb 0: zero 1…

日付の比較

簡単な比較。 % irb irb(main):001:0> require 'date' => true irb(main):002:0> from = Date::strptime('2008-01-01', '%Y-%m-%d') => #<Date: 4908933/2,0,2299161> irb(main):003:0> to = Date::strptime('2008-01-02', '%Y-%m-%d') => #<Date: 4908935/2,0,2299161> irb(main):004:0> sametime = Date::strptime</date:></date:>…

“ハッシュ”のキーと値を配列に変換して同時に取得する

忘れやすいので備忘録として記載。 サンプル hash = {"Lemon" => 100, "Orange" => 150, "Banana" => 250} p hash print("\n") puts "キーのみを取得" key_array = hash.keys p key_array print("\n") puts "値のみを取得" value_array = hash.values p valu…

FreeBSD 7.0 に zipruby をインストールできない

# gem install zipruby Building native extensions. This could take a while... ERROR: Error installing zipruby: ERROR: Failed to build gem native extension. /usr/local/bin/ruby18 extconf.rb install zipruby checking for zlib.h... yes checking…

Windows に JRuby をインストールする

Java のインストールは必須なので、Java SDK の最新バージョンをインストールする。 JRuby の公式サイトから JRuby をダウンロードするWindows なら zip アーカイブが無難。 JRuby の圧縮ファイルを展開したら、適当なディレクトリに移動させる。今回は「C:\…

Ruby で月末日付を取得する

$ irb irb(main):001:0> require 'date' => true irb(main):002:0> day = Date.new(2008, 2, -1) => #<Date: 4909051/2,0,2299161> irb(main):005:0> p day.to_s "2008-02-29" => nil irb(main):006:0> p day.strftime("%D") "02/29/08" => nil irb(main):007:0> p day.strftime("%d") "</date:>…

実行中のスクリプトのディレクトリを取得する

p File.expand_path(File.dirname($0)) #=> 実行中のスクリプトのパス もしくは p File.expand_path(File.dirname(__FILE__)) #=> 実行中のスクリプトのパス $0 は実行時のスクリプトのファイル名組み込み変数 __FILE__ は実行時のスクリプトのファイル名変…

Ruby で zip 圧縮をする

必要なもの Rubygems zipruby zlib1.dll (Windows 版 Ruby を利用している場合) zipruby をインストールする # gem install zipruby zlib1.dll を入手する(Windows 版 Ruby のみ) 入手先 zlib Home Site の zlib compiled DLL をダウンロードする。zlib comp…

require がロードするファイルを探すパスに追加をする

$ ruby -I /the/path/you/wanna/add test.rb それか PATH に直接追加してしまうか。 $ export RUBYLIB=/the/path/you/wanna/add $ ruby test.rb もしくは、ruby スクリプト中で $LOAD_PATH.push('/path/to/dir') で追加できる。

Ruby で全角英数字を半角英数字に変換する

全角英数字だけではなく、半角カタカナなど文字種の揺れを修正したい。 Moji モジュールを利用してみる。 namespace gimite Ruby小物集 Moji モジュール サンプル Windows XP 上で実行。文字コードを変換しているのは、コマンドプロンプトに実行結果を表示さ…

マルチバイトの全角半角変換について

最初は下記の内容で、全角半角を変換しようと思ったが、失敗した。 require 'kconv' str = 'abcあいうえお' str = str.tr('a-zA-Z', 'a-zA-Z') print str.tosjis しかし、結果は文字化けしてしまう。 下記のサイトを参考にしたおかげで、変換できた。 $K…

Windows 版 Ruby の open-uri に POST メソッドを使えるようにする patch を当てる

参考したリンクは下記のとおり。 open-uriは便利だがGETしかできないので何とかする話 Make open-uri capable of handling HTTP methods other than GET 元に戻したくなったら、バックアップされたopen-uri.rb.origがあると思うので、そいつでopen-uri.rbを…

Ruby で自家製スクリプトを書く 12

クラス化して、SQL 分を書き出す箇所をメソッドにすれば、いろいろと応用ができそう。

Ruby で自家製スクリプトを書く 11

SQL 文に接尾辞を追加した場合に対応させる まずは、接尾辞がない場合の出力結果を確認する。 config.yaml filename: csv: sample.csv sql: sample.sql encoding: output: UTF-8 input: Shift-JIS csv: fs: ', ' quote: '"' headers: false fields: - number…

Ruby で自家製スクリプトを書く 10

CSV から特定のフィールドを抜き出し、SQL 文を生成する config.yaml filename: csv: sample.csv sql: sample.sql encoding: output: UTF-8 input: Shift-JIS csv: fs: ', ' quote: '"' headers: false fields: - number: 2 # CSV のフィールドの番号 name: …

Ruby で自家製スクリプトを書く 09

CSV から特定のフィールドのみを出力する config.yaml filename: csv: sample.csv sql: sample.sql encoding: output: UTF-8 input: Shift-JIS csv: fs: ', ' quote: '"' headers: false fields: - number: 2 # CSV のフィールドの番号 - number: 3 - number…

Ruby で自家製スクリプトを書く 08

読み込んだ CSV を保存する SQL ファイル名でそのまま保存する csv2sql.rb #!/bin/env ruby $KCODE='utf8' require 'yaml' require 'kconv' require 'rubygems' require 'fastercsv' config_file = 'config.yaml' configs = YAML.load_file(config_file) def…

Ruby で自家製スクリプトを書く 08

openfile.rb と read_yaml.rb の機能を合わせる 読み込み元の CSV と出力先の SQL の設定を追加する。 config.yaml filename: # 保存する CSV のファイル名 csv: sample.csv # 保存する SQL ファイル sql: sample.sql encoding: output: UTF-8 input: Shift-…

Ruby で自家製スクリプトを書く 07

YAML を読み込んだ実行結果を表示させる。 config.yaml encoding: output: UTF-8 input: Shift-JIS csv: path: sample.csv # 「,」の後ろに半角空白が入力されている。 # シングルクォーテーションで囲まないとエラーが出るため、 # シングルクォーテーショ…

Ruby で自家製スクリプトを書く 06

FasterCSV に初期設定を行うように修正を行う #!/bin/env ruby $KCODE='utf8' require 'kconv' require 'rubygems' require 'fastercsv' csv = 'sample.csv' # CSV ファイルの文字コード input_char_encoding = 'Shift-JIS' # SQL 文を保存するファイルの文…

Ruby で自家製スクリプトを書く 05

FasterCSV の初期設定 DEFAULT_OPTIONS = { :col_sep => ",", :row_sep => :auto, :quote_char => '"', :converters => nil, :unconverted_fields => nil, :headers => false, :return_headers => false, :header_converters => nil, :skip_blanks => false,…

Ruby で自家製スクリプトを書く 04

FasterCSV を配列に格納する #!/bin/env ruby $KCODE='utf8' require 'kconv' require 'rubygems' require 'fastercsv' csv = 'sample.csv' # CSV ファイルの文字コード input_char_encoding = 'Shift-JIS' # SQL 文を保存するファイルの文字コード output_c…

Ruby で自家製スクリプトを書く 03

CSV 解析に fastercsv を使う。 理由は下記の通り。 FasterCSV のベンチマーク Rubyの標準添付CSVパーサーが遅い Ruby標準csv遅い インストールは gem で行う。 # gem install fastercsv FasterCSV のドキュメントは下記のリンクから参照できる。 FasterCSV …

Ruby で自家製スクリプトを書く 02

文字コードを変換させる 読み込みもとの CSV ファイルと出力先の SQL ファイルの文字コードが一致しない場合、文字コードを変換させる処理を行う。 fileopen.rb #!/bin/env ruby $KCODE='utf8' require 'kconv' csv = 'sample.csv' # CSV ファイルの文字コー…

Ruby で自家製スクリプトを書く 01

CSVを読み込んでみる sample.csv "1", "myname", "myaddress", "123-4567" "2", "yourname", "youraddress", "890-1234" "3", "hisname", "hisaddress", "" "4", "hername", "heraddress", "A56-7890" fileopen.rb #!/bin/env ruby $KCODE='utf8' csv = 'sam…

Ruby で自家製スクリプトを書く

目的 CSV ファイルから目的のデータを抽出し、SQL を作成する。 欲しい機能 設定ファイルの見通しを良くする CSV を読み込む CSV ファイルをパースする CSV から特定のデータだけを抜き出す 特定のデータの型を確認する CSV ファイルからSQLを生成する CSV …

Pragger のプラグインの argv.rb の挙動について

例えば、 ./pragger abcd 1234 efgh 5678 と実行した場合、 p ARGV #=> ["abcd", 1234, "efgh", 5678] 独自の YAML を利用した場合だと ./pragger -c myconfig.yaml abcd 1234 efgh 5678 ARGV は p ARGV #=> ["abcd", 1234, "efgh", 5678] となる。

Rails とテスト

RubyOnRails を使ってみる【第 6 回】テストの書き方

Rails のパフォーマンスについて書かれているリンク

RubyOnRails を使ってみる【第 10 回】パフォーマンスチューニング 優しいRailsの育て方 運用サーバ速度比較 Ruby on Railsのパフォーマンス向上に関する10のtips Railsでのパフォーマンスチューニング Railsで開発するときにはキャッシュを予め想定に入れて…