restfulie 0.1.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/Gemfile +28 -0
  2. data/Gemfile.lock +128 -0
  3. data/LICENSE +17 -0
  4. data/README.textile +138 -0
  5. data/Rakefile +146 -0
  6. data/lib/restfulie/client/base.rb +36 -0
  7. data/lib/restfulie/client/cache/basic.rb +76 -0
  8. data/lib/restfulie/client/cache/fake.rb +15 -0
  9. data/lib/restfulie/client/cache/http_ext.rb +123 -0
  10. data/lib/restfulie/client/cache/restrictions.rb +13 -0
  11. data/lib/restfulie/client/cache.rb +11 -0
  12. data/lib/restfulie/client/configuration.rb +67 -0
  13. data/lib/restfulie/client/dsl.rb +66 -0
  14. data/lib/restfulie/client/entry_point.rb +61 -0
  15. data/lib/restfulie/client/ext/atom_ext.rb +14 -0
  16. data/lib/restfulie/client/ext/http_ext.rb +22 -0
  17. data/lib/restfulie/client/ext/json_ext.rb +16 -0
  18. data/lib/restfulie/client/feature/base.rb +75 -0
  19. data/lib/restfulie/client/feature/base_request.rb +35 -0
  20. data/lib/restfulie/client/feature/cache.rb +16 -0
  21. data/lib/restfulie/client/feature/enhance_response.rb +12 -0
  22. data/lib/restfulie/client/feature/follow_request.rb +41 -0
  23. data/lib/restfulie/client/feature/history.rb +26 -0
  24. data/lib/restfulie/client/feature/history_request.rb +19 -0
  25. data/lib/restfulie/client/feature/open_search/pattern_matcher.rb +25 -0
  26. data/lib/restfulie/client/feature/open_search.rb +21 -0
  27. data/lib/restfulie/client/feature/serialize_body.rb +32 -0
  28. data/lib/restfulie/client/feature/setup_header.rb +22 -0
  29. data/lib/restfulie/client/feature/throw_error.rb +41 -0
  30. data/lib/restfulie/client/feature/verb.rb +119 -0
  31. data/lib/restfulie/client/feature.rb +5 -0
  32. data/lib/restfulie/client/http/cache.rb +28 -0
  33. data/lib/restfulie/client/http/error.rb +77 -0
  34. data/lib/restfulie/client/http/response_holder.rb +29 -0
  35. data/lib/restfulie/client/http.rb +7 -0
  36. data/lib/restfulie/client/master_delegator.rb +31 -0
  37. data/lib/restfulie/client/mikyung/concatenator.rb +18 -0
  38. data/lib/restfulie/client/mikyung/core.rb +70 -0
  39. data/lib/restfulie/client/mikyung/languages/german.rb +24 -0
  40. data/lib/restfulie/client/mikyung/languages/portuguese.rb +23 -0
  41. data/lib/restfulie/client/mikyung/languages.rb +11 -0
  42. data/lib/restfulie/client/mikyung/rest_process_model.rb +191 -0
  43. data/lib/restfulie/client/mikyung/steady_state_walker.rb +38 -0
  44. data/lib/restfulie/client/mikyung/then_condition.rb +39 -0
  45. data/lib/restfulie/client/mikyung/when_condition.rb +57 -0
  46. data/lib/restfulie/client/mikyung.rb +15 -0
  47. data/lib/restfulie/client.rb +26 -0
  48. data/lib/restfulie/common/converter/atom/base.rb +91 -0
  49. data/lib/restfulie/common/converter/atom/builder.rb +111 -0
  50. data/lib/restfulie/common/converter/atom/helpers.rb +17 -0
  51. data/lib/restfulie/common/converter/atom.rb +12 -0
  52. data/lib/restfulie/common/converter/json/base.rb +87 -0
  53. data/lib/restfulie/common/converter/json/builder.rb +102 -0
  54. data/lib/restfulie/common/converter/json/helpers.rb +17 -0
  55. data/lib/restfulie/common/converter/json.rb +12 -0
  56. data/lib/restfulie/common/converter/open_search/descriptor.rb +32 -0
  57. data/lib/restfulie/common/converter/open_search.rb +16 -0
  58. data/lib/restfulie/common/converter/values.rb +33 -0
  59. data/lib/restfulie/common/converter/xml/base.rb +63 -0
  60. data/lib/restfulie/common/converter/xml/builder.rb +113 -0
  61. data/lib/restfulie/common/converter/xml/helpers.rb +17 -0
  62. data/lib/restfulie/common/converter/xml/link.rb +30 -0
  63. data/lib/restfulie/common/converter/xml/links.rb +21 -0
  64. data/lib/restfulie/common/converter/xml.rb +14 -0
  65. data/lib/restfulie/common/converter.rb +43 -0
  66. data/lib/restfulie/common/core_ext/hash.rb +18 -0
  67. data/lib/restfulie/common/core_ext.rb +1 -0
  68. data/lib/restfulie/common/error.rb +19 -0
  69. data/lib/restfulie/common/links.rb +9 -0
  70. data/lib/restfulie/common/logger.rb +19 -0
  71. data/lib/restfulie/common/representation/atom/atom.rng +597 -0
  72. data/lib/restfulie/common/representation/atom/base.rb +142 -0
  73. data/lib/restfulie/common/representation/atom/category.rb +41 -0
  74. data/lib/restfulie/common/representation/atom/entry.rb +59 -0
  75. data/lib/restfulie/common/representation/atom/factory.rb +43 -0
  76. data/lib/restfulie/common/representation/atom/feed.rb +110 -0
  77. data/lib/restfulie/common/representation/atom/link.rb +68 -0
  78. data/lib/restfulie/common/representation/atom/person.rb +48 -0
  79. data/lib/restfulie/common/representation/atom/source.rb +59 -0
  80. data/lib/restfulie/common/representation/atom/tag_collection.rb +38 -0
  81. data/lib/restfulie/common/representation/atom/xml.rb +90 -0
  82. data/lib/restfulie/common/representation/atom.rb +20 -0
  83. data/lib/restfulie/common/representation/generic.rb +22 -0
  84. data/lib/restfulie/common/representation/json/base.rb +27 -0
  85. data/lib/restfulie/common/representation/json/keys_as_methods.rb +74 -0
  86. data/lib/restfulie/common/representation/json/link.rb +29 -0
  87. data/lib/restfulie/common/representation/json/link_collection.rb +23 -0
  88. data/lib/restfulie/common/representation/json.rb +13 -0
  89. data/lib/restfulie/common/representation/links.rb +11 -0
  90. data/lib/restfulie/common/representation.rb +3 -0
  91. data/lib/restfulie/common.rb +18 -0
  92. data/lib/restfulie/server/action_controller/base.rb +48 -0
  93. data/lib/restfulie/server/action_controller/params_parser.rb +100 -0
  94. data/lib/restfulie/server/action_controller/patch.rb +6 -0
  95. data/lib/restfulie/server/action_controller/restful_responder.rb +12 -0
  96. data/lib/restfulie/server/action_controller/trait/cacheable.rb +81 -0
  97. data/lib/restfulie/server/action_controller/trait/created.rb +17 -0
  98. data/lib/restfulie/server/action_controller/trait.rb +9 -0
  99. data/lib/restfulie/server/action_controller.rb +11 -0
  100. data/lib/restfulie/server/action_view/helpers.rb +50 -0
  101. data/lib/restfulie/server/action_view/template_handlers/tokamak.rb +21 -0
  102. data/lib/restfulie/server/action_view/template_handlers.rb +30 -0
  103. data/lib/restfulie/server/action_view.rb +10 -0
  104. data/lib/restfulie/server/configuration.rb +24 -0
  105. data/lib/restfulie/server/controller.rb +74 -0
  106. data/lib/restfulie/server/core_ext/array.rb +61 -0
  107. data/lib/restfulie/server/core_ext.rb +1 -0
  108. data/lib/restfulie/server.rb +25 -0
  109. data/lib/restfulie/version.rb +14 -0
  110. data/lib/restfulie.rb +34 -0
  111. metadata +242 -0
@@ -0,0 +1,24 @@
1
+ module Restfulie
2
+ module Server
3
+ module Configuration
4
+ # Defines host to be passed to polymorphic_url.
5
+ # You need to setup this to your own domain in order to generate meaningful links.
6
+ mattr_accessor :host
7
+ @@host = 'localhost'
8
+
9
+ # Passes a symbol to polymorphic_url in order to use a namespaced named_route.
10
+ # So, if config.named_route_prefix = :rest, it will search for rest_album_url,
11
+ # rest_album_songs_url, and so on.
12
+ mattr_accessor :named_route_prefix
13
+ @@named_route_prefix = nil
14
+
15
+ # This defines a Rails-like way to setup options. You can do, in a initializer:
16
+ # Restfulie::Server.setup do |config|
17
+ # config.host = 'mydomain.com'
18
+ # end
19
+ def self.setup
20
+ yield self
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,74 @@
1
+ module Restfulie
2
+ module Server
3
+ # Controller which adds default CRUD + search + other operations.
4
+ # TODO: move these actions to controller/base.rb (maybe using InheritedResources, maybe not)
5
+ module Controller
6
+ # creates a model based on the request media-type extracted from its content-type
7
+ def create
8
+ type = model_type
9
+ return head 415 unless fits_content(type, request.headers['CONTENT_TYPE'])
10
+
11
+ @model = type.from_xml request.body.string
12
+ if @model.save
13
+ render_created @model
14
+ else
15
+ render :xml => @model.errors, :status => :unprocessable_entity
16
+ end
17
+ end
18
+
19
+ # renders this resource
20
+ def show
21
+ @model = model_type.find(params[:id])
22
+ instance_variable_set(model_variable_name, @model)
23
+ render_resource(@model)
24
+ end
25
+
26
+ def model_variable_name
27
+ ("@" + model_type.to_s.downcase).to_sym
28
+ end
29
+
30
+ # destroys this resource
31
+ def destroy
32
+ @model = model_type.find(params[:id])
33
+ @model.destroy
34
+ head :ok
35
+ end
36
+
37
+ # updates a resouce
38
+ def update
39
+ type = model_type
40
+
41
+ @loaded = type.find(params[:id])
42
+ return head(:status => 405) unless @loaded.can? :update
43
+
44
+ return head(415) unless fits_content(type, request.headers['CONTENT_TYPE'])
45
+
46
+ @model = Hash.from_xml(request.body.string)[model_name]
47
+ pre_update(@model) if self.respond_to?(:pre_update)
48
+
49
+ if @loaded.update_attributes(@model)
50
+ render_resource @loaded
51
+ else
52
+ render :xml => @loaded.errors, :status => :unprocessable_entity
53
+ end
54
+ end
55
+
56
+ # returns the model for this controller
57
+ def model_type
58
+ self.class.name[/(.*)Controller/,1].singularize.constantize
59
+ end
60
+
61
+ # retrieves the model name
62
+ def model_name
63
+ self.class.name[/(.*)Controller/,1].singularize.underscore
64
+ end
65
+
66
+ def fits_content(type, content_type)
67
+ Restfulie::MediaType.supports?(content_type) &&
68
+ (type.respond_to?(:media_type_representations) ?
69
+ type.media_type_representations.include?(content_type) :
70
+ Restfulie::MediaType.default_representations.include?(content_type))
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,61 @@
1
+ # Introspective methods to assist in the conversion of collections in other formats.
2
+ class Array
3
+ def to_atom(options={}, &block)
4
+ raise "Not all elements respond to to_atom" unless all? { |e| e.respond_to? :to_atom }
5
+ options = options.dup
6
+
7
+ if options.delete :only_self_link
8
+ options[:skip_associations_links] = true
9
+ options[:skip_attributes] = true
10
+ end
11
+
12
+ feed = Restfulie::Common::Representation::Atom::Feed.new
13
+ # TODO: Define better feed attributes
14
+ # Array#to_s can return a very long string
15
+ feed.title = "Collection of #{map {|i| i.class.name }.uniq.to_sentence}"
16
+ feed.updated = updated_at
17
+ feed.published = published_at
18
+ # TODO: this id does not comply with Rest standards yet
19
+ feed.id = hash
20
+
21
+ each do |element|
22
+ feed.entries << element.to_atom(options)
23
+ end
24
+
25
+ yield feed if block_given?
26
+
27
+ feed
28
+ end
29
+
30
+ # Return max update date for items in collection, for it uses the updated_at of items.
31
+ #
32
+ #==Example:
33
+ #
34
+ # Find max updated at in ActiveRecord objects
35
+ #
36
+ # albums = Albums.find(:all)
37
+ # albums.updated_at
38
+ #
39
+ # Using a custom field to check the max date
40
+ #
41
+ # albums = Albums.find(:all)
42
+ # albums.updated_at(:created_at)
43
+ #
44
+ def updated_at(field = :updated_at)
45
+ max = max_by{|o| o.send(field)}
46
+ if max
47
+ max.send(field)
48
+ else
49
+ Time.now
50
+ end
51
+ end
52
+
53
+ def published_at(field = :published_at)
54
+ min = min_by{|o| o.send(field)}
55
+ if min
56
+ min.send(field)
57
+ else
58
+ Time.now
59
+ end
60
+ end
61
+ end
@@ -0,0 +1 @@
1
+ require 'restfulie/server/core_ext/array'
@@ -0,0 +1,25 @@
1
+ require 'respondie'
2
+ require 'restfulie/common'
3
+
4
+ module Restfulie
5
+ module Server
6
+ autoload :Configuration, 'restfulie/server/configuration'
7
+ autoload :ActionController, 'restfulie/server/action_controller'
8
+ autoload :ActionView, 'restfulie/server/action_view'
9
+ autoload :Controller, 'restfulie/server/controller'
10
+ end
11
+ end
12
+
13
+ require 'restfulie/server/core_ext'
14
+ Restfulie::Server::ActionView::TemplateHandlers.activate!
15
+
16
+ class ActionController::Base
17
+ def self.restfulie
18
+ include Restfulie::Server::ActionController::Base
19
+ end
20
+
21
+ def self.use_trait(&block)
22
+ Respondie::Builder.new("Restfulie::Server::ActionController::Trait::$trait$", self).instance_eval(&block)
23
+ end
24
+
25
+ end
@@ -0,0 +1,14 @@
1
+ module Restfulie
2
+ module VERSION #:nodoc:
3
+ MAJOR = 0
4
+ MINOR = 1
5
+ TINY = 0
6
+
7
+ STRING = [MAJOR, MINOR, TINY].join('.') + ".beta1"
8
+
9
+ # Restfulie's version
10
+ def self.to_s
11
+ STRING
12
+ end
13
+ end
14
+ end
data/lib/restfulie.rb ADDED
@@ -0,0 +1,34 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__))
2
+
3
+ require 'restfulie/version'
4
+ require 'restfulie/common'
5
+ require 'restfulie/client'
6
+ require 'restfulie/server'
7
+
8
+ # Shortcut to RestfulieDsl
9
+ module Restfulie
10
+
11
+ # creates a new entry point for executing requests
12
+ def self.at(uri)
13
+ Restfulie.use.at(uri)
14
+ end
15
+
16
+ def self.using(&block)
17
+ RestfulieUsing.new.instance_eval(&block)
18
+ end
19
+
20
+ def self.use(&block)
21
+ if block_given?
22
+ Restfulie::Client::Dsl.new.instance_eval(&block)
23
+ else
24
+ Restfulie::Client::Dsl.new
25
+ end
26
+ end
27
+
28
+ end
29
+
30
+ class RestfulieUsing
31
+ def method_missing(sym, *args)
32
+ @current = "Restfulie::Client::HTTP::#{sym.to_s.classify}".constantize.new(@current || Restfulie::Client::HTTP::RequestAdapter.new, *args)
33
+ end
34
+ end
metadata ADDED
@@ -0,0 +1,242 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: restfulie
3
+ version: !ruby/object:Gem::Version
4
+ hash: 299253573
5
+ prerelease: true
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ - beta1
11
+ version: 0.1.0.beta1
12
+ platform: ruby
13
+ authors:
14
+ - Guilherme Silveira, Caue Guerra, Luis Cipriani, Everton Ribeiro, George Guimaraes, Paulo Ahagon, Several contributors
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2010-10-29 00:00:00 -02:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: nokogiri
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 1
33
+ - 4
34
+ - 2
35
+ version: 1.4.2
36
+ type: :runtime
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
39
+ name: actionpack
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ hash: 7
47
+ segments:
48
+ - 2
49
+ - 3
50
+ - 2
51
+ version: 2.3.2
52
+ type: :runtime
53
+ version_requirements: *id002
54
+ - !ruby/object:Gem::Dependency
55
+ name: activesupport
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ hash: 7
63
+ segments:
64
+ - 2
65
+ - 3
66
+ - 2
67
+ version: 2.3.2
68
+ type: :runtime
69
+ version_requirements: *id003
70
+ - !ruby/object:Gem::Dependency
71
+ name: json_pure
72
+ prerelease: false
73
+ requirement: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ hash: 23
79
+ segments:
80
+ - 1
81
+ - 2
82
+ - 4
83
+ version: 1.2.4
84
+ type: :runtime
85
+ version_requirements: *id004
86
+ description:
87
+ email: guilherme.silveira@caelum.com.br
88
+ executables: []
89
+
90
+ extensions: []
91
+
92
+ extra_rdoc_files: []
93
+
94
+ files:
95
+ - lib/restfulie/client/base.rb
96
+ - lib/restfulie/client/cache/basic.rb
97
+ - lib/restfulie/client/cache/fake.rb
98
+ - lib/restfulie/client/cache/http_ext.rb
99
+ - lib/restfulie/client/cache/restrictions.rb
100
+ - lib/restfulie/client/cache.rb
101
+ - lib/restfulie/client/configuration.rb
102
+ - lib/restfulie/client/dsl.rb
103
+ - lib/restfulie/client/entry_point.rb
104
+ - lib/restfulie/client/ext/atom_ext.rb
105
+ - lib/restfulie/client/ext/http_ext.rb
106
+ - lib/restfulie/client/ext/json_ext.rb
107
+ - lib/restfulie/client/feature/base.rb
108
+ - lib/restfulie/client/feature/base_request.rb
109
+ - lib/restfulie/client/feature/cache.rb
110
+ - lib/restfulie/client/feature/enhance_response.rb
111
+ - lib/restfulie/client/feature/follow_request.rb
112
+ - lib/restfulie/client/feature/history.rb
113
+ - lib/restfulie/client/feature/history_request.rb
114
+ - lib/restfulie/client/feature/open_search/pattern_matcher.rb
115
+ - lib/restfulie/client/feature/open_search.rb
116
+ - lib/restfulie/client/feature/serialize_body.rb
117
+ - lib/restfulie/client/feature/setup_header.rb
118
+ - lib/restfulie/client/feature/throw_error.rb
119
+ - lib/restfulie/client/feature/verb.rb
120
+ - lib/restfulie/client/feature.rb
121
+ - lib/restfulie/client/http/cache.rb
122
+ - lib/restfulie/client/http/error.rb
123
+ - lib/restfulie/client/http/response_holder.rb
124
+ - lib/restfulie/client/http.rb
125
+ - lib/restfulie/client/master_delegator.rb
126
+ - lib/restfulie/client/mikyung/concatenator.rb
127
+ - lib/restfulie/client/mikyung/core.rb
128
+ - lib/restfulie/client/mikyung/languages/german.rb
129
+ - lib/restfulie/client/mikyung/languages/portuguese.rb
130
+ - lib/restfulie/client/mikyung/languages.rb
131
+ - lib/restfulie/client/mikyung/rest_process_model.rb
132
+ - lib/restfulie/client/mikyung/steady_state_walker.rb
133
+ - lib/restfulie/client/mikyung/then_condition.rb
134
+ - lib/restfulie/client/mikyung/when_condition.rb
135
+ - lib/restfulie/client/mikyung.rb
136
+ - lib/restfulie/client.rb
137
+ - lib/restfulie/common/converter/atom/base.rb
138
+ - lib/restfulie/common/converter/atom/builder.rb
139
+ - lib/restfulie/common/converter/atom/helpers.rb
140
+ - lib/restfulie/common/converter/atom.rb
141
+ - lib/restfulie/common/converter/json/base.rb
142
+ - lib/restfulie/common/converter/json/builder.rb
143
+ - lib/restfulie/common/converter/json/helpers.rb
144
+ - lib/restfulie/common/converter/json.rb
145
+ - lib/restfulie/common/converter/open_search/descriptor.rb
146
+ - lib/restfulie/common/converter/open_search.rb
147
+ - lib/restfulie/common/converter/values.rb
148
+ - lib/restfulie/common/converter/xml/base.rb
149
+ - lib/restfulie/common/converter/xml/builder.rb
150
+ - lib/restfulie/common/converter/xml/helpers.rb
151
+ - lib/restfulie/common/converter/xml/link.rb
152
+ - lib/restfulie/common/converter/xml/links.rb
153
+ - lib/restfulie/common/converter/xml.rb
154
+ - lib/restfulie/common/converter.rb
155
+ - lib/restfulie/common/core_ext/hash.rb
156
+ - lib/restfulie/common/core_ext.rb
157
+ - lib/restfulie/common/error.rb
158
+ - lib/restfulie/common/links.rb
159
+ - lib/restfulie/common/logger.rb
160
+ - lib/restfulie/common/representation/atom/base.rb
161
+ - lib/restfulie/common/representation/atom/category.rb
162
+ - lib/restfulie/common/representation/atom/entry.rb
163
+ - lib/restfulie/common/representation/atom/factory.rb
164
+ - lib/restfulie/common/representation/atom/feed.rb
165
+ - lib/restfulie/common/representation/atom/link.rb
166
+ - lib/restfulie/common/representation/atom/person.rb
167
+ - lib/restfulie/common/representation/atom/source.rb
168
+ - lib/restfulie/common/representation/atom/tag_collection.rb
169
+ - lib/restfulie/common/representation/atom/xml.rb
170
+ - lib/restfulie/common/representation/atom.rb
171
+ - lib/restfulie/common/representation/generic.rb
172
+ - lib/restfulie/common/representation/json/base.rb
173
+ - lib/restfulie/common/representation/json/keys_as_methods.rb
174
+ - lib/restfulie/common/representation/json/link.rb
175
+ - lib/restfulie/common/representation/json/link_collection.rb
176
+ - lib/restfulie/common/representation/json.rb
177
+ - lib/restfulie/common/representation/links.rb
178
+ - lib/restfulie/common/representation.rb
179
+ - lib/restfulie/common.rb
180
+ - lib/restfulie/server/action_controller/base.rb
181
+ - lib/restfulie/server/action_controller/params_parser.rb
182
+ - lib/restfulie/server/action_controller/patch.rb
183
+ - lib/restfulie/server/action_controller/restful_responder.rb
184
+ - lib/restfulie/server/action_controller/trait/cacheable.rb
185
+ - lib/restfulie/server/action_controller/trait/created.rb
186
+ - lib/restfulie/server/action_controller/trait.rb
187
+ - lib/restfulie/server/action_controller.rb
188
+ - lib/restfulie/server/action_view/helpers.rb
189
+ - lib/restfulie/server/action_view/template_handlers/tokamak.rb
190
+ - lib/restfulie/server/action_view/template_handlers.rb
191
+ - lib/restfulie/server/action_view.rb
192
+ - lib/restfulie/server/configuration.rb
193
+ - lib/restfulie/server/controller.rb
194
+ - lib/restfulie/server/core_ext/array.rb
195
+ - lib/restfulie/server/core_ext.rb
196
+ - lib/restfulie/server.rb
197
+ - lib/restfulie/version.rb
198
+ - lib/restfulie.rb
199
+ - Gemfile
200
+ - Gemfile.lock
201
+ - LICENSE
202
+ - Rakefile
203
+ - README.textile
204
+ - lib/restfulie/common/representation/atom/atom.rng
205
+ has_rdoc: true
206
+ homepage: http://restfulie.caelumobjects.com
207
+ licenses: []
208
+
209
+ post_install_message:
210
+ rdoc_options: []
211
+
212
+ require_paths:
213
+ - lib
214
+ required_ruby_version: !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ hash: 3
220
+ segments:
221
+ - 0
222
+ version: "0"
223
+ required_rubygems_version: !ruby/object:Gem::Requirement
224
+ none: false
225
+ requirements:
226
+ - - ">"
227
+ - !ruby/object:Gem::Version
228
+ hash: 25
229
+ segments:
230
+ - 1
231
+ - 3
232
+ - 1
233
+ version: 1.3.1
234
+ requirements: []
235
+
236
+ rubyforge_project:
237
+ rubygems_version: 1.3.7
238
+ signing_key:
239
+ specification_version: 3
240
+ summary: Hypermedia aware resource based library in ruby (client side) and ruby on rails (server side).
241
+ test_files: []
242
+