はじめに
下書きがいっぱいになった&公開したら良いじゃんというのをうけ公開する。
Railsの方のメモと結構ごちゃごちゃになってる
http://qiita.com/uchiyu/items/ed1dfe20fd9745268010
メモなので新しいことがあると更新していく
CarrierWave
画像保存用のgem
主な使われ方は、viewから画像をアップロードして保存する。
今回は、ファイルを一度ローカルにrubyscriptで保存した後、
そのファイルを開いて保存した。
一度、仮で保存したファイルはCarrierWaveで再保存する際に勝手に消してくれる。
デフォルトの画像の保存場所は、public/uploads
下
u = User.new
u.avatar = params[:file] # Assign a file like this, or
# like this
File.open('somewhere') do |f|
u.avatar = f
end
u.save!
u.avatar.url # => '/url/to/file.png'
u.avatar.current_path # => 'path/to/file.png'
u.avatar_identifier # => 'file.png'
githubのこの部分を活用
この処理の前にスクレイピングした画像をtmp/に保存する処理を挟んでいる。
http://www.workabroad.jp/tech/1118
https://github.com/carrierwaveuploader/carrierwave
RubyでWeb上の画像などを保存
画像などは、バイナリで指定して開く必要あり
一回目のopenで保存先のファイルを開き、二回目のopenで画像を開き保存している。
require "open-uri"
require "FileUtils"
def save_image(url)
# ready filepath
fileName = File.basename(url)
dirName = "/var/tmp/hoge/"
filePath = dirName + fileName
# create folder if not exist
FileUtils.mkdir_p(dirName) unless FileTest.exist?(dirName)
# write image adata
open(filePath, 'wb') do |output|
open(url) do |data|
output.write(data.read)
end
end
end
http://himaratsu.hatenablog.com/entry/ruby/img_dl
http://uxmilk.jp/22830
ファイルのIO
whenever
Cron設定をソース管理するgem
初期はdevelopで実行されておらず、コマンドで指定する必要があった。
http://morizyun.github.io/blog/whenever-gem-rails-ruby-capistrano/
タスクはおそらく順次実行
地図関連
Google Maps for rails
Google Mapをrailsから簡単に表示加工できるgem
表示させるサンプル
http://qiita.com/jacoyutorius/items/a107ff6c93529b6b393e
公式
https://github.com/apneadiving/Google-Maps-for-Rails
geocoder
地名から緯度経度を抽出するために活用
http://qiita.com/asukiaaa/items/42c9287d09872be1df63
自分で実装する場合のサンプル
スクレイピング
anemoneでクローリングした後で、nokogiriでスクレイピングという流れがきれい
今回はクローリングするページにjsが使用されていたため、nokogiriでクローリングの処理を実装している
ライブラリの選択
ページによって使用するgemの組み合わせ
http://qiita.com/mmmm/items/545e0aec82e6949ebb0a
Nokogiri
スクレイピング用のgem
css()とかsearch()で簡単に検索をかけられる。
http://shgam.hatenadiary.jp/entry/2013/11/09/192509
http://d.hatena.ne.jp/otn/20090509/p1
http://morizyun.github.io/blog/ruby-nokogiri-scraping-tutorial/
http://cockscomb.info/scrape_kishocho_with_ruby_and_nokogiri/
sinatra
Webページを簡単に作成できる
ルーティングとページを書くだけで簡単に動くWebアプリケーションが作成可能
http://qiita.com/k-ta-yamada/items/9e35c5f8b31862267e01
capistrano
デプロイの自動化ツール
いろいろなサービスのデプロイなどの手順が「Capistranoの設定」という形に統一できる
http://labs.gree.jp/blog/2013/12/10084/
serializers
手早くjsonを生成できる
http://qiita.com/kakkunpakkun/items/1c23b936d13f08a42752
sniffer
HTTP requestを簡単に解析できるGem
https://github.com/aderyabin/sniffer
waterfall
開発手法のウォータフォールとは別
以下の画像のように,あるコマンドからchainとdamで処理を分けていける