RejectKaigi 2017で発表した資料です。ActiveStorageの機能を紹介する過程で、ファイルアップロードを実装するのに必要な要件と選択肢について解説しています。
RejectKaigi 2017で発表した資料です。ActiveStorageの機能を紹介する過程で、ファイルアップロードを実装するのに必要な要件と選択肢について解説しています。
Ruby で非同期処理をするのに Sidekiq を使い始めた 基本的な使い方については Rails - sidekiqの使い方 - Qiita を見れば分かる 上記記事に書かれてないことについてつらつらと自分用にメモを残しておく いちいちワーカクラス書かないといけないの ActiveRecord と ActionMailer に便利メソッドが自動的に生える Delayed extensions · mperham/sidekiq Wiki スケジューリングしたい Scheduled Jobs · mperham/sidekiq Wiki 3時間後に実行したい場合こんな感じ MyWorker.perform_in(3.hours, 'mike', 1) MyWorker.perform_at(3.hours.from_now, 'mike', 1) どうせ Sidekiq のデーモン起動し
あいさつ 流行りにはしっかり乗らさせて頂きたい! line botちょこちょこ遊んでいた中で出来た成果物をAPIのruby言語ラッパーとしてgem化しときました^^ Github Rubygems 即時性や並列性を考えるとガチBotには向いてないかもですがまあサクッと遊ぶときに使ってくださいな^^ ちなみにこのライブラリとheroku+Fixieで作ったbotをひけらかすとこんな感じ 参考: LINE BOT をとりあえずタダで Heroku で動かす 情報のフェッチだけじゃなくて予約とか何か副作用の持つアクションと絡めたり、グループチャットにbot入れてスケージュリングとかは夢が広がる〜! 使い方 Installation require 'line/bot/client' client = Line::Bot::Client.new do |config| config.channel
eachの進捗を教えてくれるgemを作った.eachがどれくらい進んでるか,warnしたり,loggerに出したりしてくれる. 例えば,何件くらい処理するのか分からなかったり,eachの中で時間がかかったりするときとかに便利. require 'each-with-logging' require 'open-uri' require 'nokogiri' Nokogiri(open('http://b.hatena.ne.jp/')).search('#hotentry h3 .entry-link').each_with_logging{|link| p [link['href'], open(link['href']).read.length] } eachの代わりに,each_with_loggingにすると,今どこで,何をやってて,どのくらい進んでるかを教えてくれる. examp
github.com/mbleigh/acts-as-taggable-on railscasts.com/episodes/382-tagging 新しくgemをメンテナンスしてくれる人を募集中みたいです 評価システム(いいね!みたいな)github.com/twitter/activerecord-reputation-system/ railscasts.com/episodes/364-active-record-reputation-system twitter社製 ユーザースタンプcreated_byとupdated_byというカラムを追加してくれる 誰が作って、更新したかとかを記録したいときに github.com/kimkong/userstamp このフォークがRails4でも動いたらしい(参照) コメント機能github.com/elight/acts_as_comme
最近個人的に作った写真共有サイトを公開しました。 photoll - スポット写真共有サイト この写真共有サイトで実際に使っているおすすめGemを晒してみます。 あと、おまけで使ってないけど便利そうなGemとかも紹介。 一人で1からWebサービスを作る過程を書いた拙作のブログエントリもよかったら見てください。 【1人でWebサービス開発】新米Railsエンジニアが無謀にも写真共有サイトを作りました だいぶ長いですが、Gemfileをそのまんま載せました。簡易説明付き。 主要なGemをあとで説明します。 source 'https://rubygems.org' gem 'rails' gem 'mysql2' gem 'haml-rails' # HTMLを簡潔に書ける gem 'sass-rails' # CSSを効率的に書ける gem 'bootstrap-sass' # Twitte
RubyでHTMLやXMLをパースする構文解析ツールの定番は、Nokogiriです。スクレイピングする際の必需品で、なくてはならないモジュールの1つです。ただ色々なことが出来る反面、どこから取りかかれば良いのか解り難い部分もあります。自習を兼ねて、Nokogiri概要と主要な機能を紹介してみます。 Nokogiriとは何か? ReademeによるとNokogiriとは、「HTMLとXMLとSAXとXSLTとReaderのパーサー」で、特徴としては、XPathとCSS3セレクター経由で探索する機能を持つことのようです。他にもHTMLやXMLのビルダーの機能を持っていますが、HTMLとXMLのパーサー(構文解析器)と覚えておけばよいでしょう。 Nokogiriのクラス構造 Nokogiriは、なかなか巨大なライブラリです。10以上のモジュールと70以上のクラスで構成されていて、yardでダイア
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました 新しいWebサイトを作ると何となくGoogle Analyticsを選んでしまっています。しかし他にも選択肢はありますし、データを外部に出せない場合(イントラなど)もあります。そういった場合、どのようにアクセス解析を行えば良いでしょうか。 もし使っているフレームワークがRuby on RailsであればAhoyを使ってみると良いかもしれません。Railsのモデルに組み込めるアクセス解析機能を提供します。 Ahoyのインストール まずはGemfileに記述します。 gem 'ahoy_matey' インストールと初期設定を行います。 $ bundle install $ rails generate ahoy:install $ rake db:migrate 後は app/asse
技術部アルバイトの鈴木(@draftcode)です。 クックパッドが内部向けに開発・運用を行ってきた、分散テスト実行システムRRRSpecをオープンソースとして公開しました。RRRSpecは時間のかかる自動テストを分散処理することで、全体のテスト時間の短縮を狙うアプリケーションです。現在クックパッドでは17000を超えるテスト項目があり、マシン一台でテストを実行すると完了まで数時間かかります。このテストを60並列程度の分散処理で行うことで、平均8分から9分程度で完了できるようになりました。また、Amazon EC2のスポットインスタンスを利用することにより、大幅なコスト削減も同時に達成しました。 https://github.com/cookpad/rrrspec 分散テスト実行とは アプリケーションが大きくなるにつれて、自動テストの数も大きくなっていきます。クックパッドでは、非常に多くの
ラングバプロジェクト ラングバプロジェクトはカラムストア機能も備える高速・高機能な全文検索エンジンGroongaを用いた全文検索システムを提供するプロジェクトです。Groongaの機能をRubyから利用するためのライブラリ、様々な文書から検索対象のテキストを抽出するユーティリティ、検索用Webインターフェイスなどを提供します。提供する機能の一覧は以下の通りです。 Rroonga: Groongaの機能をRubyから利用するためのライブラリ ActiveGroonga: RroongaをWebアプリケーションから使いやすくするためのライブラリ ActiveGroonga Fabrication: FabricationにActiveGroongaサポートを追加するライブラリ racknga: 検索用Webアプリケーションの構築・運用を支援するユーティリティ Packnga: 多言語対応ドキュ
Ruby 上で http を叩いた通信見たい時に、毎回同じ事をやってるので抽象化して http-dump というライブラリを作った。 https://github.com/hotchpotch/http-dump $ gem install http-dump require 'net/http' require 'uri' require 'http-dump' HTTPDump.dump { Net::HTTP.get(URI('http://example.com')) } と http でやりとりしてるコードを block で囲むと、以下のように出力される。 > GET http://example.com/ with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く