サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
blog.naberon.jp
jekyllのデプロイには色々な方法があって普通のレンタルサーバーであれば、SSHを利用したrsyncを利用して反映させるのが一般的みたいです。 ただ自分が今利用しているサーバーがFTPしか使えないのでrsyncは使えません。 調べてみると、FTPでrsyncのように同期を取れる*lftp*というコマンドがある事を知ったので Rake から一発でデプロイできるようにしてみました。 Rakefile ## -- LFTP Deploy config -- ## ftp_user = "login" ftp_password = "password" ftp_server = "server" local_dir = "_site" remote_dir = "/remote/path/to/blog" desc "Deploy website via LFTP" task :deplo
RubyのMarkdownライブラリ「redcarpet(レッドカーペット)」で利用できる記法のチートシート。 jekyll のMarkdownエンジンにredcarpetを使っているので備忘録の為に書きました。 redcarpetで拡張された記法に関しては分かるように書いています。 見出し(h1-6)
以前ユーザー毎のアクセス履歴を、Googleアナリティクスに記録する為のライブラリmeron.history.js を書いた。 今回はこの記録された履歴を利用して、このブログの各エントリー毎のオススメ記事を算出してみたい。 使ってみたのはRubyのレコメンドライブラリRecommendify。 Redisを利用してコメンデーションする為、軽快に動作するのが売りなライブラリらしい。 手順は次の通り GoogleアナリティクスのCore Reporting API からアクセス履歴を取得 アクセス履歴を元にRecommendifyでレコメンドする レコメンド結果を表示 前提として事前にmeron.history.jsである程度の期間、ユーザーのアクセス履歴をトラッキングして置く必要がある (Core Reporting APIの利用には、前回の記事GoogleアナリティクスAPIの承
前回のエントリ(Googleアナリティクスのレポートをrubyから取得する)で アナリティクスのAPIを触ったんだけど、rubyスクリプトを実行するたびにブラウザからアクセス承認しなくてはいけなかった。 ライブラリのソースを読んでみたら、認証したセッション情報をローカルファイルに保存しておき、次回からはそのファイルを読み込む事で、アクセス承認を初回だけにすることができそうだったのでやってみた。 アクセス承認画面 コード Gemfile # A sample Gemfile source "https://rubygems.org" #gem "google-api-client" gem "google-api-client", :github => 'google/google-api-ruby-client' 現在rubygems にあがっている google-api-client
アナリティクスにはCore Reporting APIというAPIが提供されているので、コレを使ってトラッキングされた情報を取得してみる。 クライアントID作成 アナリティクスに限らずGoogleのAPIを使うためには、Google apisの認証を通す必要があり、その為のGemもGoogleから提供されている。 なので、まずはGoogle apisのAPI Accessから認証に使うクライアントIDを作成する。 servicesメニューからAnalytics APIをONにする。 今回はローカルのスクリプトからの利用なので、画像のように 「Installed application」 を選択する。 作成したIDメニューの Download JSON からClient secret等が書かれたJSONをダウンロードする。 ファイル名はclient_secrets.jsonとしておく
Googleアナリティクスにはアクセスを記録(トラッキング)する機能がいくつかあります。 これらを使いこなせれば、読み取れる情報がグンと増え、サイト改善のヒントを拾い、チャンスに繋げることも出来ます。 どの機能を、どのように使っていいのか分からない!と感じている人も多いのでは無いでしょうか? 今回は多くの機能の中でも,自分が特に重要だと感じる 4つのトラッキングメソッド を簡単に紹介したいと思います。 また具体的に どういった場面で使うのか? という部分も一緒に書いていきます。 もくじ トラッキングの呼び出しについて ページトラッキング カスタム変数 イベントトラッキング eコマース おわりに トラッキングの呼び出しについて アナリティクスのメソッド呼び出しは少し特殊で 配列変数 _gaq に対してメソッドと引数をpushで追加することで呼び出しを行えます。 メソッドによって引数
コントローラの階層化 Railsで開発を行う場合に、コントローラを継承して階層化することで ずいぶん楽に開発を進められるようになるのですが、意外と知られていないようなので紹介します。 (タイトルにRailsと銘打っているけれど、恐らくRailsからのPHP派生フレームワークcakephpやsymfonyでも同じハズ) コントローラの継承のさせ方を簡単に図にしてみた。 なぜ継承させると開発が楽になるのか? Railsの入門向け書籍などには、一番の大元になるApplicationControllerに対して 共通のロジックを書くことでDRYに書けるよ!と、あったりするんですが、 実際にはRails等フレームワークを使うような開発の場合(規模がそれなりに大きい事が多いため)、 「データをメンテする管理画面」と「ユーザーが参照するための公開画面」の2つに大きく分けられます。 しかし
コード app/decorators/user_decorator.rb app/models/user.rb からメソッドをそのまま持ってくる app/models/user.rb のコードは削除する # -*- coding: utf-8 -*- module UserDecorator def sex_list {0 => '女性', 1 => '男性'} end def sex_name self.sex_list[self.sex] || '' end end 使い方 これで以前と同じようにビューから呼び出せるわけですが、ActiveDecoratorで書かれたメソッドはビューで 使われる事を前提にしているのでコントローラからはそのままでは使えない。 コントローラ側でも使いたい場合は、extendでDecoratorを読み込んであげればコントローラからも使える。 こんな感じ
jp_prefecture という都道府県を扱う gem を作った このGemのように 内部的なステータスコード から そのコードに対応する名前 を扱うことはシステム開発で避けては通れません。 Webアプリであれば、DBに保存されている ステータスコード を人間が読みやすくなるように日本語名で表示するなんていうのはよくやります。 たとえば ユーザーで性別(1:男|0:女)の表示をする場合には、テンプレートにこんな風に書いたことのある人は多いのでは無いでしょうか?
関数などにタグジャンプする為の、タグファイルを作成する為のctagsですが、 そのctagsに設定ファイル(.ctags)があることがあまり知られていないようなので紹介します。 .ctags とは ctags生成時のオプションを省略する為の設定ファイルです。 例えば、PHPのタグファイルを作成する際には下記のようなコマンドで行うわけですが、 この --langmap=PHP:.php.inc --php-kinds=c+f+d のオプションを毎回書くのは面倒です。 .ctagsに対してこのオプションを記述することで、tagsファイルを作るたびにオプションをいちいち指定しなくてもよくなります。 自分の.tags ~/.ctags (windowsなら~/ctags.cnf) --langmap=PHP:.php.inc --php-kinds=c+f+d --langdef=js
正確にはRailsというよりもActiveRecordでの設定ですが、 ささたつ(@sasata299)さんがhas_many のdependentオプションについて書かれていたので便乗エントリー。 参照先のデータを削除したときに、参照元のデータも削除して整合性を保つ ActiveRecordのテーブル間のレーションを指定するhas_manyとhas_oneの:dependentオプションを適切なものに指定してあげるだけ。 このdependentオプションで1番有名なのは:destroyオプションです。 親を削除すると子も削除されるというやつですね。 が、それ以外にも便利な:dependentオプションがあるのでまとめてみました。 :dependentオプションについて :dependentオプションは削除するレコードに関連するレコードの取り扱いを指定するためのオプション
このページを最初にブックマークしてみませんか?
『blog.naberon.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く