うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

ruby

第1章 ゼロからデプロイまで | Rails チュートリアルを学ぶ

改めて、Railsについて深く学びたいと思った。本格的なアプリが作りたい。 というわけで、railチュートリアルの1章を行う。 第1章 ゼロからデプロイまで | Rails チュートリアル 以下、作業メモ。 Ruby on Railsチュートリアルで開発するアプリケーションで…

【Rails】ActiveRecordのオブジェクトをハッシュにする

メモ。 かなり簡単でした。 PersonというActiveRecord::Baseを継承したモデルがあるとして、以下でHashのArrayにできます。 Person.all.map{ |p| p.attributes }

言語別Sprintfのまとめ

研究で実験をしていると、ファイル名を連番で出力したいという時が良くあります。 連番をtest1, test2, ..test10などとすると、ファイル名でソートすると、都合よくソートされないんですよね (test1 test10 test2の順になる) ファイル名でソートした時にうま…

Wikipediaのデータをダンプしてスクレイピングする方法(スクレイピング編)

前回、Wikipediaの全ページをダンプする手順を書きました。今回は、調べたいページ本文をだして、実際にスクレイピングしてみる。とりあえず、「静岡県出身の有名人一覧」から有名人の名前だけ取り出してみる。これを応用すれば、何かの一覧ページだったら同…

railsインストール時にnokogiriのインストールでエラーになった時の対処

MacのOSをYosemiteにアップグレードした時に、ファイルが壊れてしまったのでもういちどrailsをインストールしましたorz。その時にgemのnokogiriがインストールできず、困ってました。 こんなコマンドを打ちましたが無理。 sudo gem install nokogiri -- \ --…

nokogiri.rbの使用方法をまとめた

nokogiri.rbの主な使用方法のまとめです。 # htmlをデータ抽出用のNokogiriオブジェクトに変換 doc = Nokogiri::HTML.parse(open("http://www.google.com/search?q=ruby&hl=ja")) # CSSセレクタ # ※CSSセレクタを使用すれば、任意の要素を抽出できます。 # X…

nokogiri.rbでgoogle検索結果の一覧表示

nokogiri.rbの主な使用方法のまとめです。 ############################## ### Nokogiriオブジェクト ############################## # htmlをデータ抽出用のNokogiriオブジェクトに変換 doc = Nokogiri::HTML.parse("<h1 id='title'><a href='http://konbu13.hatenablog.com/'>プログラミングのメモ</a></h1>") # webページ…

mac OSX 10.9.4でスクレイピング用gem Nokogiri.rbのインストールでつまった

スクレイピングに興味があり、rubyで気軽に試してみようと思いました。 スクレイピングで、Web上のHTMLの必要部分を切り抜いて多種多様に利用することができます。 例えば、私が作ったのですと、定期的に人気曲のランキングサイトに行ってランキング部分だけ…

rubyでクロールしてみたいので数分でやってみた

Anemoneつかうと簡単にできるそう。 Anemone gem (ruby) で指定したURLだけクロールする方法 - Qiita インストール。 gem install anemone 使ってみます。このブロクのアーカイブをみてみるテスト… (参考ページとほとんどコード変えてませんが。) # -*- codi…

rubyで今日からi日離れた日付を取得

Rubyで今日の日付を得るには、Time.now()をすればいけます。 この値はある時点から何秒立ったか、を示しています。つまり、単位は秒です。 ですので、ここからi日分をだすには、一日分の秒*iをすればいいというわけです。 rubyで今日からi日ずれた日付を出力…

RubyでRangeから配列を作る

Rangeを使って配列を作る方法。 [*5..10] (5..10).to_a Array(5..10)

rubyの外部ファイルロードの方式2つの違い

rubyでは、require ”ファイル名”やload "ファイル名"で外部ファイルを読み込むことが出来ます。ここでは、requireとloadの違いを述べます。 簡単な違い: requireはrb,so,dllなどの拡張子のファイルを記述できる loadはrbファイルのみ記述できる また、細か…

rubyのクラス定義の文法をまとめた

rubyのクラス定義の方法をまとめました。 クラスの定義 以下のようにします。 class Rect # クラス定義 @height = 0 # インスタンス変数 @width = 0 @@HeightMax = 320 # クラス変数 @@WidthMax = 320 def initialize(height, width) # クラスメソッド @heig…

rubyのアンダーバー区切りで数字をみやすく

Rubyの小ネタ。rubyでは、長い桁の数値を書くとき、数値内にアンダーバーを入れて桁を見やすくすることが出来ます。 例 p 123_456_789 # => 123456789 参考 Ruby基礎文法ひとめぐり - No Programming, No Life

Emacsでrubyを開発するときの便利なツール

Emacsでrubyを快適に書くために、いろいろ調べたので紹介します。 ruby-block endの部分に該当するブロックをハイライトしてくれます。 ダウンロード先→ EmacsWiki: ruby-block.el 設定 (require 'ruby-block) (ruby-block-mode t) (setq ruby-block-highlig…

Rubyで全角半角を判定

正規表現を利用して、文字列に半角文字が存在するか、全角文字が存在するかを判定します。 半角文字が含まれるか判定 str =~ /[ -~。-゚]/ 半角スペースからチルダ(-~)までがASCII。。-゚には半角カタカナも含まれています。 例えば下のようにマッチさせることが…

RubyでPOSIX 文字クラスを利用して見やすい正規表現に

POSIX 文字クラスと呼ばれるクラスを正規表現で利用できます。 これらのクラスは英字のみ、や英数字のみ、などの正規表現を名前付けして、わかりやすい正規表現にしたものらしいです。(参考:正規表現) 表現形式は、例えば、英字ならば[:alpha:]のように、[:…

rubyで文字列の先頭に文字を追加するやりかた

文字列の先頭に文字挿入、つまり "a" -> "bcd" => "abcd" ということをやりたいのですが、ネタでいろいろ考えてみました。 というか、気づいてみれば考えるまでもなかったもののはずが、 無駄に悩んでしまいました…。 # 先頭に文字列追加 この方法でOK s = "…

rubyを最低限使いたい人のための1分基本文法

最低限、簡単なアルゴリズムが書けるぐらいの文法をおさらい。ほんとに最低限です。 コメント # ここにコメントを書く。 プリント文 puts 1 (p や print もありますが、pは日本語でutf-8だとうまく表示されない、printは改行出力してくれない、という理由でp…

rubyで降順forループを実現する

rubyでは、cとかの降順にインデックスを走査する for (i = n - 1; i > 0; i--) printf("%d", i) ってどうやるの、と思い、考えて見ました。 ベスト? (n-1).downto(0).each { |i| p i } (0..(n-1)).to_a.reverse_each { |i| p i } 2017/01/26 追記 ご指摘いた…

rubyの正規表現を使って文字列の場合分け

正規表現を勉強しています。簡単ですが、pythonのisdigitメソッドみたいに、 文字列が英単語であるか?であったり、数字か?などを判定する関数を作ってみました。 # 頭文字が大文字、ほかは小文字の単語 def capitalize?(s) (s =~ /^[A-Z][a-z]*$/) == 0 end …

rubyでファイルリードをたった1行で実現!

ruby使うとファイルの読み込みも1行で実現できてしまう。さすがrubyですね。 s = read(path) 単なる文字列ではなく、ファイルの各行を配列に収めたい場合は次のようにします。 lines = [] open(pathStr, "r").each { |line| lines << line }.close readline(…

rubyで正規表現にマッチした文字列部分だけを消す方法

ある文字列から正規表現に一致した部分文字列を見つけることは多くありますが、逆に、一致した部分を抜いた文字列を作るにはどうしたらいいでしょう。 自分の見つけた方法では、gsub()を使えば可能です。 例 p "ab%c$de f".gsub(/[%$\s]/, "") 出力: "abcde…

ruby入門しました

Ruby 2.0.0を使っています。最近はずっと文法習得をネットサーフィンしながら身につけているところです。 Rubyでは、クラスの中にクラスを定義したり、メソッド内にローカルメソッドを定義することも出来ます。 関数型言語っぽい書き方もできるし、無名関数…