Ruby
サブドメインがからんだ実験を行いたいけど、そのためにわざわざドメインを取得するのはお金がもったいない。そんなわけで Rack サーバーの Pow を試すことにした。 Pow: Zero-configuration Rack server for Mac OS X インストールは curl get.pow.cx | sh …
wkhtmltopdf-binary -11でインストールされる wkhtmltopdf だと、Heroku 上で canvas を描画できなかった。(2014/03/16 時点) Mac OS X だと描画できるのに、なぜ Heroku ではできないんだ、って思ってたけど、ソースコードを読んで納得。Mac OS X と Linux …
Rails アプリに PDF 出力を実装して、それを Heroku で動かすまでの作業メモ。 プロジェクトを作成 rails new pdf_sample --skip-bundle gem は vendor/bundle にインストールしたいから、bunele install はスキップして後でやる。 Heroku には git を使って…
acts-as-taggable-on では Entry.tag_counts で Entry に付けられているすべてのタグを取得できるが、これに kaminari を組み合わせて Entry.tag_counts.page(1).per(20).total_count という風にページングした上で全件数を取得しようとすると ArgumentError…
Rails アプリに Web API を追加したい。 Rails のコントローラーで実装してもいいんだけど、せっかくなんで、 Web API マイクロフレームワーク『Grape』を試してみた。 Grape | REST-like API micro-framework Gemfile に gem "grape" を追加して bundle ins…
RubyMotion は Smart File Dependencies 機能があるので、依存ファイルを自動で解決してくれる。 でも、たま~に解決できなくて定数未定義エラーに遭遇するときがある。 そんなときは Rakefile で files_dependencies を記述すればいいんだけど、 依存してい…
ADBannerView は広告取得に失敗したら隠さないと、レビューでリジェクトされてしまう。 今までは広告取得に失敗したら frame を操作して画面外に移動していた。そのためのモジュールを Objective-C で書いたりもした。でも最近は AutoLayout を使うようにし…
RubyMotion 用 gem の Teacup は、CSS っぽくビューのデザインを記述できる、 厳密にはビューのプロパティを設定するための内部 DSL。 なんと AutoLayout もサポートしていたりする。 rubymotion/teacup Teacup の AutoLayout を使って、カスタム UITableVie…
久々の Rails ネタ。 『root 直下にユーザー名がくるような URL』を設計したいときがたまにある。 例えばこんなやつ。 https://localhost:3000/<ユーザー名>/issues この URL を実現するには、routes.rb で scope を使って、次のようにルーティングを記述す…
CoreData でデータをフェッチするときは NSFetchedResultsController を使いたいけど、 CoreDataQuery には NSFetchedResultsController を取得するメソッドが無い。 その代わり NSFetchRequest は取得できるから、 CDQQuery っていう CoreDataQuery 内部で…
RubyMotion 用の CoreData ラッパー gem である CoreDataQuery を先日から使い始めた。当初は理想の gem に出会ったと思っていたが、使っているうちに気に入らない箇所がちらほら。 自分は Named Scope が使いたいので多少の不満には目を瞑っている。でも人…
CoreDataQuery という CoreData ラッパー gem が公開された CoreDataQuery - CDQ | InfiniteRed 開発元は RubyMotionQuery と同じ InfiniteRed。 RubyMotion ではラッパー gem じゃなくて、MagicalRecord や NLCoreData のような Objective-C のライブラリを…
最近、RubyMotion 向けのラッパー gem じゃなくて、 Objective-C のライブラリを使ったほうがいいのでは、って思うようになってきた。 CoreData なら MotionData や MotionDataWrapper じゃなくて MagicalRecord。 そこで RubyMotion で MagicalRecord が使…
先日 RubyMotion で CoreData を使うために試した MotionDataWrapper、 ソースコードを見たらシンプルな実装で難しいことやっていなかった。 Xcode の Data Modeler で作成したエンティティ定義を読み込むけど、 それは CoreData.framework が提供している機…
CoreData を使ったモデルのスペックを書く場合、NSManagedObjectContext などのセットアップと、 テストデータの後始末が面倒。 このうちセットアップは MotionDataWrapper が楽にしてくれる。 あとは後始末だけど、こいつも MotionDataWrapper の spec にお…
MotionDataWrapper を使うと、CoreData を ActiveRecord ライクに扱えるため、 # すべてのエントリを配列で取得 all_entries = Entry.all # 下書きのみを配列で取得 draft_entries = Entry.where("draft = ?", true).all という風に、簡単にデータを取得でき…
先日、motion-fontawesome を FontAwesome 4.0.3 に対応させたときの話。 利用できるアイコンを Hash で定義する箇所があり、 手入力でやるには数が多すぎる上に、さしみたんぽぽ作業。 なので、FontAwesome の CSS をもとに Hash を組み立てる Ruby スクリ…
自分はデザインが苦手、特にアイコンが作れないので、 FontAwesome を重用している。 これがないとアプリ開発できないと言ってもいいくらい。 当然、RubyMotion でも使いたい。 前に Objective-C で FontAwesome を使ったときと同じ方法 を採用してもいいけ…
MotionDataWrapper を使って、ブログのエントリとカテゴリみたいな、 多対多のリレーションシップに挑戦した。 すんなりいくだろうと思っていたけど、意外に嵌ってしまったので、 メモを残しておく。 エンティティとリレーションシップの定義 Xcode Data Mod…
気づいたら、RubyMotion のデバッガが GDB から LLDB に変わっていた。 どうやら、iOS 7 から LLDB しか SDK に含まれないようになったためらしい。 @t_nakamura iOS 7 から LLDB しか SDK に含まれないようになったので、それに併せて GDB から LLDB に切り…
Grouped スタイルの UITableView を使ったフォームを簡単に作成できる、 RubyMotion 用の gem 『Formotion』が便利。 clayallsopp/formotion 文字列入力や数値入力やスイッチなど、たいていの入力は README 読めば使える。 ただ自分の場合、日付選択とサブフ…
はじめに 「RubyMotion で CoreData を使うなら MotionData を導入した方がいい」って勧めておいてなんだけど、 その後『MotionDataWrapper』を知って速攻で移行してしまった。 macfanatic/motion_data_wrapper MotionDataWrapper の特徴 MotionData は Data…
RubyMotion で CoreData が使えることは確認できた。 * ただ、CoreData のエンティティ定義をコードで書くのは結構シンドイ。 NSManagedObjectContext の初期化や CRUD を含めると、CoreData だけでかなりのコードを書くことになる。 正直、CoreData のラッ…
# -*- coding: utf-8 -*- $:.unshift("/Library/RubyMotion/lib") require 'motion/project/template/ios' begin require 'bundler' Bundler.require rescue LoadError end Motion::Project::App.setup do |app| app.name = 'CoreDataSample' app.frameworks…
はじめに Rails で Backbone.js を使ってアプリを開発するときは、決まって backbone-rails を使っていた。 codebrew/backbone-rails …んだけど、Backbone.js の v1.0.0 が出たというのに、backbone-rails は未だ対応してない(2013/07/02 現在)。 JavaScript…
ExtractContent を使えばいい。 Webページの本文抽出 (nakatani @ cybozu labs) ただ、上の記事の ExtractContent は Ruby1.9 以上では動かなかった。正規表現エンジンが変わったからね…。 無ければ自分で修正することを前提に、GitHub で探したら、案の定 1…
rbenv install 2.0.0-p0 で Ruby 2.0 をインストールし、 rbenv global 2.0.0-p0 で Ruby 2.0 に切り替えて gem list --local を実行したら ERROR: Your gem push credentials file located at: /Users/tnakamura/.gem/credentials has file permissions of …
はじめに 検索機能を実装するために gem を作っていたんだけど、 何を思ったか検索フォームを実装する gem を Google 先生に質問してしまい、 Ransack という gem を知ってしまった。 ernie/ransack 自作の gem より高機能そうだったんで、ライバル調査とい…
日曜プログラミングだと、アプリを早く形にしたくて、 ついテストそっちのけで機能ばかり実装しがちな自分。 でもテストを書かないわけにはいかないし。いざ書こうと思ってはみたものの、 どこから手を付けたらいいか悩む。 まぁ、悩んでいても埒が明かない…
RSS をパースするのに feed-normalizer を使っていたんだけど、Heroku 上で require "open-uri" require "feed-normalizer" feedlink = "http://tnakamura.hatenablog.com/feed" feed = FeedNormalizer::FeedNormalizer.parse(open(feedlink)) feed.title #=…