ruby

bundlerの疑問点とか色々メモ

bundlerのgemのインストール先ってどこ? 普通は、rvm等で標準で指定されている場所 bundle show ${gem名} path オプション で格納先を変更できる bundle install --path vender/bundle Gemfile.lockって何? 初回の bundle install で生成される 全ての開発環…

Bundlerの公式のトップページを読んでみた

元記事 Bundler: The best way to manage a Ruby application's gems What is Bundler? It tracks an application's code and the rubygems it needs to run, それは、アプリケーションコードと、rubygemsが動くのに必要なものを監視するよ track : たどる、…

Redcarpet を使って ruby で Markdown テキストを書いてみる

Redcarpet https://github.com/vmg/redcarpet/ インストール rvmsudo gem install redcarpet 試してみる require 'rubygems' require 'redcarpet' markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :fenced_code_blocks => true) puts markdown…

カニ本読書メモ 1章:テストでコードを駆動する

Rubyベストプラクティス -プロフェッショナルによるコードとテクニック作者: Gregory Brown,高橋征義,笹井崇司出版社/メーカー: オライリージャパン発売日: 2010/03/26メディア: 大型本購入: 9人 クリック: 307回この商品を含むブログ (47件) を見る でかい…

カニ本読書メモ 2章:美しいAPIを実装する

コードの共通化する時のコツの学べる本はないか? と、相談した時にお勧めされたので読んでみましたRubyベストプラクティス -プロフェッショナルによるコードとテクニック作者: Gregory Brown,高橋征義,笹井崇司出版社/メーカー: オライリージャパン発売日: 2…

rubyでRailsなしでActiveRecordを使う

DBの環境 Homebrewで構築した、ローカルのMySQL5.1 macportsからHomebrewに乗り換えてMySQL5.1をインストールするまでの流れ - かせいさんとこ テーブルはこんな感じのを用意 CREATE TABLE stations (name CHAR(255), info TEXT, FULLTEXT(info) WITH PARSER…

MacPortsで、mecabと、mecab-rubyのインストール

色々手間だったので記録 mecab のインストール $ sudo port install mecab 入った $ port installed | grep mecab mecab @0.994_0+ipadic (active) mecab-base @0.994_0 (active) mecab-ipadic @2.7.0-20070801_0 (active) $ mecab -v mecab of 0.994 mecab-…

rubyで、インスタンス変数を外部からいじくるメソッドいろいろ

よく忘れるのでメモ instance_variable_set で格納 instance_variable_get で取得 instance_variable_defined? で存在確認 instance_variables でインスタンス変数の一覧を取得 サンプルコード class Test end test = Test.new # 存在確認 p test.instance_v…

2バイト文字を含む文字列の文字数をカウントしたい

1.8なら、 str.split(//).size を使う 1.9の場合、そのまま .size で2バイト文字を考慮した文字数が得られる サンプル str = "あああABCいいいい" p str.size # <- 1.8ならば、24。 1.9ならば、10 p str.split(//).size # <- 10

rubyでmap_with_indexとかやりたい

よく忘れるのでメモ ruby-1.8.7-p174 :001 > a = %w(a b c d e f g) => ["a", "b", "c", "d", "e", "f", "g"] ruby-1.8.7-p174 :002 > a.each_with_index.map{|v, i| "#{i}: #{v}"} => ["0: a", "1: b", "2: c", "3: d", "4: e", "5: f", "6: g"] ruby-1.8.7…

Ruby on Rails3 アプリケーションプログラミング の読書メモ 4章 4章: ビュー開発

4.1: フォーム関係のビューヘルパ HTML5対応のビューヘルパは、以下の通り email_field telephone_field number_field range_field search_field url_field 非対応ブラウザだと、テキストフィールドになる form_tag, form_for フォーム生成用のタグは2種類 f…

Ruby on Rails3 アプリケーションプログラミング の読書メモ 3章 Scaffolding機能によるRails開発の基礎

読みはスキャフォールディング CRUD機能を簡単に実現できる create, update, read, delete CRUDって何? すべてのアプリケーションは、一つの目的を持っている。ビジネスオブジェクトを支ることだ。(Maintaining business objects) 基本的に、フォームやリス…

Ruby on Rails3 アプリケーションプログラミング の読書メモ 2章 Ruby on Rails の基本

マジックコメント # coding: utf-8 ruby1.9の機能だった気がする ジェネレータ $ rails generate controller コントローラ名 アクション名1 アクション名2 ... -f 上書き, -s 上書きしない アクションがない場合、railsはいきなりviewを呼びだす 空のアクシ…

Ruby on Rails3 アプリケーションプログラミング の読書メモ 1章 イントロダクション

バージョン情報 Ruby 1.9.2-p180 Ruby on Rails 3.0.5 SQLite 3.7.5 1章 イントロダクション 1.1 Railsというフレームワーク 設計哲学 DRY(Don't Repeat Yourself) 同じ記述を繰り返さない CoC(Conversion over Configuration) 設定よりも規約 ライブラリ構…

Ruby on Rails3 アプリケーションプログラミング の読書メモ 目次

Ruby on Rails 3 アプリケーションプログラミング作者: 山田祥寛出版社/メーカー: 技術評論社発売日: 2011/05/12メディア: 大型本購入: 27人 クリック: 664回この商品を含むブログ (41件) を見る 基礎固めの為に読んだので、忘れない内に記録 基本的には自分…

rspec-rails で良く使う割に覚えづらいCSSセレクタと、without_tag の話

忘れるのでメモ nth-of-type(n) n番目の要素にヒット ul, li とか、順番の確認が必要なヘルパのチェックに使う :not([属性]) 指定した属性を持たない要素にヒット option タグの selected を持たない要素の確認に使う 例 subject.should have_tag('select') …

重複を許可する配列の組み合わせを返す

Array#combination だと、重複は許可されないので自作 仕様 サイズn の重複を許可した組み合わせを返す 同一値の重複は許可するけど、順序が異なるだけの組み合わせは返さない [1,1,2] があったら、[1,2,1]や、[2,1,1] は返さない コード class Array def du…

シンボリックリンクと相対パス の組み合わせでハマったこと

例えばこんなディレクトリ構成があるとします tmp / c ( a/b へのシンボリックリンク) | / 01.txt ( "tmp/01.txt" ) | +- a / 01.txt( "tmp/a/01.txt" ) | +- b / 01.txt( "tmp/a/b/01.txt" ) んで、シンボリック c から、tmp/01.txt を読み込みたいので、以…

Enumerable.select を知らなかった話

こんなソースを何回か書きまして、絶対にもっと簡単な方法があるよなー と、思ってたらありました 悪い例 def func(array) result = [] array.each do |val| # 何かしらの条件を満たした場合のみ、valを加工して、resultに格納 if … result << 〜 end end re…

privateのクラスメソッドをスタブにすると、そのメソッドをSpec上で呼び出すときに、undefined method になる

原因は不明 本体 class Test def self.foo var + 'bbb' end def self.var 'aaa' end private_class_method :var end テスト require 'test.rb' describe Test do it 'foo' do #Test.should_receive(:var).and_return('ccc') Test.stub!(:var).and_return('cc…

継承, mix-in, include, extend について覚え書き

継承 rubyでは単一継承のみ 多重継承は、mix-in(後述)という概念で対応している class SuperClass def super_say p "super_hello" end end class SubClass < SuperClass def sub_say p "sub_hello" end def super_say p "sub_super_hello" # 親クラスのメソ…

RSpec について勉強したまとめ

これは何? 会社で RSpec を使った、BDD を行っているのて理解の為にまとめてみました RSpecってんなんぞ?? 一言でいうと、BDD の為の DSL 日本語でおk DSL ドメイン固有言語 やりたい事に特化した言語 今回の場合は、BDD に特化した言語(実際には、gem を使…

DELL INSPIRON Mini12 に rails1.2.6 を入れるまでの話

これは何? DELL INSPIRON Mini12 の ubuntu モデルに rails.1.2.6 を入れるまでの苦戦のメモです Railsの勉強用に環境を構築しようとして、解説書が1.2系の話の為にRails1.2.6を入れざるを得なくなった人の為に mysqlのインストールでハマる! まずは、Rails1…

RailsによるアジャイルWebアプリケーション開発第二版を勉強するの巻(第2回:5章〜6章の途中まで)

これは何? RailsによるアジャイルWebアプリケーション開発 第2版作者: Dave Thomas,David Heinemeier Hansson,Leon Breedt,Mike Clark,Andreas Schwarz,James Duncan Davidson,Justin Gehtland,前田修吾出版社/メーカー: オーム社発売日: 2007/10/26メディ…

RailsによるアジャイルWebアプリケーション開発第二版を勉強するの巻(第1回:1〜4章)

これは何? RailsによるアジャイルWebアプリケーション開発 第2版作者: Dave Thomas,David Heinemeier Hansson,Leon Breedt,Mike Clark,Andreas Schwarz,James Duncan Davidson,Justin Gehtland,前田修吾出版社/メーカー: オーム社発売日: 2007/10/26メディ…

ニコニコ動画のデイリーランキングをblogに自動投稿するBot NicoNicoDailyReportを作った

NicoNicoDailyReport http://niconicodailyreport.blog81.fc2.com/ これは何? ニコニコ動画のデイリー総合再生ランキングを収集して、自動生成されるblogです 1位〜10位までの動画と、毎時ランキング収集Bot(ニコニコ動画の毎時ランキングをつぶやくtwitter…

岩波書店の「今日の名言」をPOSTするtwitterBot IwanamiQuote を作った(ソースコード付き)

IwanamiQuote http://twitter.com/IwanamiQuote これは何? 岩波書店の今日の名言を1日1回POSTするtwitterBotです 1日1回しかPOSTしないのでtwitterで見るより、RSSreaderで見たほうが良い感じです 経緯 今日の名言を見たいけど、毎日見に行くのは面倒なので…

ソースファイルがあるディレクトリをカレントにする方法

まずはソース p Dir.pwd p File.expand_path(__FILE__) cuDir = File.expand_path(__FILE__).sub(/[^\/]+$/,'') p cuDir Dir::chdir(cuDir) p Dir.pwd /home/kasei-san/workで実行すると… %ruby /home/kasei-san/rabo/test/test.rb "/home/kasei-san/work" "…

ニコニコ動画の毎時ランキングをつぶやくtwitterBotを作った

NicoHourlyRank http://twitter.com/NicoHourlyRank これは何? twitterBotの習作に、ニコニコ動画の毎時ランキングをつぶやくBotを作ってみました 毎時15分あたりに更新します 経緯 更新頻度が高いけど、毎回チェックしたり、RSS取ったりする程ではないモノ…

scRUBYt!をさくらのサーバに導入しようとしたら死ぬほど面倒くさい目に合ったでござるの巻

注意 長文ですよ! 必要な部分だけ読んで帰るといいと思います これは何? さくらインターネットのレンタルサーバに、scRUBYt!を導入して遊ぶにあたって苦戦したところのメモ書きです 同じ目で苦労している全ての人へ! scRUBYt!って? rubyのwebスクレイパ…