ひきつづきRoR on GAE/Jを色々みているところ。

このソースとか見てみた。(人生初git)


ぽかぽか陽気 - ずっと君のターン
このインフラを試すために、YARBLという小さいアプリケーションを作成した。このアプリではブログを作成して記事を投稿できる。コメントやその他のステキな機能はなんにも用意されていない。それでもこれは実際に動作している。YARBLではBeeUとBumbleを使用した。BeeUを使って管理者としてログインしたユーザーだけが実際に記事投稿したりブログを変更できるようにしている。これらの機能のサポートはGoogle UserServiceを使えば非常に簡単だった。




モデルとかもこんな感じだったり。

class Blog
include Bumble

ds :name, :owner_id, :created_at
belongs_to :owner, Person
has_many :posts, :Post, :blog_id, :iorder => :created_at
end



よくわからんですが、key-valueコーディング的な何かを意識しなくてもそのまま出来ちゃってるっぽい。
どうなってるのやら。


lib/bumble/bumble.rbってのがあって、
require 'java'

module Bumble
module DS
import com.google.appengine.api.datastore.DatastoreServiceFactory
import com.google.appengine.api.datastore.Entity
import com.google.appengine.api.datastore.FetchOptions
import com.google.appengine.api.datastore.KeyFactory
import com.google.appengine.api.datastore.Key
import com.google.appengine.api.datastore.EntityNotFoundException
import com.google.appengine.api.datastore.Query
import com.google.appengine.api.datastore.Text
Service = DatastoreServiceFactory.datastore_service
end


とか


# returns either an object matching the conditions, or nil
def find(conditions = {})
query = DS::Query.new(self.name)
conditions.each do |k, v|
query = query.add_filter(k.to_s, DS::Query::FilterOperator::EQUAL, v)
end

result = DS::Service.prepare(query).asSingleEntity
if result
create_from_entity(result)
else
result
end
end



とかとか。GAEのJava用ライブラリに渡してるだけっぽい。でもこんなのとか正直なんのこっちゃ。


# defines zero or more data store attributes - will create attribute accessors for these
def ds(*names)
names.each do |name|
self.class_eval < def #{name}
if defined?(@#{name})
@#{name}
else
@#{name} = __ds_get(#{name.inspect})
end
end

def #{name}=(value)
__ds_set(#{name.inspect}, value)
@#{name} = value
end
DEF
end
end



みたいなゆるいエントリはやっぱこっちに書く感じだなあ



Blogの主はこの本書いた人みたいですな。

Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to the Java Platform (Expert's Voice in Java)Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to the Java Platform (Expert's Voice in Java)
著者:Ola Bini
販売元:Apress
発売日:2007-09-24
クチコミを見る