LoginSignup
2
4

More than 5 years have passed since last update.

Ruby gem メモ

Last updated at Posted at 2016-12-16

はじめに

下書きがいっぱいになった&公開したら良いじゃんというのをうけ公開する。

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で処理を分けていける
image.png

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4