marley 0.6.2 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -31,13 +31,8 @@ module Marley
31
31
  super
32
32
  self.topic_id||=self.class.max(:topic_id).to_i+1
33
33
  end
34
- #this needs to change
35
34
  def reply
36
- foo=reggae_instance.set_values(:parent_id => id,:title => "re: #{title}")
37
- foo.new_rec=true
38
- foo.url=self.class.new.url
39
- foo.schema.delete_if {|c| [:author,:id].include?(c[NAME_INDEX])}
40
- foo
35
+ self.class.new(self.values.dup.delete_if{|k,v| k==:id}.merge({:parent_id => self[:id],:title => "re: #{title}"}))
41
36
  end
42
37
  end
43
38
  end
@@ -51,8 +46,6 @@ module Marley
51
46
  Marley::ReggaeSection.new({:title => 'Topics Tagged With:', :navigation => MR::Tag.filter(:id => topics.join(:messages_tags).where(:messages__id => :message_id).select(:tag_id)).map{|t| reggae_link('list',t.tag,"#{resource_name}[tags]=#{t.tag}")}})
52
47
  ]
53
48
  end
54
- def section_contents
55
- end
56
49
  def recent_topics
57
50
  list(:date_created > Date.today - 2)
58
51
  end
@@ -13,7 +13,7 @@ module Marley
13
13
  class Message < Sequel::Model
14
14
  MU.sti(self)
15
15
  MR::User.join_to(self) if MR::User
16
- instance_actions![:new?][false]={:get => 'reply'}
16
+ instance_actions![:new?][false]={:get => :reply}
17
17
  derived_before_cols![:new?][false]=[:author]
18
18
  ro_cols![:current_user_role] = {'reader' => [/.*/],'owner' => [/^author$/]}
19
19
  def validate
@@ -43,7 +43,7 @@ module Marley
43
43
  end
44
44
  def actions(parent_instance=nil)
45
45
  return super if new? || ! recipients.to_s.match(/,/)
46
- [:reply, :reply_all]
46
+ {:get => [:reply, :reply_all]}
47
47
  end
48
48
  def recipients
49
49
  users.map{|u|u.name}.join(',')
@@ -8,7 +8,7 @@ module Marley
8
8
  :title => send_or_default(:section_title, resource_name.humanize),
9
9
  :navigation => send_or_nil(:section_nav),
10
10
  :description => send_or_nil(:section_desc)},
11
- send_or_nil(:section_contents))
11
+ send_or_nil(:section_content))
12
12
  end
13
13
  def section_link
14
14
  reggae_link('section').update(:title => resource_name.humanize.pluralize)
@@ -45,10 +45,15 @@ module Marley
45
45
  Marley.config[:app_name]
46
46
  end
47
47
  def self.section_nav
48
- if respond_to?(:current_user) && (current_user.nil? || current_user.new?)
49
- [[:msg,{},'New users, please sign up below'],MR::User.new]
50
- else
48
+ if !(respond_to?(:current_user) && (current_user.nil? || current_user.new?))
51
49
  MR.resources_responding_to(:section).sort {|l,r|l.resource_name <=> r.resource_name}.map{|r| next if r==self; r.section}.compact
50
+ else
51
+ []
52
+ end
53
+ end
54
+ def self.section_content
55
+ if respond_to?(:current_user) && (current_user.nil? || current_user.new?)
56
+ [[:msg,{:title => 'New users, please sign up below'}],MR::User.new]
52
57
  end
53
58
  end
54
59
  def self.section_desc
@@ -56,9 +61,6 @@ module Marley
56
61
  ReggaeLink.new({:url => '/main_menu', :title => 'Existing users, please click here to log in.'})
57
62
  end
58
63
  end
59
- def self.section_link
60
- ReggaeLink.new({:url => '/',:title => 'Main Menu'})
61
- end
62
64
  end
63
65
  end
64
66
  end
@@ -48,7 +48,7 @@ module Marley
48
48
  def current_user_role
49
49
  if u=self.class.current_user
50
50
  return 'new' if u.new?
51
- return "owner" if owners.include?(u)
51
+ return "owner" if (@owners||=owners).include?(u) #avoid multiple calls to `owners`
52
52
  end
53
53
  end
54
54
  def owners
@@ -11,7 +11,8 @@ module Marley
11
11
  def url
12
12
  end
13
13
  def reggae_link(action=nil, title=nil, args=nil)
14
- ReggaeLink.new({:url => "/#{self.resource_name}/#{action}?#{args}",:title => (title||"#{action.to_s.humanize} #{self.resource_name.humanize}".strip)})
14
+ args="?#{args}" if args
15
+ ReggaeLink.new({:url => "/#{self.resource_name}/#{action}#{args}",:title => (title||"#{action.to_s.humanize} #{self.resource_name.humanize}".strip)})
15
16
  end
16
17
  end
17
18
  module InstanceMethods
data/lib/marley/reggae.rb CHANGED
@@ -33,7 +33,7 @@ module Marley
33
33
  @resource_type=self[0]=self[0].to_sym
34
34
  self[1]=Utils.hash_keys_to_syms(self[1]) if self[1].class==Hash
35
35
  @properties=self[1]
36
- @contents=self[2 .. -1]
36
+ @contents=self[2]
37
37
  self.class.mk_prop_methods
38
38
  else
39
39
  replace(map {|r| r.class==Array ? Reggae.new(r).to_resource : r})
@@ -62,7 +62,7 @@ module Marley
62
62
  def initialize(*args)
63
63
  @resource_type=self.class.to_s.sub(/.*Reggae/,'').underscore.to_sym
64
64
  if args[0].class==Hash
65
- initialize [@resource_type,args[0],args[1 .. -1]]
65
+ initialize [@resource_type,args[0],args[1]]
66
66
  else
67
67
  super
68
68
  end
@@ -125,6 +125,11 @@ module Marley
125
125
  end
126
126
  end
127
127
  class ReggaeColSpec < Array
128
+ def initialize(*args)
129
+ super
130
+ self[0]=self[0].to_sym #type and name should always be syms
131
+ self[1]=self[1].to_sym
132
+ end
128
133
  ['col_type','col_name','col_restrictions', 'col_value'].each_with_index do |prop_name, i|
129
134
  define_method(prop_name.to_sym) {self[i]}
130
135
  define_method(:"#{prop_name}=") {|val|self[i]=val}
data/lib/marley/router.rb CHANGED
@@ -1,3 +1,4 @@
1
+ #require 'ruby-prof'
1
2
 
2
3
  module Marley
3
4
  class Router
@@ -6,6 +7,7 @@ module Marley
6
7
  @opts=DEFAULT_OPTS.merge(opts)
7
8
  end
8
9
  def call(env)
10
+ # RubyProf.start
9
11
  request= Rack::Request.new(env)
10
12
  $request={:request => request,:opts => @opts}
11
13
  $request[:get_params]=Marley::Utils.hash_keys_to_syms(request.GET)
@@ -56,6 +58,8 @@ module Marley
56
58
  ensure
57
59
  $log.info $request.merge({:request => nil,:user => $request[:user] ? $request[:user].name : nil})
58
60
  $request=nil #mostly for testing
61
+ # prof=RubyProf.stop
62
+ # RubyProf::FlatPrinter.new(prof).print(STDOUT, 0)
59
63
  end
60
64
  end
61
65
  end
data/rdoc/forum_joint.rb CHANGED
@@ -49,3 +49,4 @@ end
49
49
 
50
50
  Marley.config(:app_name => 'Forum',:client => Marley::Client.new(:app_name => 'Forum'))
51
51
  Marley.joint('forum')
52
+ #require 'test/forum_load.rb'
@@ -11,9 +11,9 @@ setup
11
11
  (1 .. 5).each { |i|
12
12
  user_client.create(user.set_values(:name => "user#{i}"))
13
13
  instance_variable_set(:"@client#{i}", Marley::TestClient.new(:auth => ["user#{i}",'asdfasdf'] ))
14
+ instance_variable_set(:"@new_post#{i}", instance_variable_get(:"@client#{i}").read({},{:resource_name => 'public_message'}))
14
15
  }
15
16
  end
16
17
 
17
18
  example:
18
19
 
19
- !!!
@@ -10,50 +10,50 @@
10
10
  example: user1 sends message to user2
11
11
 
12
12
  >> @msg=@client1.read({},:method => 'new')
13
- => [:instance, {:url=>"/private_message/", :schema=>[["text", :recipients, 0, ""], ["integer", :user_id, 3, 1], ["text", :title, 4, nil], ["text", :content, 0, nil]], :name=>"private_message", :new_rec=>true, :actions=>nil}, []]
13
+ => [:instance, {:url=>"/private_message/", :schema=>[[:text, :recipients, 0, ""], [:integer, :user_id, 3, 1], [:text, :title, 4, nil], [:text, :content, 0, nil]], :name=>"private_message", :new_rec=>true, :actions=>nil}, nil]
14
14
 
15
15
  >> @client1.create(@msg.set_values(:title => 'asdf',:recipients => 'xxx'),:code => 400)
16
16
  => [:error, {:error_type=>"validation", :error_details=>{:recipients=>["xxx is not a valid message recipient"]}, :description=>nil}]
17
17
  >> @client1.create(@msg.set_values(:title => 'asdf',:recipients => 'user2'))
18
- => [:instance, {:url=>"/private_message/1", :schema=>[["text", :recipients, 2, "user2"], ["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 6, "asdf"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]
18
+ => [:instance, {:url=>"/private_message/1", :schema=>[[:text, :recipients, 2, "user2"], [:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 6, "asdf"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]
19
19
 
20
20
  >> @client1.read
21
21
  => []
22
22
  >> @client3.read
23
23
  => []
24
24
  >> @client2.read
25
- => [[:instance, {:url=>"/private_message/1", :schema=>[["text", :recipients, 2, "user2"], ["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 6, "asdf"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]]
25
+ => [[:instance, {:url=>"/private_message/1", :schema=>[[:text, :recipients, 2, "user2"], [:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 6, "asdf"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]]
26
26
 
27
27
  example: user2 sends message to user3 and user4, each of which replies
28
28
 
29
29
  >> @msg=@client2.read({},:method => 'new')
30
- => [:instance, {:url=>"/private_message/", :schema=>[["text", :recipients, 0, ""], ["integer", :user_id, 3, 2], ["text", :title, 4, nil], ["text", :content, 0, nil]], :name=>"private_message", :new_rec=>true, :actions=>nil}, []]
30
+ => [:instance, {:url=>"/private_message/", :schema=>[[:text, :recipients, 0, ""], [:integer, :user_id, 3, 2], [:text, :title, 4, nil], [:text, :content, 0, nil]], :name=>"private_message", :new_rec=>true, :actions=>nil}, nil]
31
31
  >> @client2.create(@msg.set_values(:title => 'message1',:recipients => 'user3,user4'))
32
- => [:instance, {:url=>"/private_message/1", :schema=>[["text", :recipients, 2, "user3,user4"], ["text", :author, 2, "user2"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 2], ["text", :title, 6, "message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>[:reply, :reply_all]}, []]
32
+ => [:instance, {:url=>"/private_message/1", :schema=>[[:text, :recipients, 2, "user3,user4"], [:text, :author, 2, "user2"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 2], [:text, :title, 6, "message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get => ["reply", "reply_all"]}}, []]
33
33
  >> @client1.read
34
34
  => []
35
35
  >> @client2.read
36
36
  => []
37
37
  >> @client3.read
38
- => [[:instance, {:url=>"/private_message/1", :schema=>[["text", :recipients, 2, "user3,user4"], ["text", :author, 2, "user2"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 2], ["text", :title, 6, "message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>[:reply, :reply_all]}, []]]
38
+ => [[:instance, {:url=>"/private_message/1", :schema=>[[:text, :recipients, 2, "user3,user4"], [:text, :author, 2, "user2"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 2], [:text, :title, 6, "message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get => ["reply", "reply_all"]}}, []]]
39
39
  >> @orig=@client4.read
40
- => [[:instance, {:url=>"/private_message/1", :schema=>[["text", :recipients, 2, "user3,user4"], ["text", :author, 2, "user2"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 2], ["text", :title, 6, "message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>[:reply, :reply_all]}, []]]
40
+ => [[:instance, {:url=>"/private_message/1", :schema=>[[:text, :recipients, 2, "user3,user4"], [:text, :author, 2, "user2"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 2], [:text, :title, 6, "message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get => ["reply", "reply_all"]}}, []]]
41
41
 
42
42
  >> @u3r=@client3.read({},:url => @orig[0].url+'/reply')
43
- => [:instance, {:url=>"/private_message/", :schema=>[["text", :recipients, 0, "user2"], ["integer", :user_id, 3, 3], ["text", :title, 4, "re: message1"], ["text", :content, 0, nil]], :name=>"private_message", :new_rec=>true, :actions=>nil}, []]
43
+ => [:instance, {:url=>"/private_message/", :schema=>[[:text, :recipients, 0, "user2"], [:integer, :user_id, 3, 3], [:text, :title, 4, "re: message1"], [:text, :content, 0, nil]], :name=>"private_message", :new_rec=>true, :actions=>nil}, nil]
44
44
  >> @u3ra=@client3.read({},:url => @orig[0].url+'/reply_all')
45
- => [:instance, {:url=>"/private_message/", :schema=>[["text", :recipients, 0, "user2,user4"], ["integer", :user_id, 3, 3], ["text", :title, 4, "re: message1"], ["text", :content, 0, nil]], :name=>"private_message", :new_rec=>true, :actions=>nil}, []]
45
+ => [:instance, {:url=>"/private_message/", :schema=>[[:text, :recipients, 0, "user2,user4"], [:integer, :user_id, 3, 3], [:text, :title, 4, "re: message1"], [:text, :content, 0, nil]], :name=>"private_message", :new_rec=>true, :actions=>nil}, nil]
46
46
 
47
47
  >> @client3.create(@u3r)
48
- => [:instance, {:url=>"/private_message/2", :schema=>[["text", :recipients, 2, "user2"], ["text", :author, 2, "user3"], ["integer", :id, 2, 2], ["integer", :user_id, 3, 3], ["text", :title, 6, "re: message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]
48
+ => [:instance, {:url=>"/private_message/2", :schema=>[[:text, :recipients, 2, "user2"], [:text, :author, 2, "user3"], [:integer, :id, 2, 2], [:integer, :user_id, 3, 3], [:text, :title, 6, "re: message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]
49
49
  >> @client2.read
50
- => [[:instance, {:url=>"/private_message/2", :schema=>[["text", :recipients, 2, "user2"], ["text", :author, 2, "user3"], ["integer", :id, 2, 2], ["integer", :user_id, 3, 3], ["text", :title, 6, "re: message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]]
50
+ => [[:instance, {:url=>"/private_message/2", :schema=>[[:text, :recipients, 2, "user2"], [:text, :author, 2, "user3"], [:integer, :id, 2, 2], [:integer, :user_id, 3, 3], [:text, :title, 6, "re: message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]]
51
51
 
52
52
  >> @client3.create(@u3ra)
53
- => [:instance, {:url=>"/private_message/3", :schema=>[["text", :recipients, 2, "user2,user4"], ["text", :author, 2, "user3"], ["integer", :id, 2, 3], ["integer", :user_id, 3, 3], ["text", :title, 6, "re: message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>[:reply, :reply_all]}, []]
53
+ => [:instance, {:url=>"/private_message/3", :schema=>[[:text, :recipients, 2, "user2,user4"], [:text, :author, 2, "user3"], [:integer, :id, 2, 3], [:integer, :user_id, 3, 3], [:text, :title, 6, "re: message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get => ["reply", "reply_all"]}}, []]
54
54
  >> @client2.read
55
- => [[:instance, {:url=>"/private_message/2", :schema=>[["text", :recipients, 2, "user2"], ["text", :author, 2, "user3"], ["integer", :id, 2, 2], ["integer", :user_id, 3, 3], ["text", :title, 6, "re: message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []], [:instance, {:url=>"/private_message/3", :schema=>[["text", :recipients, 2, "user2,user4"], ["text", :author, 2, "user3"], ["integer", :id, 2, 3], ["integer", :user_id, 3, 3], ["text", :title, 6, "re: message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>[:reply, :reply_all]}, []]]
55
+ => [[:instance, {:url=>"/private_message/2", :schema=>[[:text, :recipients, 2, "user2"], [:text, :author, 2, "user3"], [:integer, :id, 2, 2], [:integer, :user_id, 3, 3], [:text, :title, 6, "re: message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []], [:instance, {:url=>"/private_message/3", :schema=>[[:text, :recipients, 2, "user2,user4"], [:text, :author, 2, "user3"], [:integer, :id, 2, 3], [:integer, :user_id, 3, 3], [:text, :title, 6, "re: message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get => ["reply", "reply_all"]}}, []]]
56
56
 
57
57
  >> @client4.read
58
- => [[:instance, {:url=>"/private_message/1", :schema=>[["text", :recipients, 2, "user3,user4"], ["text", :author, 2, "user2"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 2], ["text", :title, 6, "message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>[:reply, :reply_all]}, []], [:instance, {:url=>"/private_message/3", :schema=>[["text", :recipients, 2, "user2,user4"], ["text", :author, 2, "user3"], ["integer", :id, 2, 3], ["integer", :user_id, 3, 3], ["text", :title, 6, "re: message1"], ["text", :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>[:reply, :reply_all]}, []]]
58
+ => [[:instance, {:url=>"/private_message/1", :schema=>[[:text, :recipients, 2, "user3,user4"], [:text, :author, 2, "user2"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 2], [:text, :title, 6, "message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get => ["reply", "reply_all"]}}, []], [:instance, {:url=>"/private_message/3", :schema=>[[:text, :recipients, 2, "user2,user4"], [:text, :author, 2, "user3"], [:integer, :id, 2, 3], [:integer, :user_id, 3, 3], [:text, :title, 6, "re: message1"], [:text, :content, 2, nil]], :name=>"private_message", :new_rec=>false, :actions=>{:get => ["reply", "reply_all"]}}, []]]
59
59
 
@@ -13,50 +13,50 @@ example: user1 writes, edits, deletes post
13
13
 
14
14
 
15
15
  >>@msg=@client1.read({},:method => 'new')
16
- => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/public_message/", :name=>"public_message", :schema=>[["integer", :user_id, 3, 1], ["text", :title, 4, nil], ["text", :content, 0, nil]]}, []]
16
+ => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/public_message/", :name=>"public_message", :schema=>[[:integer, :user_id, 3, 1], [:text, :title, 4, nil], [:text, :content, 0, nil]]}, nil]
17
17
 
18
18
  >> @client1.create(@msg,:code => 400)
19
19
  => [:error, {:error_type=>"validation", :description=>nil, :error_details=>{:title=>["is required"]}}]
20
20
 
21
21
  >> @msg=@client1.create(@msg.set_values(:title => 'test'))
22
- => [:instance, {:url=>"/public_message/1", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 4, "test"], ["text", :content, 0, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
22
+ => [:instance, {:url=>"/public_message/1", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 4, "test"], [:text, :content, 0, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
23
23
 
24
24
  >> @client1.update(@msg.set_values(:content => 'asdf'),:url => @msg.url)
25
- => [:instance, {:url=>"/public_message/1", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 4, "test"], ["text", :content, 0, "asdf"]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
25
+ => [:instance, {:url=>"/public_message/1", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 4, "test"], [:text, :content, 0, "asdf"]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
26
26
 
27
27
  >> @client1.del({},:url => @msg.url)
28
- => [:instance, {:url=>"/public_message/1", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 4, "test"], ["text", :content, 0, "asdf"]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
28
+ => [:instance, {:url=>"/public_message/1", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 4, "test"], [:text, :content, 0, "asdf"]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
29
29
 
30
30
 
31
31
  example: two users, several messages
32
32
  >> @u1msg=@client1.read({},:method => 'new')
33
- => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/public_message/", :name=>"public_message", :schema=>[["integer", :user_id, 3, 1], ["text", :title, 4, nil], ["text", :content, 0, nil]]}, []]
33
+ => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/public_message/", :name=>"public_message", :schema=>[[:integer, :user_id, 3, 1], [:text, :title, 4, nil], [:text, :content, 0, nil]]}, nil]
34
34
  >> @u2msg=@client2.read({},:method => 'new')
35
- => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/public_message/", :name=>"public_message", :schema=>[["integer", :user_id, 3, 2], ["text", :title, 4, nil], ["text", :content, 0, nil]]}, []]
35
+ => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/public_message/", :name=>"public_message", :schema=>[[:integer, :user_id, 3, 2], [:text, :title, 4, nil], [:text, :content, 0, nil]]}, nil]
36
36
 
37
37
  >> @u1m1=@client1.create(@u1msg.set_values(:title => 'usr1 msg1'))
38
- => [:instance, {:url=>"/public_message/1", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 4, "usr1 msg1"], ["text", :content, 0, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
38
+ => [:instance, {:url=>"/public_message/1", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 4, "usr1 msg1"], [:text, :content, 0, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
39
39
 
40
40
  >> @client3.read
41
- => [[:instance, {:url=>"/public_message/1", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 6, "usr1 msg1"], ["text", :content, 2, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]]
41
+ => [[:instance, {:url=>"/public_message/1", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 6, "usr1 msg1"], [:text, :content, 2, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]]
42
42
 
43
43
  >> @u1m2=@client1.create(@u1msg.set_values(:title => 'usr1 msg2'))
44
- => [:instance, {:url=>"/public_message/2", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 2], ["integer", :user_id, 3, 1], ["text", :title, 4, "usr1 msg2"], ["text", :content, 0, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/2"}}, []]
44
+ => [:instance, {:url=>"/public_message/2", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 2], [:integer, :user_id, 3, 1], [:text, :title, 4, "usr1 msg2"], [:text, :content, 0, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/2"}}, []]
45
45
  >> @client3.read
46
- => [[:instance, {:url=>"/public_message/1", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 6, "usr1 msg1"], ["text", :content, 2, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []], [:instance, {:url=>"/public_message/2", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 2], ["integer", :user_id, 3, 1], ["text", :title, 6, "usr1 msg2"], ["text", :content, 2, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]]
46
+ => [[:instance, {:url=>"/public_message/1", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 6, "usr1 msg1"], [:text, :content, 2, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []], [:instance, {:url=>"/public_message/2", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 2], [:integer, :user_id, 3, 1], [:text, :title, 6, "usr1 msg2"], [:text, :content, 2, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply"}}, []]]
47
47
 
48
48
  >> @client3.update(@u1m1.set_values(:title => 'asdf'),:url => @u1m1.url,:code => 403)
49
49
  => [:error, {:error_type=>"authorization", :error_details=>nil, :description=>"You are not authorized for this operation"}]
50
50
  >> @client2.update(@u1m1.set_values(:title => 'asdf'),:url => @u1m1.url,:code => 403)
51
51
  => [:error, {:error_type=>"authorization", :error_details=>nil, :description=>"You are not authorized for this operation"}]
52
52
  >> @client1.update(@u1m1.set_values(:title => 'asdf'),:url => @u1m1.url)
53
- => [:instance, {:url=>"/public_message/1", :schema=>[["text", :author, 2, "user1"], ["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :title, 4, "asdf"], ["text", :content, 0, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
53
+ => [:instance, {:url=>"/public_message/1", :schema=>[[:text, :author, 2, "user1"], [:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :title, 4, "asdf"], [:text, :content, 0, nil]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/1"}}, []]
54
54
 
55
55
  >> @u2r1=@client2.read({},:url => @u1m1.url+'/reply')
56
- => [:instance, {:url=>"/public_message/", :schema=>[["integer", :user_id, 3, 2], ["text", :title, 4, "re: asdf"], ["text", :content, 0, nil]], :name=>"public_message", :new_rec=>true, :actions=>nil}, []]
56
+ => [:instance, {:url=>"/public_message/", :schema=>[[:integer, :user_id, 3, 2], [:text, :title, 4, "re: asdf"], [:text, :content, 0, nil]], :name=>"public_message", :new_rec=>true, :actions=>nil}, nil]
57
57
 
58
58
  >> @client2.create(@u2r1.set_values(:content => 'xxxxxx'))
59
- => [:instance, {:url=>"/public_message/3", :schema=>[["text", :author, 2, "user2"], ["integer", :id, 2, 3], ["integer", :user_id, 3, 2], ["text", :title, 4, "re: asdf"], ["text", :content, 0, "xxxxxx"]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/3"}}, []]
59
+ => [:instance, {:url=>"/public_message/3", :schema=>[[:text, :author, 2, "user2"], [:integer, :id, 2, 3], [:integer, :user_id, 3, 2], [:text, :title, 4, "re: asdf"], [:text, :content, 0, "xxxxxx"]], :name=>"public_message", :new_rec=>false, :actions=>{:get=>"reply", :delete=>"/public_message/3"}}, []]
60
60
 
61
61
 
62
62
 
@@ -14,29 +14,29 @@ examples:
14
14
  >> MR::User.foreign_key_name
15
15
  => :user_id
16
16
  >> MR::User.reggae_link
17
- => [:link, {:url=>"/user/", :title=>"User"},[]]
17
+ => [:link, {:url=>"/user/", :title=>"User"},nil]
18
18
  >> MR::User.reggae_link('new')
19
- => [:link, {:url=>"/user/new", :title=>"New User"},[]]
19
+ => [:link, {:url=>"/user/new", :title=>"New User"},nil]
20
20
  >> MR::User.model_actions
21
21
  => {:get => [:new,:list]}
22
22
  >> @client.read
23
23
  => []
24
24
  >> @client.read({},{:method => 'new'})
25
- => [:instance, {:url=>"/user/", :new_rec=>true, :actions=>nil, :schema=>[["text", :name, 4, nil], [:password, :password, 4, nil], ["text", :description, 0, nil]], :name=>"user"}, []]
25
+ => [:instance, {:url=>"/user/", :new_rec=>true, :actions=>nil, :schema=>[[:text, :name, 4, nil], [:password, :password, 4, nil], [:text, :description, 0, nil]], :name=>"user"}, nil]
26
26
 
27
27
  >> @client.create({},:code => 400)
28
28
  => [:error, {:description=>nil, :error_type=>"validation", :error_details=>{:description=>["is required"], :name=>["is required"], :password=>["is required"]}}]
29
29
  >> @client.create({:'user[name]' => 'asdf',:'user[password]' => 'asdf', :'user[description]' => 'xxxx'})
30
- => [:instance, {:url=>"/user/1", :schema=>[["integer", :id, 2, 1], ["text", :name, 4, "asdf"], [:password, :password, 4, "asdf"], ["text", :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
30
+ => [:instance, {:url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:text, :name, 4, "asdf"], [:password, :password, 4, "asdf"], [:text, :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
31
31
 
32
32
  >> MR::User[1].to_s
33
33
  => "asdf"
34
34
  >> MR::User[1].url
35
35
  => "/user/1"
36
36
  >> MR::User[1].reggae_link
37
- => [:link, {:url=>"/user/1", :title=>""},[]]
37
+ => [:link, {:url=>"/user/1", :title=>""},nil]
38
38
  >> MR::User[1].reggae_link('foobar')
39
- => [:link, {:url=>"/user/1", :title=>"Foobar"},[]]
39
+ => [:link, {:url=>"/user/1", :title=>"Foobar"},nil]
40
40
  >> MR::User[1].rest_cols
41
41
  => [:id, :name, :password, :description]
42
42
  >> MR::User[1].write_cols
@@ -46,54 +46,54 @@ examples:
46
46
  >> MR::User[1].required_cols
47
47
  => []
48
48
  >> MR::User[1].reggae_schema
49
- => [["integer", :id, 2, 1], ["text", :name, 4, "asdf"], [:password, :password, 4, "asdf"], ["text", :description, 0, "xxxx"]]
49
+ => [[:integer, :id, 2, 1], [:text, :name, 4, "asdf"], [:password, :password, 4, "asdf"], [:text, :description, 0, "xxxx"]]
50
50
  >> MR::User[1].reggae_instance
51
- => [:instance, {:url=>"/user/1", :schema=>[["integer", :id, 2, 1], ["text", :name, 4, "asdf"], [:password, :password, 4, "asdf"], ["text", :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
51
+ => [:instance, {:url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:text, :name, 4, "asdf"], [:password, :password, 4, "asdf"], [:text, :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
52
52
 
53
53
  >> @client.create({:'user[name]' => 'asdf',:'user[password]' => 'asdf', :'user[description]' => 'xxxx'},:code => 400)
54
54
  => [:error, {:description=>nil, :error_type=>"validation", :error_details=>{:name=>["is already taken"]}}]
55
55
  >> @client.create({:'user[name]' => 'asd',:'user[password]' => 'asdf', :'user[description]' => 'xxxx'})
56
- => [:instance, {:url=>"/user/2", :schema=>[["integer", :id, 2, 2], ["text", :name, 4, "asd"], [:password, :password, 4, "asdf"], ["text", :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
56
+ => [:instance, {:url=>"/user/2", :schema=>[[:integer, :id, 2, 2], [:text, :name, 4, "asd"], [:password, :password, 4, "asdf"], [:text, :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
57
57
  >> @client.read
58
- => [[:instance, {:url=>"/user/1", :schema=>[["integer", :id, 2, 1], ["text", :name, 4, "asdf"], [:password, :password, 4, "asdf"], ["text", :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []], [:instance, {:url=>"/user/2", :schema=>[["integer", :id, 2, 2], ["text", :name, 4, "asd"], [:password, :password, 4, "asdf"], ["text", :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]]
58
+ => [[:instance, {:url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:text, :name, 4, "asdf"], [:password, :password, 4, "asdf"], [:text, :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []], [:instance, {:url=>"/user/2", :schema=>[[:integer, :id, 2, 2], [:text, :name, 4, "asd"], [:password, :password, 4, "asdf"], [:text, :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]]
59
59
  >> @client.del({},:instance_id => 2)
60
- => [:instance, {:url=>"/user/2", :schema=>[["integer", :id, 2, 2], ["text", :name, 4, "asd"], [:password, :password, 4, "asdf"], ["text", :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
60
+ => [:instance, {:url=>"/user/2", :schema=>[[:integer, :id, 2, 2], [:text, :name, 4, "asd"], [:password, :password, 4, "asdf"], [:text, :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
61
61
  >> @client.read
62
- => [[:instance, {:url=>"/user/1", :schema=>[["integer", :id, 2, 1], ["text", :name, 4, "asdf"], [:password, :password, 4, "asdf"], ["text", :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]]
62
+ => [[:instance, {:url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:text, :name, 4, "asdf"], [:password, :password, 4, "asdf"], [:text, :description, 0, "xxxx"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]]
63
63
  >> @client.read({},:instance_id => 2, :code => 404)
64
64
  => [:error, {:description=>"Not Found", :error_type=>"routing", :error_details=>nil}]
65
65
  >> @client.update({:'user[description]' => 'ddd'},:instance_id => 1)
66
- => [:instance, {:url=>"/user/1", :schema=>[["integer", :id, 2, 1], ["text", :name, 4, "asdf"], [:password, :password, 4, "asdf"], ["text", :description, 0, "ddd"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
66
+ => [:instance, {:url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:text, :name, 4, "asdf"], [:password, :password, 4, "asdf"], [:text, :description, 0, "ddd"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
67
67
  >> @client.update({},:instance_id => 1)
68
- => [:instance, {:url=>"/user/1", :schema=>[["integer", :id, 2, 1], ["text", :name, 4, "asdf"], [:password, :password, 4, "asdf"], ["text", :description, 0, "ddd"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
68
+ => [:instance, {:url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:text, :name, 4, "asdf"], [:password, :password, 4, "asdf"], [:text, :description, 0, "ddd"]], :new_rec=>false, :actions=>nil, :name=>"user"}, []]
69
69
 
70
70
  >> MR::User.reject_cols![:new?][true] << 'name'
71
71
  => [/^id$/, /_type$/, /date_(created|updated)/, "name"]
72
72
  >> MR::User.new.rest_cols
73
73
  => [:password, :description]
74
74
  >> @client.read({}, :method => 'new')
75
- => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/user/", :schema=>[[:password, :password, 4, nil], ["text", :description, 0, nil]], :name=>"user"}, []]
75
+ => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/user/", :schema=>[[:password, :password, 4, nil], [:text, :description, 0, nil]], :name=>"user"}, nil]
76
76
  >> @client.read
77
- => [[:instance, {:new_rec=>false, :actions=>nil, :url=>"/user/1", :schema=>[["integer", :id, 2, 1], ["text", :name, 4, "asdf"], [:password, :password, 4, "asdf"], ["text", :description, 0, "ddd"]], :name=>"user"}, []]]
77
+ => [[:instance, {:new_rec=>false, :actions=>nil, :url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:text, :name, 4, "asdf"], [:password, :password, 4, "asdf"], [:text, :description, 0, "ddd"]], :name=>"user"}, []]]
78
78
  >> MR::User.reject_cols![:new?][false] << 'name'
79
79
  => [/_type$/, "name"]
80
80
  >> @client.read
81
- => [[:instance, {:new_rec=>false, :actions=>nil, :url=>"/user/1", :schema=>[["integer", :id, 2, 1], [:password, :password, 4, "asdf"], ["text", :description, 0, "ddd"]], :name=>"user"}, []]]
81
+ => [[:instance, {:new_rec=>false, :actions=>nil, :url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:password, :password, 4, "asdf"], [:text, :description, 0, "ddd"]], :name=>"user"}, []]]
82
82
 
83
83
  >> MR::User.ro_cols![:new?][false] << 'description'
84
84
  => [/^id$/, /_id$/, /date_(created|updated)/, "description"]
85
85
  >> @client.read({},:method => 'new')
86
- => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/user/", :schema=>[[:password, :password, 4, nil], ["text", :description, 0, nil]], :name=>"user"}, []]
86
+ => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/user/", :schema=>[[:password, :password, 4, nil], [:text, :description, 0, nil]], :name=>"user"}, nil]
87
87
  >> @client.read
88
- => [[:instance, {:new_rec=>false, :actions=>nil, :url=>"/user/1", :schema=>[["integer", :id, 2, 1], [:password, :password, 4, "asdf"], ["text", :description, 2, "ddd"]], :name=>"user"}, []]]
88
+ => [[:instance, {:new_rec=>false, :actions=>nil, :url=>"/user/1", :schema=>[[:integer, :id, 2, 1], [:password, :password, 4, "asdf"], [:text, :description, 2, "ddd"]], :name=>"user"}, []]]
89
89
 
90
90
  >> MR::User.hidden_cols![:new?][true]=['password']
91
91
  => ["password"]
92
92
  >> @client.read({},:method => 'new')
93
- => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/user/", :schema=>[[:password, :password, 5, nil], ["text", :description, 0, nil]], :name=>"user"}, []]
93
+ => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/user/", :schema=>[[:password, :password, 5, nil], [:text, :description, 0, nil]], :name=>"user"}, nil]
94
94
 
95
95
  >> MR::User.required_cols![:new?][true]=['description']
96
96
  => ["description"]
97
97
  >> @client.read({},:method => 'new')
98
- => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/user/", :schema=>[[:password, :password, 5, nil], ["text", :description, 4, nil]], :name=>"user"}, []]
98
+ => [:instance, {:new_rec=>true, :actions=>nil, :url=>"/user/", :schema=>[[:password, :password, 5, nil], [:text, :description, 4, nil]], :name=>"user"}, nil]
99
99
 
@@ -4,10 +4,10 @@
4
4
  examples: generate an instance
5
5
 
6
6
  >> @instance=Marley::ReggaeInstance.new({:name => 'foo',:schema => []})
7
- => [:instance, {:schema=>[], :name=>"foo"}, []]
7
+ => [:instance, {:schema=>[], :name=>"foo"}, nil]
8
8
 
9
9
  >> @link=Marley::ReggaeLink.new({:url => '/', :title => 'asdf'})
10
- => [:link, {:url=>"/", :title=>"asdf"}, []]
10
+ => [:link, {:url=>"/", :title=>"asdf"}, nil]
11
11
  >> @link.update(:url => '/asdf/')
12
- => [:link, {:url=>"/asdf/", :title=>"asdf"}, []]
12
+ => [:link, {:url=>"/asdf/", :title=>"asdf"}, nil]
13
13
 
@@ -11,54 +11,54 @@ end
11
11
  examples: announcements with private and public tags
12
12
 
13
13
  >> @announcement1=@client1.read({},{:method => 'new'})
14
- => [:instance, {:schema=>[["integer", :user_id, 3, 1], ["text", :name, 4, nil], ["text", :message, 0, nil], ["text", :_private_tags, 0, nil], ["text", :_public_tags, 0, nil]], :url=>"/announcement/", :new_rec=>true, :actions=>nil, :name=>"announcement"}, []]
14
+ => [:instance, {:schema=>[[:integer, :user_id, 3, 1], [:text, :name, 4, nil], [:text, :message, 0, nil], [:text, :_private_tags, 0, nil], [:text, :_public_tags, 0, nil]], :url=>"/announcement/", :new_rec=>true, :actions=>nil, :name=>"announcement"}, nil]
15
15
 
16
16
  >> @client1.create(@announcement1.set_values({:name => 'user1 ann1', :message => 'user1ann1 msg', :_private_tags => 'aaa,bbb',:_public_tags => 'ppp'}), :url => @announcement1.url)
17
- => [:instance, {:schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 ann1"], ["text", :message, 0, "user1ann1 msg"], ["text", :_private_tags, 0, "aaa, bbb"], ["text", :_public_tags, 0, "ppp"]], :url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :name=>"announcement"}, []]
17
+ => [:instance, {:schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 ann1"], [:text, :message, 0, "user1ann1 msg"], [:text, :_private_tags, 0, "aaa, bbb"], [:text, :_public_tags, 0, "ppp"]], :url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :name=>"announcement"}, []]
18
18
  >> @client1.read
19
- => [[:instance, {:schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 ann1"], ["text", :message, 0, "user1ann1 msg"], ["text", :_private_tags, 0, "aaa, bbb"], ["text", :_public_tags, 0, "ppp"]], :url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :name=>"announcement"}, []]]
19
+ => [[:instance, {:schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 ann1"], [:text, :message, 0, "user1ann1 msg"], [:text, :_private_tags, 0, "aaa, bbb"], [:text, :_public_tags, 0, "ppp"]], :url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :name=>"announcement"}, []]]
20
20
 
21
21
  >> @client2.read
22
- => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 ann1"], ["text", :message, 2, "user1ann1 msg"], ["text", :_private_tags, 0, ""], ["text", :_public_tags, 0, "ppp"]], :name=>"announcement"}, []]]
22
+ => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 ann1"], [:text, :message, 2, "user1ann1 msg"], [:text, :_private_tags, 0, ""], [:text, :_public_tags, 0, "ppp"]], :name=>"announcement"}, []]]
23
23
 
24
24
  >> @announcement2=@client2.read({},{:method => 'new'})
25
- => [:instance, {:url=>"/announcement/", :new_rec=>true, :actions=>nil, :schema=>[["integer", :user_id, 3, 2], ["text", :name, 4, nil], ["text", :message, 0, nil], ["text", :_private_tags, 0, nil], ["text", :_public_tags, 0, nil]], :name=>"announcement"}, []]
25
+ => [:instance, {:url=>"/announcement/", :new_rec=>true, :actions=>nil, :schema=>[[:integer, :user_id, 3, 2], [:text, :name, 4, nil], [:text, :message, 0, nil], [:text, :_private_tags, 0, nil], [:text, :_public_tags, 0, nil]], :name=>"announcement"}, nil]
26
26
  >> @client1.create(@announcement.set_values({:name => 'user1 ann1', :message => 'user1ann1 msg', :_private_tags => 'aaa,bbb',:_public_tags => 'ppp'}), :url => @announcement.url)
27
27
  >> @client2.create(@announcement2.set_values({:name => 'user2 ann1', :message => 'user2ann1 msg', :_private_tags => 'xxx',:_public_tags => 'yyy,zzz'}), :url => @announcement2.url)
28
- => [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 ann1"], ["text", :message, 0, "user2ann1 msg"], ["text", :_private_tags, 0, "xxx"], ["text", :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]
28
+ => [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 ann1"], [:text, :message, 0, "user2ann1 msg"], [:text, :_private_tags, 0, "xxx"], [:text, :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]
29
29
 
30
30
  >> @client1.read
31
- => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 ann1"], ["text", :message, 0, "user1ann1 msg"], ["text", :_private_tags, 0, "aaa, bbb"], ["text", :_public_tags, 0, "ppp"]], :name=>"announcement"}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 6, "user2 ann1"], ["text", :message, 2, "user2ann1 msg"], ["text", :_private_tags, 0, ""], ["text", :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]]
31
+ => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 ann1"], [:text, :message, 0, "user1ann1 msg"], [:text, :_private_tags, 0, "aaa, bbb"], [:text, :_public_tags, 0, "ppp"]], :name=>"announcement"}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 6, "user2 ann1"], [:text, :message, 2, "user2ann1 msg"], [:text, :_private_tags, 0, ""], [:text, :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]]
32
32
  >> @client2.read
33
- => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 ann1"], ["text", :message, 2, "user1ann1 msg"], ["text", :_private_tags, 0, ""], ["text", :_public_tags, 0, "ppp"]], :name=>"announcement"}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 ann1"], ["text", :message, 0, "user2ann1 msg"], ["text", :_private_tags, 0, "xxx"], ["text", :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]]
33
+ => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 ann1"], [:text, :message, 2, "user1ann1 msg"], [:text, :_private_tags, 0, ""], [:text, :_public_tags, 0, "ppp"]], :name=>"announcement"}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 ann1"], [:text, :message, 0, "user2ann1 msg"], [:text, :_private_tags, 0, "xxx"], [:text, :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]]
34
34
 
35
35
  >> @ann1client1=@client1.read({},:instance_id => 1)
36
- => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 ann1"], ["text", :message, 0, "user1ann1 msg"], ["text", :_private_tags, 0, "aaa, bbb"], ["text", :_public_tags, 0, "ppp"]], :name=>"announcement"}, []]
36
+ => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 ann1"], [:text, :message, 0, "user1ann1 msg"], [:text, :_private_tags, 0, "aaa, bbb"], [:text, :_public_tags, 0, "ppp"]], :name=>"announcement"}, []]
37
37
  :_public_tags, 0, "ppp"]], :name=>"announcement"}, []]
38
38
 
39
39
  >> @ann1client2=@client2.read({},:instance_id => 1)
40
- => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 ann1"], ["text", :message, 2, "user1ann1 msg"], ["text", :_private_tags, 0, ""], ["text", :_public_tags, 0, "ppp"]], :name=>"announcement"}, []]
40
+ => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 ann1"], [:text, :message, 2, "user1ann1 msg"], [:text, :_private_tags, 0, ""], [:text, :_public_tags, 0, "ppp"]], :name=>"announcement"}, []]
41
41
 
42
42
  >> @ann2client1=@client1.read({},:instance_id => 2)
43
- => [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 6, "user2 ann1"], ["text", :message, 2, "user2ann1 msg"], ["text", :_private_tags, 0, ""], ["text", :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]
43
+ => [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 6, "user2 ann1"], [:text, :message, 2, "user2ann1 msg"], [:text, :_private_tags, 0, ""], [:text, :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]
44
44
 
45
45
  >> @ann2client2=@client2.read({},:instance_id => 2)
46
- => [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 ann1"], ["text", :message, 0, "user2ann1 msg"], ["text", :_private_tags, 0, "xxx"], ["text", :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]
46
+ => [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 ann1"], [:text, :message, 0, "user2ann1 msg"], [:text, :_private_tags, 0, "xxx"], [:text, :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]
47
47
 
48
48
 
49
49
  >> @client1.update(@ann1client1.set_values(:_public_tags => 'uuu'), :url => @ann1client1.url)
50
- => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 ann1"], ["text", :message, 0, "user1ann1 msg"], ["text", :_private_tags, 0, "aaa, bbb"], ["text", :_public_tags, 0, "uuu"]], :name=>"announcement"}, []]
50
+ => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 ann1"], [:text, :message, 0, "user1ann1 msg"], [:text, :_private_tags, 0, "aaa, bbb"], [:text, :_public_tags, 0, "uuu"]], :name=>"announcement"}, []]
51
51
 
52
52
  >> @client2.read({},:instance_id => 1)
53
- => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 ann1"], ["text", :message, 2, "user1ann1 msg"], ["text", :_private_tags, 0, ""], ["text", :_public_tags, 0, "uuu"]], :name=>"announcement"}, []]
53
+ => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 ann1"], [:text, :message, 2, "user1ann1 msg"], [:text, :_private_tags, 0, ""], [:text, :_public_tags, 0, "uuu"]], :name=>"announcement"}, []]
54
54
  >> @client1.update(@ann1client1.set_values(:_private_tags => 'u,v,w'), :url => @ann1client1.url)
55
- => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 ann1"], ["text", :message, 0, "user1ann1 msg"], ["text", :_private_tags, 0, "u, v, w"], ["text", :_public_tags, 0, "uuu"]], :name=>"announcement"}, []]
55
+ => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 ann1"], [:text, :message, 0, "user1ann1 msg"], [:text, :_private_tags, 0, "u, v, w"], [:text, :_public_tags, 0, "uuu"]], :name=>"announcement"}, []]
56
56
  >> @client2.read({},:instance_id => 1)
57
- => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 ann1"], ["text", :message, 2, "user1ann1 msg"], ["text", :_private_tags, 0, ""], ["text", :_public_tags, 0, "uuu"]], :name=>"announcement"}, []]
57
+ => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 ann1"], [:text, :message, 2, "user1ann1 msg"], [:text, :_private_tags, 0, ""], [:text, :_public_tags, 0, "uuu"]], :name=>"announcement"}, []]
58
58
  >> @client2.update(@ann1client2.set_values(:_public_tags => 'ddd',:_private_tags => 'ee,www,rr'),:url => @ann1client2.url)
59
- => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 ann1"], ["text", :message, 2, "user1ann1 msg"], ["text", :_private_tags, 0, "ee, www, rr"], ["text", :_public_tags, 0, "ddd"]], :name=>"announcement"}, []]
59
+ => [:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 ann1"], [:text, :message, 2, "user1ann1 msg"], [:text, :_private_tags, 0, "ee, www, rr"], [:text, :_public_tags, 0, "ddd"]], :name=>"announcement"}, []]
60
60
 
61
61
  >> @client1.read
62
- => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 ann1"], ["text", :message, 0, "user1ann1 msg"], ["text", :_private_tags, 0, "u, v, w"], ["text", :_public_tags, 0, "ddd"]], :name=>"announcement"}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 6, "user2 ann1"], ["text", :message, 2, "user2ann1 msg"], ["text", :_private_tags, 0, ""], ["text", :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]]
62
+ => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 ann1"], [:text, :message, 0, "user1ann1 msg"], [:text, :_private_tags, 0, "u, v, w"], [:text, :_public_tags, 0, "ddd"]], :name=>"announcement"}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 6, "user2 ann1"], [:text, :message, 2, "user2ann1 msg"], [:text, :_private_tags, 0, ""], [:text, :_public_tags, 0, "yyy, zzz"]], :name=>"announcement"}, []]]
63
63
 
64
64
 
@@ -11,23 +11,23 @@ examples:
11
11
  >> @client.auth=@user1_auth
12
12
  => ["user1", "asdfasdf"]
13
13
  >> @secret=@client.read({}, :method => 'new')
14
- => [:instance, {:schema=>[["integer", :user_id, 3, 1], ["text", :name, 4, nil], ["text", :message, 0, nil], ["text", :_private_tags, 0, nil]], :url=>"/secret/", :new_rec=>true, :actions=>nil, :name=>"secret"}, []]
14
+ => [:instance, {:schema=>[[:integer, :user_id, 3, 1], [:text, :name, 4, nil], [:text, :message, 0, nil], [:text, :_private_tags, 0, nil]], :url=>"/secret/", :new_rec=>true, :actions=>nil, :name=>"secret"}, nil]
15
15
 
16
16
  >> @client.create(@secret.set_values(:name => 'user1 secret1', :_private_tags => 'xxxxxx,sss'))
17
- => [:instance, {:schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 secret1"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "xxxxxx, sss"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
17
+ => [:instance, {:schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 secret1"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "xxxxxx, sss"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
18
18
 
19
19
  >> @secret=@client.read[0]
20
- => [:instance, {:schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 secret1"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "xxxxxx, sss"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
20
+ => [:instance, {:schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 secret1"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "xxxxxx, sss"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
21
21
 
22
22
  >> @client.update(@secret.set_values(:_private_tags => "#{@secret.col_value(:_private_tags)},zzz,aaa"), :url => @secret.url)
23
- => [:instance, {:schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 secret1"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "xxxxxx, sss, zzz, aaa"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
23
+ => [:instance, {:schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 secret1"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "xxxxxx, sss, zzz, aaa"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
24
24
  >> @secret=@client.read[0]
25
- => [:instance, {:schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 secret1"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "xxxxxx, sss, zzz, aaa"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
25
+ => [:instance, {:schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 secret1"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "xxxxxx, sss, zzz, aaa"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
26
26
 
27
27
  >> @client.update(@secret.set_values(:_private_tags => "foo"), :url => @secret.url)
28
- => [:instance, {:schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 secret1"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "foo"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
28
+ => [:instance, {:schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 secret1"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "foo"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
29
29
  >> @secret=@client.read[0]
30
- => [:instance, {:schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 secret1"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "foo"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
30
+ => [:instance, {:schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 secret1"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "foo"]], :url=>"/secret/1", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
31
31
 
32
32
  >> DB[:tags].all
33
33
  => [{:tag=>"xxxxxx", :id=>1, :user_id=>1}, {:tag=>"sss", :id=>2, :user_id=>1}, {:tag=>"sss", :id=>3, :user_id=>1}, {:tag=>"zzz", :id=>4, :user_id=>1}, {:tag=>"aaa", :id=>5, :user_id=>1}, {:tag=>"foo", :id=>6, :user_id=>1}]
@@ -42,20 +42,20 @@ examples:
42
42
  => []
43
43
 
44
44
  >> @secret=@client.read({}, :method => 'new')
45
- => [:instance, {:schema=>[["integer", :user_id, 3, 2], ["text", :name, 4, nil], ["text", :message, 0, nil], ["text", :_private_tags, 0, nil]], :url=>"/secret/", :new_rec=>true, :actions=>nil, :name=>"secret"}, []]
45
+ => [:instance, {:schema=>[[:integer, :user_id, 3, 2], [:text, :name, 4, nil], [:text, :message, 0, nil], [:text, :_private_tags, 0, nil]], :url=>"/secret/", :new_rec=>true, :actions=>nil, :name=>"secret"}, nil]
46
46
 
47
47
  >> @client.create(@secret.set_values(:name => 'user2 secret', :_private_tags => 'foo,bar'))
48
- => [:instance, {:schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 secret"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "foo, bar"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
48
+ => [:instance, {:schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 secret"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "foo, bar"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
49
49
 
50
50
  >> @secret=@client.read[0]
51
- => [:instance, {:schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 secret"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "foo, bar"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
51
+ => [:instance, {:schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 secret"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "foo, bar"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
52
52
  >> @client.update(@secret.set_values(:_private_tags => "#{@secret.col_value(:_private_tags)},baz,bat"), :url => @secret.url)
53
- => [:instance, {:schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 secret"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "foo, bar, baz, bat"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
53
+ => [:instance, {:schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 secret"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "foo, bar, baz, bat"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
54
54
 
55
55
  >> @secret=@client.read[0]
56
- => [:instance, {:schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 secret"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "foo, bar, baz, bat"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
56
+ => [:instance, {:schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 secret"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "foo, bar, baz, bat"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
57
57
  >> @client.update(@secret.set_values(:_private_tags => "boo"), :url => @secret.url)
58
- => [:instance, {:schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 secret"], ["text", :message, 0, nil], ["text", :_private_tags, 0, "boo"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
58
+ => [:instance, {:schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 secret"], [:text, :message, 0, nil], [:text, :_private_tags, 0, "boo"]], :url=>"/secret/2", :new_rec=>false, :actions=>nil, :name=>"secret"}, []]
59
59
 
60
60
  >> DB[:tags].all
61
61
  => [{:tag=>"xxxxxx", :id=>1, :user_id=>1}, {:tag=>"sss", :id=>2, :user_id=>1}, {:tag=>"sss", :id=>3, :user_id=>1}, {:tag=>"zzz", :id=>4, :user_id=>1}, {:tag=>"aaa", :id=>5, :user_id=>1}, {:tag=>"foo", :id=>6, :user_id=>1}, {:tag=>"foo", :id=>7, :user_id=>2}, {:tag=>"bar", :id=>8, :user_id=>2}, {:tag=>"bar", :id=>9, :user_id=>2}, {:tag=>"baz", :id=>10, :user_id=>2}, {:tag=>"bat", :id=>11, :user_id=>2}, {:tag=>"boo", :id=>12, :user_id=>2}]
@@ -17,31 +17,31 @@ example: user1 logged in
17
17
  # Note: Date hack, defined in test_helper.rb is causing the strings to appear in the date_created/updated fields
18
18
 
19
19
  >> @client.read
20
- => [[:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["text", :name, 0, "user1"], ["text", :email, 0, nil], ["date", :birthday, 0, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []], [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 2], ["text", :name, 2, "user2"], ["text", :email, 2, nil], ["date", :birthday, 2, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 2, nil]], :name=>"user", :url=>"/user/2"}, []]]
20
+ => [[:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:text, :name, 0, "user1"], [:text, :email, 0, nil], [:date, :birthday, 0, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []], [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 2], [:text, :name, 2, "user2"], [:text, :email, 2, nil], [:date, :birthday, 2, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 2, nil]], :name=>"user", :url=>"/user/2"}, []]]
21
21
 
22
22
  >> @client.instance_id=1
23
23
  => 1
24
24
  >> @user1=@client.read
25
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["text", :name, 0, "user1"], ["text", :email, 0, nil], ["date", :birthday, 0, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
25
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:text, :name, 0, "user1"], [:text, :email, 0, nil], [:date, :birthday, 0, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
26
26
  >> @client.update(@user1)
27
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["text", :name, 0, "user1"], ["text", :email, 0, nil], ["date", :birthday, 0, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
27
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:text, :name, 0, "user1"], [:text, :email, 0, nil], [:date, :birthday, 0, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
28
28
 
29
29
  >> @user1=@client.read
30
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["text", :name, 0, "user1"], ["text", :email, 0, nil], ["date", :birthday, 0, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
30
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:text, :name, 0, "user1"], [:text, :email, 0, nil], [:date, :birthday, 0, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
31
31
  >> @client.update(@user1)
32
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["text", :name, 0, "user1"], ["text", :email, 0, nil], ["date", :birthday, 0, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
32
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:text, :name, 0, "user1"], [:text, :email, 0, nil], [:date, :birthday, 0, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
33
33
  >> @user1.col_value(:password, 'zxcvzxcv')
34
34
  => "zxcvzxcv"
35
35
  >> @client.update(@user1,{:code => 400})
36
36
  => [:error, {:error_type=>"validation", :error_details=>{:old_password=>["Old Password Incorrect"], :confirm_password=>["Passwords do not match"]}, :description=>nil}]
37
37
  >> @user1.set_values(:confirm_password => 'zxcvzxcv',:old_password => 'asdfasdf')
38
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["text", :name, 0, "user1"], ["text", :email, 0, nil], ["date", :birthday, 0, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 0, nil], [:password, :old_password, 0, "asdfasdf"], [:password, :password, 0, "zxcvzxcv"], [:password, :confirm_password, 0, "zxcvzxcv"]], :name=>"user", :url=>"/user/1"}, []]
38
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:text, :name, 0, "user1"], [:text, :email, 0, nil], [:date, :birthday, 0, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 0, nil], [:password, :old_password, 0, "asdfasdf"], [:password, :password, 0, "zxcvzxcv"], [:password, :confirm_password, 0, "zxcvzxcv"]], :name=>"user", :url=>"/user/1"}, []]
39
39
  >> @client.update(@user1)
40
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["text", :name, 2, "user1"], ["text", :email, 2, nil], ["date", :birthday, 2, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 2, nil]], :name=>"user", :url=>"/user/1"}, []]
40
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:text, :name, 2, "user1"], [:text, :email, 2, nil], [:date, :birthday, 2, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 2, nil]], :name=>"user", :url=>"/user/1"}, []]
41
41
  >> @client.read({},:code => 401)
42
42
  => [:error, {:error_type=>"authentication", :error_details=>nil, :description=>nil}]
43
43
  >> @client.read({},:auth => ['user1', 'zxcvzxcv'])
44
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["text", :name, 0, "user1"], ["text", :email, 0, nil], ["date", :birthday, 0, nil], ["datetime", :date_created, 2, "date_created"], ["text", :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
44
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:text, :name, 0, "user1"], [:text, :email, 0, nil], [:date, :birthday, 0, nil], [:datetime, :date_created, 2, "date_created"], [:text, :description, 0, nil], [:password, :old_password, 0, nil], [:password, :password, 0, nil], [:password, :confirm_password, 0, nil]], :name=>"user", :url=>"/user/1"}, []]
45
45
 
46
46
  example: user1 reading/writing secrets
47
47
 
@@ -53,14 +53,14 @@ example: user1 reading/writing secrets
53
53
  >> @client.read
54
54
  => []
55
55
  >> @secret=@client.read({}, {:method => 'new'})
56
- => [:instance, {:new_rec=>true, :actions=>nil, :schema=>[["integer", :user_id, 3, 1], ["text", :name, 4, nil], ["text", :message, 0, nil]], :name=>"secret", :url=>"/secret/"}, []]
56
+ => [:instance, {:new_rec=>true, :actions=>nil, :schema=>[[:integer, :user_id, 3, 1], [:text, :name, 4, nil], [:text, :message, 0, nil]], :name=>"secret", :url=>"/secret/"}, nil]
57
57
 
58
58
  >> @client.create(@secret, {:code => 400})
59
59
  => [:error, {:error_type=>"validation", :error_details=>{:name=>["is required"]}, :description=>nil}]
60
60
  >> @client.create(@secret.set_values(:name => 'this is my secret'))
61
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "this is my secret"], ["text", :message, 0, nil]], :name=>"secret", :url=>"/secret/1"}, []]
61
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "this is my secret"], [:text, :message, 0, nil]], :name=>"secret", :url=>"/secret/1"}, []]
62
62
  >> @client.read
63
- => [[:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "this is my secret"], ["text", :message, 0, nil]], :name=>"secret", :url=>"/secret/1"}, []]]
63
+ => [[:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "this is my secret"], [:text, :message, 0, nil]], :name=>"secret", :url=>"/secret/1"}, []]]
64
64
  >> @client.read({},:auth => @user2_auth)
65
65
  => []
66
66
  >> @client.read({},:auth => @user2_auth,:instance_id => 1, :code => 403)
@@ -74,9 +74,9 @@ example: user2 reading/writing secrets
74
74
  >> @client.read
75
75
  => []
76
76
  >> @secret=@client.read({}, {:method => 'new'})
77
- => [:instance, {:new_rec=>true, :actions=>nil, :schema=>[["integer", :user_id, 3, 2], ["text", :name, 4, nil], ["text", :message, 0, nil]], :name=>"secret", :url=>"/secret/"}, []]
77
+ => [:instance, {:new_rec=>true, :actions=>nil, :schema=>[[:integer, :user_id, 3, 2], [:text, :name, 4, nil], [:text, :message, 0, nil]], :name=>"secret", :url=>"/secret/"}, nil]
78
78
  >> @client.create(@secret.set_values(:name => 'user2 my secret'))
79
- => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 my secret"], ["text", :message, 0, nil]], :name=>"secret", :url=>"/secret/1"}, []]
79
+ => [:instance, {:new_rec=>false, :actions=>nil, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 my secret"], [:text, :message, 0, nil]], :name=>"secret", :url=>"/secret/1"}, []]
80
80
 
81
81
  >> @client.read({}, :auth => @user1_auth)
82
82
  => []
@@ -92,29 +92,29 @@ examples: announcements
92
92
  => []
93
93
 
94
94
  >> @announcement=@client.read({},{:method => 'new'})
95
- => [:instance, {:new_rec=>true, :actions=>nil, :schema=>[["integer", :user_id, 3, 1], ["text", :name, 4, nil], ["text", :message, 0, nil]], :name=>"announcement", :url=>"/announcement/"}, []]
95
+ => [:instance, {:new_rec=>true, :actions=>nil, :schema=>[[:integer, :user_id, 3, 1], [:text, :name, 4, nil], [:text, :message, 0, nil]], :name=>"announcement", :url=>"/announcement/"}, nil]
96
96
  >> @client.create(@announcement.set_values({:name => 'user1 announcement'}))
97
- => [:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 announcement"], ["text", :message, 0, nil]], :name=>"announcement", :url=>"/announcement/1"}, []]
97
+ => [:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 announcement"], [:text, :message, 0, nil]], :name=>"announcement", :url=>"/announcement/1"}, []]
98
98
  >> @client.read
99
- => [[:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 announcement"], ["text", :message, 0, nil]], :name=>"announcement", :url=>"/announcement/1"}, []]]
99
+ => [[:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 announcement"], [:text, :message, 0, nil]], :name=>"announcement", :url=>"/announcement/1"}, []]]
100
100
  >> @client.create(@announcement.set_values({:name => 'user1 announcement2'}))
101
- => [:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 announcement2"], ["text", :message, 0, nil]], :name=>"announcement", :url=>"/announcement/2"}, []]
101
+ => [:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 announcement2"], [:text, :message, 0, nil]], :name=>"announcement", :url=>"/announcement/2"}, []]
102
102
  >> @client.read
103
- => [[:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 announcement"], ["text", :message, 0, nil]], :name=>"announcement", :url=>"/announcement/1"}, []], [:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 announcement2"], ["text", :message, 0, nil]], :name=>"announcement", :url=>"/announcement/2"}, []]]
103
+ => [[:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 announcement"], [:text, :message, 0, nil]], :name=>"announcement", :url=>"/announcement/1"}, []], [:instance, {:new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 announcement2"], [:text, :message, 0, nil]], :name=>"announcement", :url=>"/announcement/2"}, []]]
104
104
 
105
105
  >> @client.auth=@user2_auth
106
106
  => ["user2", "asdfasdf"]
107
107
  >> @client.read
108
- => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 announcement"], ["text", :message, 2, nil]]}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 announcement2"], ["text", :message, 2, nil]]}, []]]
108
+ => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 announcement"], [:text, :message, 2, nil]]}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 announcement2"], [:text, :message, 2, nil]]}, []]]
109
109
 
110
110
  >> @client.read
111
- => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 announcement"], ["text", :message, 2, nil]]}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 announcement2"], ["text", :message, 2, nil]]}, []]]
111
+ => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 announcement"], [:text, :message, 2, nil]]}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 announcement2"], [:text, :message, 2, nil]]}, []]]
112
112
  >> @announcement=@client.read({},{:method => 'new'})
113
- => [:instance, {:url=>"/announcement/", :new_rec=>true, :actions=>nil, :name=>"announcement", :schema=>[["integer", :user_id, 3, 2], ["text", :name, 4, nil], ["text", :message, 0, nil]]}, []]
113
+ => [:instance, {:url=>"/announcement/", :new_rec=>true, :actions=>nil, :name=>"announcement", :schema=>[[:integer, :user_id, 3, 2], [:text, :name, 4, nil], [:text, :message, 0, nil]]}, nil]
114
114
  >> @client.create(@announcement.set_values({:name => 'user2 announcement'}))
115
- => [:instance, {:url=>"/announcement/3", :new_rec=>false, :actions=>{:delete=>"/announcement/3"}, :name=>"announcement", :schema=>[["integer", :id, 2, 3], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 announcement"], ["text", :message, 0, nil]]}, []]
115
+ => [:instance, {:url=>"/announcement/3", :new_rec=>false, :actions=>{:delete=>"/announcement/3"}, :name=>"announcement", :schema=>[[:integer, :id, 2, 3], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 announcement"], [:text, :message, 0, nil]]}, []]
116
116
  >> @client.read
117
- => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 announcement"], ["text", :message, 2, nil]]}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 1], ["text", :name, 6, "user1 announcement2"], ["text", :message, 2, nil]]}, []], [:instance, {:url=>"/announcement/3", :new_rec=>false, :actions=>{:delete=>"/announcement/3"}, :name=>"announcement", :schema=>[["integer", :id, 2, 3], ["integer", :user_id, 3, 2], ["text", :name, 4, "user2 announcement"], ["text", :message, 0, nil]]}, []]]
117
+ => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 announcement"], [:text, :message, 2, nil]]}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 1], [:text, :name, 6, "user1 announcement2"], [:text, :message, 2, nil]]}, []], [:instance, {:url=>"/announcement/3", :new_rec=>false, :actions=>{:delete=>"/announcement/3"}, :name=>"announcement", :schema=>[[:integer, :id, 2, 3], [:integer, :user_id, 3, 2], [:text, :name, 4, "user2 announcement"], [:text, :message, 0, nil]]}, []]]
118
118
  >> @client.read({}, :auth => @user1_auth)
119
- => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :name=>"announcement", :schema=>[["integer", :id, 2, 1], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 announcement"], ["text", :message, 0, nil]]}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :name=>"announcement", :schema=>[["integer", :id, 2, 2], ["integer", :user_id, 3, 1], ["text", :name, 4, "user1 announcement2"], ["text", :message, 0, nil]]}, []], [:instance, {:url=>"/announcement/3", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[["integer", :id, 2, 3], ["integer", :user_id, 3, 2], ["text", :name, 6, "user2 announcement"], ["text", :message, 2, nil]]}, []]]
119
+ => [[:instance, {:url=>"/announcement/1", :new_rec=>false, :actions=>{:delete=>"/announcement/1"}, :name=>"announcement", :schema=>[[:integer, :id, 2, 1], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 announcement"], [:text, :message, 0, nil]]}, []], [:instance, {:url=>"/announcement/2", :new_rec=>false, :actions=>{:delete=>"/announcement/2"}, :name=>"announcement", :schema=>[[:integer, :id, 2, 2], [:integer, :user_id, 3, 1], [:text, :name, 4, "user1 announcement2"], [:text, :message, 0, nil]]}, []], [:instance, {:url=>"/announcement/3", :new_rec=>false, :actions=>nil, :name=>"announcement", :schema=>[[:integer, :id, 2, 3], [:integer, :user_id, 3, 2], [:text, :name, 6, "user2 announcement"], [:text, :message, 2, nil]]}, []]]
120
120
 
@@ -3,7 +3,7 @@ example: read new user form but not user list
3
3
  >> @client.read({},:code => 401)
4
4
  => [:error, {:error_type=>"authentication", :error_details=>nil, :description=>nil}]
5
5
  >> @client.read({},:method => 'new')
6
- => [:instance, {:new_rec=>true, :actions=>nil, :schema=>[["text", :name, 0, nil], ["text", :email, 0, nil], ["date", :birthday, 0, nil], ["text", :description, 0, nil], [:password, :password, 4, nil], [:password, :confirm_password, 4, nil]], :name=>"user", :url=>"/user/"}, []]
6
+ => [:instance, {:new_rec=>true, :actions=>nil, :schema=>[[:text, :name, 0, nil], [:text, :email, 0, nil], [:date, :birthday, 0, nil], [:text, :description, 0, nil], [:password, :password, 4, nil], [:password, :confirm_password, 4, nil]], :name=>"user", :url=>"/user/"}, nil]
7
7
 
8
8
 
9
9
  example: user validation
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marley
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Herb Daily
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2012-02-27 00:00:00 -03:00
12
+ date: 2012-03-20 00:00:00 -03:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 0.15.1
53
+ version: 0.16.0
54
54
  version:
55
55
  description: "Marley is a framework for quickly building RESTful web services and applications. Development is fast because Marley implements lots of sensible defaults, all of which can be overridden and most of which can be overridden easily. "
56
56
  email: herb.daily@safe-mail.net