rubyrest 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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