rubyrest 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/CHANGELOG +4 -0
  2. data/Rakefile +1 -1
  3. data/lib/rubyrest/atom.rb +13 -6
  4. metadata +2 -2
data/CHANGELOG CHANGED
@@ -5,6 +5,10 @@
5
5
  * Refactor code, style it more 'a la' Ruby.
6
6
  * Provide more complex examples, such as Database Configurations
7
7
 
8
+ == Release 0.0.5
9
+
10
+ * In Atom Entry representations: related links can now be customized for each principal. Three different kinds of links are for the moment supported: 'child', 'parent' and 'siblings'. This enables the service developer to define more flexible web navigation rules.
11
+
8
12
  == Release 0.0.4
9
13
 
10
14
  * Module RubyRest::Client has been redesigned into class RubyRest::Client::Default which offers a higher level api by translating create, retrieve, update and delete method calls into proper HTTP GET, POST, PUT and DELETE requests.
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ require 'fileutils'
6
6
  include FileUtils
7
7
 
8
8
  NAME = "rubyrest"
9
- VERS = "0.0.4"
9
+ VERS = "0.0.5"
10
10
  CLEAN.include ['**/.*.sw?', 'pkg/*', '.config', 'doc/*', 'coverage/*']
11
11
  RDOC_OPTS = ['--quiet', '--title', "Ruby-on-Rest: A simple REST framework for Ruby",
12
12
  "--opname", "index.html",
data/lib/rubyrest/atom.rb CHANGED
@@ -39,7 +39,7 @@ module RubyRest
39
39
  if @result.respond_to? "each"
40
40
  title = @property || @model
41
41
  build_feed( @result, builder, request.request_uri, request.path, title )
42
- else build_entry( @result, builder, request.request_uri ) end
42
+ else build_entry( @result, builder, request.path ) end
43
43
  end
44
44
  end
45
45
 
@@ -96,15 +96,22 @@ module RubyRest
96
96
  builder.updated format_atom_date( object.atom_updated )
97
97
  builder.id entry_link
98
98
  builder.summary object.atom_summary
99
- builder.link( "rel" => "alternate", "href" => entry_link )
99
+ builder.link( :rel => :alternate, :href => entry_link )
100
100
 
101
101
  if object.respond_to?( :atom_related )
102
102
  related_entities = object.atom_related( @principal )
103
- if related_entities.respond_to?( :each )
103
+ if related_entities != nil
104
104
  related_entities.each{ |related|
105
- builder.link( "rel" => "related", "href" => "#{entry_link}/#{related}", "title" => "#{related}", "type" => ATOM_TYPE )
106
- }
107
- end
105
+ case related[:type]
106
+ when :child
107
+ builder.link( :rel => related[:type], :href => "#{entry_link}/#{related[:model]}", :title => related[:model], :type => ATOM_TYPE )
108
+ when :parent
109
+ builder.link( :rel => related[:type], :href => "/#{related[:model]}/#{object.send related[:model]}", :title => related[:model], :type => ATOM_TYPE )
110
+ else :siblings
111
+ builder.link( :rel => related[:type], :href => "/#{related[:model]}", :title => related[:model], :type => ATOM_TYPE )
112
+ end
113
+ }
114
+ end
108
115
  end
109
116
 
110
117
  builder.moodisland :content do
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.1
3
3
  specification_version: 1
4
4
  name: rubyrest
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.4
7
- date: 2007-04-15 00:00:00 +02:00
6
+ version: 0.0.5
7
+ date: 2007-04-20 00:00:00 +02:00
8
8
  summary: REST framework for Ruby.
9
9
  require_paths:
10
10
  - lib