Hatena::ブログ(Diary)

130単位

2011-08-29

GitHub フォロー中ユーザーのフィードをOPML出力

またHerokuでちょっとしたWebサービスつくってみました。

f:id:deeeki:20110829225941p:image

きっかけ

できること

メモ

raise Sinatra::NotFound
#or
halt 404
  • SinatraでNotFoundハンドリング
not_found do
  slim :not_found
end
  • slimかくのにvim-slimっていうプラグイン入れてみたけど効かない
  • サービス名がなんかいまいち

ソース

関連リンク


4797357401
たのしいRuby 第3版

関連記事

2011-08-24

DropboxをインストールせずにDropboxにバックアップ

コマンドラインからDropboxへのアップロードを可能にするシェルスクリプトです。通常Dropboxは(Linuxでも)インストールして使うものですが、このツールはファイル1つのみで動作します。

こちらの記事で知りました。現在はバージョンが上がっていたり少しつまずいたりしたので、そのメモです。(※バージョン0.7.1で検証)

使いかた

sh dropbox_uploader.sh -u account@example.com -p password -f targetfile_or_dir -d /path/to/uploaddir -v
ハードコーディング
LOGIN_EMAIL="account@example.com"
LOGIN_PASSWD="password"

dropbox_uploader.shに直接記述すればアカウントパスワードオプションは不要になります。

正しいのにログインできない場合

アカウントまたはパスワードの記号がURLエンコードされないのが原因の可能性があります。スクリプトではcURLの通信を行っていおり、パラメータの生成時にURLエンコードが必要です。Gmailエイリアス('+'記号)を使っていたりするとアウトです。

回避するにはアカウントおよびパスワードURLエンコード済みの文字列を指定する必要があります。

スクリプト内でURLエンコード

ファイルにパスワード書きたくない&URLエンコード面倒な場合は以下のようにします。

function urlencode
{
	echo $1 | nkf -MQ | tr = %
}

curl -s -i -c $COOKIE_FILE -o $RESPONSE_FILE --data "login_email=`urlencode $LOGIN_EMAIL`&login_password=`urlencode $LOGIN_PASSWD`&t=$TOKEN" "$LOGIN_URL"

その他

PR

4798123722
Dropbox WORKING

関連記事

2011-08-18

フィード検索サービスFeedGateをHerokuでリニューアル

ドメイン更新せずに失効したので、ほぼ一からつくり直してみました。

f:id:deeeki:20110818211749p:image

入力したキーワードから、関連するフィード(RSS)を表示したりフィードリーダー登録を補助したりするサービスです

フィード検索Webサービス FeedGateをつくってみた - 130単位

リニューアル

旧FeedGate
新FeedGate

感想

  • SinatraではじめてViewをつかった
  • SlimはHamlをやってたらなんとなくいけた
    • Vimプラギン探してもいないけど記述が簡潔なのでそう困らなかった
  • Powで開発中の自動再起動のためwatchrつかってみた
    • app.rbのみでやってたけどviews以下もwatch対象にするといいと思った
  • Herokuの開発→デプロイの簡単さは感嘆せざるをえない

ソース

libの下とかどうもいまいちなのでフィードバックいただけるとありがたいです!

関連リンク


4797357401
たのしいRuby 第3版

2011-08-04

Lokka Textileプラグイン

Lokka - CMS for Cloud

Ruby(Sinatra)製CMSのLokkaを少し触ってみたりしてます。

はてな記法やTextile記法に慣れきってしまっているので、そんな感じで書けないか調べてみました。Markdown記法のものは見かけたのですが、Markdownではリストが3つ以上ネストできないのが個人的に合わないのでパス。結局Markdownプラグインを参考*1にTextile記法プラグインを自作してみました。

使いかた

  • install
cd LOKKA_ROOT/public/plugin
git clone git://github.com/deeeki/lokka-textile.git
cd LOKKA_ROOT
bundle install [--without=production:test] # or "bundle update"

プラグインとともに、bundle install/update してTextileのgemライブラリRedClothを入れる必要があります。

  • property way
<%= @entry.body_html %>
  • helper way
<%= textile_to_html @entry.body %>

プロパティ的にEntryオブジェクトメソッドで出力する方法と、ヘルパー的に加工して出力する方法を提供しています。

記事編集は、ソース表示モードに切り替えて行う必要があります。

ソースコード

Gemfile

gem 'RedCloth'

lib/lokka/textile.rb

require 'redcloth'

module Lokka
  module Textile
    module Entry
      def body_html
        RedCloth.new(attribute_get(:body)).to_html
      end
    end

    module Helpers
      def textile_to_html text
        RedCloth.new(text).to_html
      end
    end
  end
end

class Entry
  include Lokka::Textile::Entry
end

module Lokka
  module Helpers
    include Lokka::Textile::Helpers
  end
end

単純にRedClothを利用しているだけですが、コードの書き方やモジュールの分割はRuby歴もLokka歴も浅いのであまり空気読めてないかもしれません。レビューいただけると幸いです。

GitHub

no title

暫定版でどうなるかわかりませんが、とりあえずリポジトリつくってあげておきました。

関連リンク


4797359986
Rubyレシピブック 第3版 303の技

4048687158
メタプログラミングRuby